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

Unified Diff: content/common/gpu/gpu_channel_manager.h

Issue 10543125: gpu: Add support for GLX_EXT_texture_from_pixmap extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add kGLImplementationMockGL case to gl_image_android.cc. Created 8 years, 2 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
« no previous file with comments | « content/common/gpu/gpu_channel.cc ('k') | content/common/gpu/gpu_channel_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/gpu_channel_manager.h
diff --git a/content/common/gpu/gpu_channel_manager.h b/content/common/gpu/gpu_channel_manager.h
index b256a56d8d0123b600f2f1140fefddf1ade58975..78b5079439f9c6bac8a605320856fc481ff664c9 100644
--- a/content/common/gpu/gpu_channel_manager.h
+++ b/content/common/gpu/gpu_channel_manager.h
@@ -5,6 +5,7 @@
#ifndef CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_
#define CONTENT_COMMON_GPU_GPU_CHANNEL_MANAGER_H_
+#include <deque>
#include <vector>
#include "base/hash_tables.h"
@@ -96,6 +97,16 @@ class GpuChannelManager : public IPC::Listener,
gfx::GLSurface* GetDefaultOffscreenSurface();
private:
+ struct ImageOperation {
+ ImageOperation(int32 sync_point, base::Closure callback);
+ ~ImageOperation();
+
+ int32 sync_point;
+ base::Closure callback;
+ };
+ typedef base::hash_map<int, scoped_refptr<GpuChannel> > GpuChannelMap;
+ typedef std::deque<ImageOperation*> ImageOperationQueue;
+
// Message handlers.
void OnEstablishChannel(int client_id, bool share_context);
void OnCloseChannel(const IPC::ChannelHandle& channel_handle);
@@ -106,6 +117,13 @@ class GpuChannelManager : public IPC::Listener,
int32 render_view_id,
int32 client_id,
const GPUCreateCommandBufferConfig& init_params);
+ void CreateImage(
+ gfx::PluginWindowHandle window, int32 client_id, int32 image_id);
+ void OnCreateImage(
+ gfx::PluginWindowHandle window, int32 client_id, int32 image_id);
+ void DeleteImage(int32 client_id, int32 image_id);
+ void OnDeleteImage(int32 client_id, int32 image_id, int32 sync_point);
+ void OnDeleteImageSyncPointRetired(ImageOperation*);
void OnLoseAllContexts();
@@ -118,7 +136,6 @@ class GpuChannelManager : public IPC::Listener,
// These objects manage channels to individual renderer processes there is
// one channel for each renderer process that has connected to this GPU
// process.
- typedef base::hash_map<int, scoped_refptr<GpuChannel> > GpuChannelMap;
GpuChannelMap gpu_channels_;
scoped_refptr<gfx::GLShareGroup> share_group_;
scoped_refptr<gpu::gles2::MailboxManager> mailbox_manager_;
@@ -127,6 +144,7 @@ class GpuChannelManager : public IPC::Listener,
scoped_refptr<SyncPointManager> sync_point_manager_;
scoped_ptr<gpu::gles2::ProgramCache> program_cache_;
scoped_refptr<gfx::GLSurface> default_offscreen_surface_;
+ ImageOperationQueue image_operations_;
DISALLOW_COPY_AND_ASSIGN(GpuChannelManager);
};
« no previous file with comments | « content/common/gpu/gpu_channel.cc ('k') | content/common/gpu/gpu_channel_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698