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

Unified Diff: chrome/browser/renderer_host/accelerated_surface_container_manager_mac.h

Issue 3067026: Initial port of accelerated compositor to Mac OS X 10.6. Reused... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 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: chrome/browser/renderer_host/accelerated_surface_container_manager_mac.h
===================================================================
--- chrome/browser/renderer_host/accelerated_surface_container_manager_mac.h (revision 54820)
+++ chrome/browser/renderer_host/accelerated_surface_container_manager_mac.h (working copy)
@@ -28,11 +28,17 @@
// Allocates a new "fake" PluginWindowHandle, which is used as the
// key for the other operations.
- gfx::PluginWindowHandle AllocateFakePluginWindowHandle(bool opaque);
+ gfx::PluginWindowHandle AllocateFakePluginWindowHandle(bool opaque,
+ bool root);
// Destroys a fake PluginWindowHandle and associated storage.
void DestroyFakePluginWindowHandle(gfx::PluginWindowHandle id);
+ // Indicates whether a "root" PluginWindowHandle has been allocated,
+ // which means that we are using accelerated compositing and should
+ // short-circuit the normal drawing process.
+ bool HasRootContainer();
+
// Sets the size and backing store of the plugin instance. There are two
// versions: the IOSurface version is used on systems where the IOSurface
// API is supported (Mac OS X 10.6 and later); the TransportDIB is used on
@@ -52,7 +58,8 @@
// Draws all of the managed plugin containers into the given OpenGL
// context, which must already be current.
- void Draw(CGLContextObj context);
+ void Draw(CGLContextObj context,
+ bool draw_root_container);
// Causes the next Draw call on each container to trigger a texture upload.
// Should be called any time the drawing context has changed.
@@ -73,6 +80,17 @@
PluginWindowToContainerMap;
PluginWindowToContainerMap plugin_window_to_container_map_;
+ // The "root" container, which is only used to draw the output of
+ // the accelerated compositor if it is active. Currently,
+ // accelerated plugins (Core Animation and Pepper 3D) are drawn on
+ // top of the page's contents rather than transformed and composited
+ // with the rest of the page. At some point we would like them to be
+ // treated uniformly with other page elements; when this is done,
+ // the separate treatment of the root container can go away because
+ // there will only be one container active when the accelerated
+ // compositor is active.
+ AcceleratedSurfaceContainerMac* root_container_;
+
// A list of OpenGL textures waiting to be deleted
std::vector<GLuint> textures_pending_deletion_;
« no previous file with comments | « chrome/browser/gpu_process_host.cc ('k') | chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698