| Index: ui/gl/gl_image_io_surface.mm
|
| diff --git a/ui/gl/gl_image_io_surface.mm b/ui/gl/gl_image_io_surface.mm
|
| index b488c533cc49c2a3295e48836499f125dc3d2830..2044f3775a16590370ee323eac853eb007aaf98f 100644
|
| --- a/ui/gl/gl_image_io_surface.mm
|
| +++ b/ui/gl/gl_image_io_surface.mm
|
| @@ -199,12 +199,22 @@
|
| OverlayTransform transform,
|
| const Rect& bounds_rect,
|
| const RectF& crop_rect) {
|
| - NOTREACHED();
|
| - return false;
|
| -}
|
| -
|
| -base::ScopedCFTypeRef<IOSurfaceRef> GLImageIOSurface::io_surface() {
|
| - return io_surface_;
|
| + // Only simple overlay planes are currently supported.
|
| + DCHECK_EQ(0, z_order);
|
| + DCHECK_EQ(gfx::RectF(0, 0, 1, 1).ToString(), crop_rect.ToString());
|
| + DCHECK_EQ(gfx::OVERLAY_TRANSFORM_NONE, transform);
|
| +
|
| + // Convert the phony widget to the appropriate CALayer.
|
| + auto found = g_widget_to_layer_map.Pointer()->find(widget);
|
| + if (found == g_widget_to_layer_map.Pointer()->end())
|
| + return false;
|
| + CALayer* layer = found->second;
|
| +
|
| + // Also note that transactions are not disabled. The caller must ensure that
|
| + // all changes to the CALayer tree happen atomically.
|
| + [layer setContents:static_cast<id>(io_surface_.get())];
|
| + [layer setFrame:bounds_rect.ToCGRect()];
|
| + return true;
|
| }
|
|
|
| // static
|
|
|