Index: content/browser/gpu/gpu_process_host.h |
diff --git a/content/browser/gpu/gpu_process_host.h b/content/browser/gpu/gpu_process_host.h |
index f4b834107a1b65618d6f355f39f96ca7599551a2..1ecd7d3541078cfecf1c2cf3d1cac8c6438d1d30 100644 |
--- a/content/browser/gpu/gpu_process_host.h |
+++ b/content/browser/gpu/gpu_process_host.h |
@@ -20,6 +20,7 @@ |
#include "content/public/common/gpu_info.h" |
#include "ipc/ipc_sender.h" |
#include "ui/gfx/native_widget_types.h" |
+#include "ui/gfx/size.h" |
class GpuMainThread; |
struct GPUCreateCommandBufferConfig; |
@@ -49,6 +50,8 @@ class GpuProcessHost : public content::BrowserChildProcessHostDelegate, |
typedef base::Callback<void(int32)> CreateCommandBufferCallback; |
+ typedef base::Callback<void(const gfx::Size)> CreateImageCallback; |
+ |
static bool gpu_enabled() { return gpu_enabled_; } |
// Creates a new GpuProcessHost or gets an existing one, resulting in the |
@@ -90,6 +93,16 @@ class GpuProcessHost : public content::BrowserChildProcessHostDelegate, |
const GPUCreateCommandBufferConfig& init_params, |
const CreateCommandBufferCallback& callback); |
+ // Tells the GPU process to create a new image using the given window. |
+ void CreateImage( |
+ gfx::PluginWindowHandle window, |
+ int client_id, |
+ int image_id, |
+ const CreateImageCallback& callback); |
+ |
+ // Tells the GPU process to delete image. |
+ void DeleteImage(int client_id, int image_id, int sync_point); |
+ |
// Whether this GPU process is set up to use software rendering. |
bool software_rendering(); |
@@ -120,6 +133,7 @@ class GpuProcessHost : public content::BrowserChildProcessHostDelegate, |
void OnChannelEstablished(const IPC::ChannelHandle& channel_handle); |
void OnCommandBufferCreated(const int32 route_id); |
void OnDestroyCommandBuffer(int32 surface_id); |
+ void OnImageCreated(const gfx::Size size); |
#if defined(OS_MACOSX) |
void OnAcceleratedSurfaceBuffersSwapped( |
@@ -146,6 +160,8 @@ class GpuProcessHost : public content::BrowserChildProcessHostDelegate, |
const content::GPUInfo& gpu_info); |
void CreateCommandBufferError(const CreateCommandBufferCallback& callback, |
int32 route_id); |
+ void CreateImageError(const CreateImageCallback& callback, |
+ const gfx::Size size); |
// The serial number of the GpuProcessHost / GpuProcessHostUIShim pair. |
int host_id_; |
@@ -157,6 +173,9 @@ class GpuProcessHost : public content::BrowserChildProcessHostDelegate, |
// The pending create command buffer requests we need to reply to. |
std::queue<CreateCommandBufferCallback> create_command_buffer_requests_; |
+ // The pending create image requests we need to reply to. |
+ std::queue<CreateImageCallback> create_image_requests_; |
+ |
#if defined(TOOLKIT_GTK) |
// Encapsulates surfaces that we lock when creating view command buffers. |
// We release this lock once the command buffer (or associated GPU process) |