Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Side by Side Diff: content/browser/renderer_host/compositing_iosurface_mac.mm

Issue 12383042: Switch all contexts in a share group to be on the same screen as the window they present to. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/compositing_iosurface_mac.h" 5 #include "content/browser/renderer_host/compositing_iosurface_mac.h"
6 6
7 #include <OpenGL/CGLRenderers.h>
7 #include <OpenGL/OpenGL.h> 8 #include <OpenGL/OpenGL.h>
8 #include <vector> 9 #include <vector>
9 10
10 #include "base/command_line.h" 11 #include "base/command_line.h"
11 #include "base/debug/trace_event.h" 12 #include "base/debug/trace_event.h"
12 #include "base/mac/mac_util.h" 13 #include "base/mac/mac_util.h"
13 #include "base/message_loop.h" 14 #include "base/message_loop.h"
14 #include "base/threading/platform_thread.h" 15 #include "base/threading/platform_thread.h"
15 #include "content/common/content_constants_internal.h" 16 #include "content/common/content_constants_internal.h"
16 #include "content/port/browser/render_widget_host_view_frame_subscriber.h" 17 #include "content/port/browser/render_widget_host_view_frame_subscriber.h"
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 } 343 }
343 344
344 void CompositingIOSurfaceMac::SetIOSurface(uint64 io_surface_handle, 345 void CompositingIOSurfaceMac::SetIOSurface(uint64 io_surface_handle,
345 const gfx::Size& size) { 346 const gfx::Size& size) {
346 pixel_io_surface_size_ = size; 347 pixel_io_surface_size_ = size;
347 CGLSetCurrentContext(cglContext_); 348 CGLSetCurrentContext(cglContext_);
348 MapIOSurfaceToTexture(io_surface_handle); 349 MapIOSurfaceToTexture(io_surface_handle);
349 CGLSetCurrentContext(0); 350 CGLSetCurrentContext(0);
350 } 351 }
351 352
353 int CompositingIOSurfaceMac::GetRendererID() {
354 GLint current_renderer_id = -1;
355 if (CGLGetParameter(cglContext_,
356 kCGLCPCurrentRendererID,
357 &current_renderer_id) == kCGLNoError)
358 return current_renderer_id & kCGLRendererIDMatchingMask;
359 return -1;
360 }
361
352 void CompositingIOSurfaceMac::DrawIOSurface( 362 void CompositingIOSurfaceMac::DrawIOSurface(
353 NSView* view, float scale_factor, 363 NSView* view, float scale_factor,
354 RenderWidgetHostViewFrameSubscriber* frame_subscriber) { 364 RenderWidgetHostViewFrameSubscriber* frame_subscriber) {
355 CGLSetCurrentContext(cglContext_); 365 CGLSetCurrentContext(cglContext_);
356 366
357 bool has_io_surface = MapIOSurfaceToTexture(io_surface_handle_); 367 bool has_io_surface = MapIOSurfaceToTexture(io_surface_handle_);
358 368
359 TRACE_EVENT1("browser", "CompositingIOSurfaceMac::DrawIOSurface", 369 TRACE_EVENT1("browser", "CompositingIOSurfaceMac::DrawIOSurface",
360 "has_io_surface", has_io_surface); 370 "has_io_surface", has_io_surface);
361 371
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after
1023 } 1033 }
1024 1034
1025 gfx::Rect CompositingIOSurfaceMac::IntersectWithIOSurface( 1035 gfx::Rect CompositingIOSurfaceMac::IntersectWithIOSurface(
1026 const gfx::Rect& rect, float scale_factor) const { 1036 const gfx::Rect& rect, float scale_factor) const {
1027 return gfx::IntersectRects(rect, 1037 return gfx::IntersectRects(rect,
1028 gfx::ToEnclosingRect(gfx::ScaleRect(gfx::Rect(io_surface_size_), 1038 gfx::ToEnclosingRect(gfx::ScaleRect(gfx::Rect(io_surface_size_),
1029 scale_factor))); 1039 scale_factor)));
1030 } 1040 }
1031 1041
1032 } // namespace content 1042 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698