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

Unified Diff: content/common/gpu/client/gpu_memory_buffer_impl.h

Issue 263553009: content: Cleanup GpuMemoryBuffer allocation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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: content/common/gpu/client/gpu_memory_buffer_impl.h
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl.h b/content/common/gpu/client/gpu_memory_buffer_impl.h
index ee85f0f7b57ee02d73e5bca5e74ab26cf8cf77c6..42bde653a0bd492c2e4f618eda0aa6517ddcb6bd 100644
--- a/content/common/gpu/client/gpu_memory_buffer_impl.h
+++ b/content/common/gpu/client/gpu_memory_buffer_impl.h
@@ -14,14 +14,32 @@ namespace content {
// Provides common implementation of a GPU memory buffer.
class GpuMemoryBufferImpl : public gfx::GpuMemoryBuffer {
public:
- static scoped_ptr<GpuMemoryBufferImpl> Create(
+ virtual ~GpuMemoryBufferImpl();
+
+ // Creates a GPU memory buffer instance with |size| and |internalformat|.
+ static scoped_ptr<GpuMemoryBufferImpl> Create(const gfx::Size& size,
+ unsigned internalformat);
+
+ // Allocates a GPU memory buffer with |size| and |internalformat| for use by
+ // |child_process|. The |handle| returned can be used by the |child_process|
+ // to create an instance of this class.
+ static void AllocateForChildProcess(const gfx::Size& size,
+ unsigned internalformat,
+ base::ProcessHandle child_process,
+ gfx::GpuMemoryBufferHandle* handle);
+
+ // Creates an instance from the given |handle|. |size| and |internalformat|
+ // should match what was used to allocate the |handle|.
+ static scoped_ptr<GpuMemoryBufferImpl> CreateFromHandle(
gfx::GpuMemoryBufferHandle handle,
- gfx::Size size,
+ const gfx::Size& size,
unsigned internalformat);
- virtual ~GpuMemoryBufferImpl();
-
+ // Returns true if |internalformat| is a format recognized by this base class.
static bool IsFormatValid(unsigned internalformat);
+
+ // Returns the number of bytes per pixel that must be used by an
+ // implementation when using |internalformat|.
static size_t BytesPerPixel(unsigned internalformat);
// Overridden from gfx::GpuMemoryBuffer:
@@ -29,10 +47,10 @@ class GpuMemoryBufferImpl : public gfx::GpuMemoryBuffer {
virtual uint32 GetStride() const OVERRIDE;
protected:
- GpuMemoryBufferImpl(gfx::Size size, unsigned internalformat);
+ GpuMemoryBufferImpl(const gfx::Size& size, unsigned internalformat);
const gfx::Size size_;
- unsigned internalformat_;
+ const unsigned internalformat_;
bool mapped_;
DISALLOW_COPY_AND_ASSIGN(GpuMemoryBufferImpl);

Powered by Google App Engine
This is Rietveld 408576698