Chromium Code Reviews| 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 6d4bacbfa7f941e3cfcf8a1855a3e1b36c2770ab..ee8a1812563533c5a72f01753ae1f2f18ad5565a 100644 |
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
| @@ -62,8 +62,10 @@ |
| #include "gpu/command_buffer/service/vertex_array_manager.h" |
| #include "gpu/command_buffer/service/vertex_attrib_manager.h" |
| #include "third_party/smhasher/src/City.h" |
| +#include "ui/accelerated_widget_mac/ca_renderer_layer_params.h" |
| #include "ui/gfx/geometry/point.h" |
| #include "ui/gfx/geometry/rect.h" |
| +#include "ui/gfx/geometry/rect_conversions.h" |
| #include "ui/gfx/geometry/size.h" |
| #include "ui/gfx/overlay_transform.h" |
| #include "ui/gfx/transform.h" |
| @@ -10331,10 +10333,22 @@ error::Error GLES2DecoderImpl::HandleScheduleCALayerCHROMIUM( |
| mem[13], mem[17], mem[21], mem[25], |
| mem[14], mem[18], mem[22], mem[26], |
| mem[15], mem[19], mem[23], mem[27]); |
| - if (!surface_->ScheduleCALayer( |
| - image, contents_rect, c.opacity, c.background_color, c.edge_aa_mask, |
| - bounds_rect, c.is_clipped ? true : false, clip_rect, transform, |
| - c.sorting_context_id, filter)) { |
| + |
|
piman
2016/06/28 00:28:09
This, and the headers will now need to be in a #if
kirr
2016/06/28 10:25:48
Done.
Thanks. I've replaced mac-specific surfaces
|
| + base::ScopedCFTypeRef<IOSurfaceRef> io_surface; |
| + base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer; |
| + if (image) { |
| + gl::GLImageIOSurface* io_surface_image = |
| + static_cast<gl::GLImageIOSurface*>(image); |
|
ccameron
2016/06/28 00:05:14
Add a TODO(ccameron): Remove this cast (crbug.com/
kirr
2016/06/28 10:25:48
Done.
|
| + io_surface = io_surface_image->io_surface(); |
| + cv_pixel_buffer = io_surface_image->cv_pixel_buffer(); |
| + } |
| + |
| + ui::CARendererLayerParams params = ui::CARendererLayerParams( |
| + c.is_clipped ? true : false, gfx::ToEnclosingRect(clip_rect), |
| + c.sorting_context_id, transform, io_surface, cv_pixel_buffer, |
| + contents_rect, gfx::ToEnclosingRect(bounds_rect), c.background_color, |
| + c.edge_aa_mask, c.opacity, filter); |
| + if (!surface_->ScheduleCALayer(params)) { |
| LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glScheduleCALayerCHROMIUM", |
| "failed to schedule CALayer"); |
| } |