Chromium Code Reviews| 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>(); |
| } |