Index: android_webview/browser/gpu_memory_buffer_factory_impl.cc |
diff --git a/android_webview/browser/gpu_memory_buffer_factory_impl.cc b/android_webview/browser/gpu_memory_buffer_factory_impl.cc |
index 924fdefcdb39f4fdd75266a94a2ce670a3bdb11c..0990a94f348cf243acf222c950aa6d9aaba43505 100644 |
--- a/android_webview/browser/gpu_memory_buffer_factory_impl.cc |
+++ b/android_webview/browser/gpu_memory_buffer_factory_impl.cc |
@@ -6,15 +6,28 @@ |
#include "android_webview/browser/gpu_memory_buffer_impl.h" |
#include "base/logging.h" |
+#include "base/memory/ref_counted.h" |
+#include "gpu/command_buffer/client/gpu_memory_buffer_factory.h" |
+#include "gpu/command_buffer/service/image_manager.h" |
#include "ui/gfx/size.h" |
+#include "ui/gl/gl_image.h" |
namespace android_webview { |
-scoped_ptr<gpu::GpuMemoryBuffer> CreateGpuMemoryBuffer(int width, int height) { |
+scoped_ptr<gpu::GpuMemoryBuffer> CreateGpuMemoryBuffer( |
+ int buffer_id, int width, int height) { |
DCHECK(width > 0); |
DCHECK(height > 0); |
- scoped_ptr<GpuMemoryBufferImpl> result(new GpuMemoryBufferImpl( |
- gfx::Size(width, height))); |
+ gfx::Size size(width, height); |
+ |
+ scoped_ptr<GpuMemoryBufferImpl> result(new GpuMemoryBufferImpl(size)); |
+ |
+ scoped_refptr<gfx::GLImage> gl_image = |
+ gfx::GLImage::CreateGLImageForGpuMemoryBuffer( |
+ result->GetNativeBuffer(), size); |
+ |
+ DCHECK(buffer_id != 0); |
+ gpu::GetProcessDefaultImageManager()->AddImage(gl_image, buffer_id); |
joth
2013/04/29 17:21:21
Is there a RemoveImage() call? where does that hap
kaanb
2013/04/30 03:40:10
Let's discuss this when sievers@ comes back.
|
return result.PassAs<gpu::GpuMemoryBuffer>(); |
} |