Index: ui/gl/gl_image_io_surface.mm |
diff --git a/ui/gl/gl_image_io_surface.cc b/ui/gl/gl_image_io_surface.mm |
similarity index 91% |
rename from ui/gl/gl_image_io_surface.cc |
rename to ui/gl/gl_image_io_surface.mm |
index adcadee363ab5499ca14bd43fbf5bff11378ba51..b967bd448a09c4ef4eddd5b3c5cfe97e517af179 100644 |
--- a/ui/gl/gl_image_io_surface.cc |
+++ b/ui/gl/gl_image_io_surface.mm |
@@ -4,10 +4,12 @@ |
#include "ui/gl/gl_image_io_surface.h" |
+#include "base/mac/foundation_util.h" |
#include "ui/gl/gl_bindings.h" |
#include "ui/gl/gl_context.h" |
// Note that this must be included after gl_bindings.h to avoid conflicts. |
+#include <Quartz/Quartz.h> |
#include <OpenGL/CGLIOSurface.h> |
namespace gfx { |
@@ -192,7 +194,15 @@ bool GLImageIOSurface::ScheduleOverlayPlane(gfx::AcceleratedWidget widget, |
OverlayTransform transform, |
const Rect& bounds_rect, |
const RectF& crop_rect) { |
- return false; |
+ // Note that gfx::AcceleratedWidget does not actually map to CALayer in this |
+ // context. It may be that the types should coincide. |
+ CALayer* layer = base::mac::ObjCCastStrict<CALayer>(widget); |
+ |
+ // Also note that transactions are not disabled. The caller must ensure that |
+ // all changes to the CALayer tree happen atomically. |
+ [layer setContents:(id)io_surface_.get()]; |
Andre
2015/07/22 21:34:36
Style guide prohibits C style casts.
ccameron
2015/07/23 05:33:02
Changed to static_cast<id>.
|
+ [layer setFrame:bounds_rect.ToCGRect()]; |
+ return true; |
} |
} // namespace gfx |