| Index: ui/gl/gl_image_android.cc
|
| diff --git a/ui/gl/gl_image_android.cc b/ui/gl/gl_image_android.cc
|
| index 0c7db630aee55f948dff2f2e8643e7ce5670f1bb..fe871e7b5e3b9235503f71b4ed2034ad344472db 100644
|
| --- a/ui/gl/gl_image_android.cc
|
| +++ b/ui/gl/gl_image_android.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/debug/trace_event.h"
|
| #include "ui/gl/gl_image_egl.h"
|
| +#include "ui/gl/gl_image_shm.h"
|
| #include "ui/gl/gl_image_stub.h"
|
| #include "ui/gl/gl_implementation.h"
|
|
|
| @@ -28,13 +29,26 @@ scoped_refptr<GLImage> GLImage::CreateGLImageForGpuMemoryBuffer(
|
| gfx::GpuMemoryBufferHandle buffer, gfx::Size size) {
|
| TRACE_EVENT0("gpu", "GLImage::CreateGLImageForGpuMemoryBuffer");
|
| switch (GetGLImplementation()) {
|
| - case kGLImplementationEGLGLES2: {
|
| - scoped_refptr<GLImageEGL> image(new GLImageEGL(size));
|
| - if (!image->Initialize(buffer))
|
| - return NULL;
|
| + case kGLImplementationEGLGLES2:
|
| + switch (buffer.type) {
|
| + case SHARED_MEMORY_BUFFER: {
|
| + scoped_refptr<GLImageShm> image(new GLImageShm(size));
|
| + if (!image->Initialize(buffer))
|
| + return NULL;
|
| +
|
| + return image;
|
| + }
|
| + case EGL_CLIENT_BUFFER: {
|
| + scoped_refptr<GLImageEGL> image(new GLImageEGL(size));
|
| + if (!image->Initialize(buffer))
|
| + return NULL;
|
|
|
| - return image;
|
| - }
|
| + return image;
|
| + }
|
| + default:
|
| + NOTREACHED();
|
| + return NULL;
|
| + }
|
| case kGLImplementationMockGL:
|
| return new GLImageStub;
|
| default:
|
|
|