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

Unified Diff: gpu/command_buffer/client/gpu_memory_buffer_tracker.cc

Issue 20017005: gpu: Refactor GpuMemoryBuffer framework for multi-process support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 4 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 | « gpu/command_buffer/client/gpu_memory_buffer_tracker.h ('k') | gpu/command_buffer/client/image_factory.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/client/gpu_memory_buffer_tracker.cc
diff --git a/gpu/command_buffer/client/gpu_memory_buffer_tracker.cc b/gpu/command_buffer/client/gpu_memory_buffer_tracker.cc
index c1c9b4d63c7595c21e688edf59ecd8c320731829..a957cc4b8dc9cbcd274b4d91c567d74334014d1b 100644
--- a/gpu/command_buffer/client/gpu_memory_buffer_tracker.cc
+++ b/gpu/command_buffer/client/gpu_memory_buffer_tracker.cc
@@ -6,15 +6,13 @@
#include "base/memory/scoped_ptr.h"
#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/client/image_factory.h"
-#include "ui/gfx/gpu_memory_buffer.h"
+#include "gpu/command_buffer/common/gpu_control.h"
namespace gpu {
namespace gles2 {
-GpuMemoryBufferTracker::GpuMemoryBufferTracker(ImageFactory* factory)
- : buffers_(),
- factory_(factory) {
+GpuMemoryBufferTracker::GpuMemoryBufferTracker(GpuControl* gpu_control)
+ : gpu_control_(gpu_control) {
}
GpuMemoryBufferTracker::~GpuMemoryBufferTracker() {
@@ -23,37 +21,33 @@ GpuMemoryBufferTracker::~GpuMemoryBufferTracker() {
}
}
-GLuint GpuMemoryBufferTracker::CreateBuffer(
- GLsizei width, GLsizei height, GLenum internalformat) {
- GLuint image_id = 0;
- DCHECK(factory_);
- scoped_ptr<gfx::GpuMemoryBuffer> buffer =
- factory_->CreateGpuMemoryBuffer(width, height, internalformat, &image_id);
-
- if (buffer.get() == NULL)
+int32 GpuMemoryBufferTracker::CreateBuffer(
+ size_t width, size_t height, int32 internalformat) {
+ int32 image_id = 0;
+ DCHECK(gpu_control_);
+ gfx::GpuMemoryBuffer* buffer = gpu_control_->CreateGpuMemoryBuffer(
+ width, height, internalformat, &image_id);
+ if (!buffer)
return 0;
std::pair<BufferMap::iterator, bool> result =
- buffers_.insert(std::make_pair(image_id, buffer.release()));
+ buffers_.insert(std::make_pair(image_id, buffer));
GPU_DCHECK(result.second);
return image_id;
}
-gfx::GpuMemoryBuffer* GpuMemoryBufferTracker::GetBuffer(GLuint image_id) {
+gfx::GpuMemoryBuffer* GpuMemoryBufferTracker::GetBuffer(int32 image_id) {
BufferMap::iterator it = buffers_.find(image_id);
return (it != buffers_.end()) ? it->second : NULL;
}
-void GpuMemoryBufferTracker::RemoveBuffer(GLuint image_id) {
+void GpuMemoryBufferTracker::RemoveBuffer(int32 image_id) {
BufferMap::iterator buffer_it = buffers_.find(image_id);
- if (buffer_it != buffers_.end()) {
- gfx::GpuMemoryBuffer* buffer = buffer_it->second;
+ if (buffer_it != buffers_.end())
buffers_.erase(buffer_it);
- delete buffer;
- }
- DCHECK(factory_);
- factory_->DeleteGpuMemoryBuffer(image_id);
+ DCHECK(gpu_control_);
+ gpu_control_->DestroyGpuMemoryBuffer(image_id);
}
} // namespace gles2
« no previous file with comments | « gpu/command_buffer/client/gpu_memory_buffer_tracker.h ('k') | gpu/command_buffer/client/image_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698