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

Unified Diff: chrome/browser/gpu_process_host_ui_shim.h

Issue 6462034: Refactor how surfaces are acquired for GPU compositing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix view views build. Created 9 years, 10 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/gpu_process_host_ui_shim.h
diff --git a/chrome/browser/gpu_process_host_ui_shim.h b/chrome/browser/gpu_process_host_ui_shim.h
index a47e2e6da1b564c252b5d67cc8bcfb09c776fc8e..ce706e88ecb93149ce1d5eb9deeaa4e54fb00de0 100644
--- a/chrome/browser/gpu_process_host_ui_shim.h
+++ b/chrome/browser/gpu_process_host_ui_shim.h
@@ -11,10 +11,12 @@
// portion of this class, the GpuProcessHost, is responsible for
// shuttling messages between the browser and GPU processes.
+#include <map>
#include <queue>
#include "base/callback.h"
#include "base/linked_ptr.h"
+#include "base/ref_counted.h"
#include "base/scoped_ptr.h"
#include "base/singleton.h"
#include "base/values.h"
@@ -40,6 +42,8 @@ struct ChannelHandle;
class Message;
}
+class RenderWidgetHostView;
+
class GpuProcessHostUIShim : public IPC::Channel::Sender,
public IPC::Channel::Listener,
public base::NonThreadSafe {
@@ -173,6 +177,25 @@ class GpuProcessHostUIShim : public IPC::Channel::Sender,
std::queue<linked_ptr<CreateCommandBufferCallback> >
create_command_buffer_requests_;
+ typedef std::pair<int32 /* renderer_id */,
+ int32 /* render_view_id */> ViewID;
+
+ // Encapsulates surfaces that we acquire when creating view command buffers.
+ // We assume that a render view has at most 1 such surface associated
+ // with it.
+ class ViewSurface : public base::RefCounted<ViewSurface> {
+ public:
+ explicit ViewSurface(ViewID view_id);
+ ~ViewSurface();
+ gfx::PluginWindowHandle surface() { return surface_; }
+ private:
+ RenderWidgetHostView* GetRenderWidgetHostView();
+ ViewID view_id_;
+ gfx::PluginWindowHandle surface_;
+ };
+
+ std::map<ViewID, scoped_refptr<ViewSurface> > acquired_surfaces_;
+
bool initialized_;
bool initialized_successfully_;
« no previous file with comments | « no previous file | chrome/browser/gpu_process_host_ui_shim.cc » ('j') | chrome/browser/gpu_process_host_ui_shim.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698