| Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| index 724d537d7a7039de659aeba7ab542f7532ed7765..dd4fc7d5c6d1a8891daed9f5338d219be104f395 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| @@ -59,9 +59,12 @@
|
| #include "ui/gl/gl_bindings.h"
|
| #include "ui/gl/gl_fence.h"
|
| #include "ui/gl/gl_image.h"
|
| +#include "ui/gl/gl_image_egl.h"
|
| #include "ui/gl/gl_implementation.h"
|
| #include "ui/gl/gl_surface.h"
|
|
|
| +#include "ui/gfx/ozone/surface_factory_ozone.h"
|
| +
|
| #if defined(OS_MACOSX)
|
| #include "ui/gl/io_surface_support_mac.h"
|
| #endif
|
| @@ -7476,6 +7479,26 @@ error::Error GLES2DecoderImpl::HandlePostSubBufferCHROMIUM(
|
| }
|
| }
|
|
|
| +error::Error GLES2DecoderImpl::HandleSetOverlayPlaneCHROMIUM(
|
| + uint32 immediate_data_size,
|
| + const cmds::SetOverlayPlaneCHROMIUM& c) {
|
| + gfx::SurfaceFactoryOzone* factory = gfx::SurfaceFactoryOzone::GetInstance();
|
| +
|
| + TextureRef* ref = texture_manager()->GetTexture(c.texture_id);
|
| + gfx::GLImage* image =
|
| + ref->texture()->GetLevelImage(ref->texture()->target(), 0);
|
| + if (!image) {
|
| + return error::kNoError;
|
| + }
|
| + gfx::GLImageEGL* egl_image = static_cast<gfx::GLImageEGL*>(image);
|
| + gfx::Rect display_rect(c.x, c.y, c.width, c.height);
|
| + factory->SetOverlayPlane(1,
|
| + reinterpret_cast<gfx::AcceleratedWidget>(
|
| + egl_image->buffer_.native_buffer),
|
| + display_rect);
|
| + return error::kNoError;
|
| +}
|
| +
|
| error::Error GLES2DecoderImpl::GetAttribLocationHelper(
|
| GLuint client_id, uint32 location_shm_id, uint32 location_shm_offset,
|
| const std::string& name_str) {
|
|
|