Index: gpu/command_buffer/service/in_process_command_buffer.h |
diff --git a/gpu/command_buffer/service/in_process_command_buffer.h b/gpu/command_buffer/service/in_process_command_buffer.h |
index e7b226024a5e35e206bd299fdcb0ca3d520967f9..cb1ab28999970fb70097ed3d372fb4e1b709ed3d 100644 |
--- a/gpu/command_buffer/service/in_process_command_buffer.h |
+++ b/gpu/command_buffer/service/in_process_command_buffer.h |
@@ -8,6 +8,7 @@ |
#include <map> |
#include <vector> |
+#include "base/atomic_sequence_num.h" |
#include "base/callback.h" |
#include "base/compiler_specific.h" |
#include "base/containers/scoped_ptr_hash_map.h" |
@@ -19,6 +20,7 @@ |
#include "gpu/command_buffer/client/gpu_control.h" |
#include "gpu/command_buffer/common/command_buffer.h" |
#include "gpu/gpu_export.h" |
+#include "ui/gfx/gpu_memory_buffer.h" |
#include "ui/gfx/native_widget_types.h" |
#include "ui/gl/gl_surface.h" |
#include "ui/gl/gpu_preference.h" |
@@ -52,7 +54,9 @@ class ShaderTranslatorCache; |
} |
class CommandBufferServiceBase; |
+class GpuMemoryBufferManager; |
class GpuScheduler; |
+class ImageFactory; |
class TransferBufferManagerInterface; |
// This class provides a thread-safe interface to the global GPU service (for |
@@ -76,7 +80,9 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
const std::vector<int32>& attribs, |
gfx::GpuPreference gpu_preference, |
const base::Closure& context_lost_callback, |
- InProcessCommandBuffer* share_group); |
+ InProcessCommandBuffer* share_group, |
+ GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ ImageFactory* image_factory); |
void Destroy(); |
// CommandBuffer implementation: |
@@ -151,6 +157,7 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
gfx::GpuPreference gpu_preference; |
gpu::Capabilities* capabilities; // Ouptut. |
InProcessCommandBuffer* context_group; |
+ ImageFactory* image_factory; |
InitializeOnGpuThreadParams(bool is_offscreen, |
gfx::AcceleratedWidget window, |
@@ -158,14 +165,16 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
const std::vector<int32>& attribs, |
gfx::GpuPreference gpu_preference, |
gpu::Capabilities* capabilities, |
- InProcessCommandBuffer* share_group) |
+ InProcessCommandBuffer* share_group, |
+ ImageFactory* image_factory) |
: is_offscreen(is_offscreen), |
window(window), |
size(size), |
attribs(attribs), |
gpu_preference(gpu_preference), |
capabilities(capabilities), |
- context_group(share_group) {} |
+ context_group(share_group), |
+ image_factory(image_factory) {} |
}; |
bool InitializeOnGpuThread(const InitializeOnGpuThreadParams& params); |
@@ -184,6 +193,12 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
bool WaitSyncPointOnGpuThread(uint32 sync_point); |
void SignalQueryOnGpuThread(unsigned query_id, const base::Closure& callback); |
void DestroyTransferBufferOnGpuThread(int32 id); |
+ void CreateImageOnGpuThread(int32 id, |
+ const gfx::GpuMemoryBufferHandle& handle, |
+ const gfx::Size& size, |
+ gfx::GpuMemoryBuffer::Format format, |
+ uint32 internalformat); |
+ void DestroyImageOnGpuThread(int32 id); |
// Callbacks: |
void OnContextLost(); |
@@ -204,11 +219,14 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, |
scoped_refptr<gfx::GLSurface> surface_; |
base::Closure context_lost_callback_; |
bool idle_work_pending_; // Used to throttle PerformIdleWork. |
+ ImageFactory* image_factory_; |
// Members accessed on the client thread: |
State last_state_; |
int32 last_put_offset_; |
gpu::Capabilities capabilities_; |
+ GpuMemoryBufferManager* gpu_memory_buffer_manager_; |
+ base::AtomicSequenceNumber next_image_id_; |
// Accessed on both threads: |
scoped_ptr<CommandBufferServiceBase> command_buffer_; |