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

Unified Diff: content/browser/renderer_host/compositing_iosurface_mac.h

Issue 16189012: Add a path to use CALayers to display content (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Resolve again Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/compositing_iosurface_mac.h
diff --git a/content/browser/renderer_host/compositing_iosurface_mac.h b/content/browser/renderer_host/compositing_iosurface_mac.h
index bae6920011e8ace19ce0e186b7bdd96fe2ef14ff..1fa7bd187625351544cc04378d4e286d082f2413 100644
--- a/content/browser/renderer_host/compositing_iosurface_mac.h
+++ b/content/browser/renderer_host/compositing_iosurface_mac.h
@@ -38,6 +38,7 @@ class CompositingIOSurfaceContext;
class CompositingIOSurfaceShaderPrograms;
class CompositingIOSurfaceTransformer;
class RenderWidgetHostViewFrameSubscriber;
+class RenderWidgetHostViewMac;
// This class manages an OpenGL context and IOSurface for the accelerated
// compositing code path. The GL context is attached to
@@ -55,6 +56,8 @@ class CompositingIOSurfaceMac {
// |order| the desired ordering relationship of the surface to the containing
// window.
static CompositingIOSurfaceMac* Create(int window_number);
+ static CompositingIOSurfaceMac* Create(
+ const scoped_refptr<CompositingIOSurfaceContext>& context);
~CompositingIOSurfaceMac();
// Set IOSurface that will be drawn on the next NSView drawRect.
@@ -66,16 +69,16 @@ class CompositingIOSurfaceMac {
// Get the CGL renderer ID currently associated with this context.
int GetRendererID();
- // Blit the IOSurface at the upper-left corner of the |view|. If |view| window
- // size is larger than the IOSurface, the remaining right and bottom edges
- // will be white. |scaleFactor| is 1 in normal views, 2 in HiDPI views.
- // |frame_subscriber| listens to this draw event and provides output buffer
- // for copying this frame into.
- void DrawIOSurface(NSView* view,
- float scale_factor,
- int window_number,
- SurfaceOrder surface_order,
- RenderWidgetHostViewFrameSubscriber* frame_subscriber);
+ // Blit the IOSurface at the upper-left corner of the of the specified
+ // window_size. If the window size is larger than the IOSurface, the
+ // remaining right and bottom edges will be white. |scaleFactor| is 1
+ // in normal views, 2 in HiDPI views. |frame_subscriber| listens to
+ // this draw event and provides output buffer for copying this frame into.
+ void DrawIOSurface(const gfx::Size& window_size,
+ float window_scale_factor,
+ RenderWidgetHostViewFrameSubscriber* frame_subscriber,
+ bool using_core_animation);
+ void DrawIOSurface(RenderWidgetHostViewMac* render_widget_host_view);
// Copy the data of the "live" OpenGL texture referring to this IOSurfaceRef
// into |out|. The copied region is specified with |src_pixel_subrect| and
@@ -114,9 +117,14 @@ class CompositingIOSurfaceMac {
}
// In cocoa view units / DIPs.
const gfx::Size& dip_io_surface_size() const { return dip_io_surface_size_; }
+ float scale_factor() const { return scale_factor_; }
bool is_vsync_disabled() const;
+ const scoped_refptr<CompositingIOSurfaceContext>& context() {
+ return context_;
+ }
+
// Get vsync scheduling parameters.
// |interval_numerator/interval_denominator| equates to fractional number of
// seconds between vsyncs.
@@ -223,7 +231,7 @@ class CompositingIOSurfaceMac {
CompositingIOSurfaceMac(
IOSurfaceSupport* io_surface_support,
- scoped_refptr<CompositingIOSurfaceContext> context);
+ const scoped_refptr<CompositingIOSurfaceContext>& context);
void SetupCVDisplayLink();
@@ -315,6 +323,7 @@ class CompositingIOSurfaceMac {
// The width and height of the io surface.
gfx::Size pixel_io_surface_size_; // In pixels.
gfx::Size dip_io_surface_size_; // In view / density independent pixels.
+ float scale_factor_;
// The "live" OpenGL texture referring to this IOSurfaceRef. Note
// that per the CGLTexImageIOSurface2D API we do not need to

Powered by Google App Engine
This is Rietveld 408576698