| Index: gpu/ipc/service/image_transport_surface_overlay_mac.mm
|
| diff --git a/gpu/ipc/service/image_transport_surface_overlay_mac.mm b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
|
| index f2da74fdc5503df73540cc2cd58b3f29fcbf3a2b..84d77e1f3a89a680a1257c3ebbcbb945cabf269f 100644
|
| --- a/gpu/ipc/service/image_transport_surface_overlay_mac.mm
|
| +++ b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
|
| @@ -163,9 +163,9 @@ void ImageTransportSurfaceOverlayMac::SendAcceleratedSurfaceBuffersSwapped(
|
| gpu::TextureInUseResponse response;
|
| response.texture = query.texture;
|
| bool in_use = false;
|
| - if (query.image) {
|
| - gl::GLImageIOSurface* io_surface_image =
|
| - static_cast<gl::GLImageIOSurface*>(query.image.get());
|
| + gl::GLImageIOSurface* io_surface_image =
|
| + gl::GLImageIOSurface::FromGLImage(query.image.get());
|
| + if (io_surface_image) {
|
| in_use = io_surface_image->CanCheckIOSurfaceIsInUse() &&
|
| IOSurfaceIsInUse(io_surface_image->io_surface());
|
| }
|
| @@ -320,8 +320,14 @@ bool ImageTransportSurfaceOverlayMac::ScheduleOverlayPlane(
|
| DLOG(ERROR) << "Invalid non-zero Z order.";
|
| return false;
|
| }
|
| + gl::GLImageIOSurface* io_surface_image =
|
| + gl::GLImageIOSurface::FromGLImage(image);
|
| + if (!io_surface_image) {
|
| + DLOG(ERROR) << "Not an IOSurface image.";
|
| + return false;
|
| + }
|
| return ca_layer_tree_coordinator_->SetPendingGLRendererBackbuffer(
|
| - static_cast<gl::GLImageIOSurface*>(image)->io_surface());
|
| + io_surface_image->io_surface());
|
| }
|
|
|
| bool ImageTransportSurfaceOverlayMac::ScheduleCALayer(
|
| @@ -340,7 +346,11 @@ bool ImageTransportSurfaceOverlayMac::ScheduleCALayer(
|
| base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer;
|
| if (contents_image) {
|
| gl::GLImageIOSurface* io_surface_image =
|
| - static_cast<gl::GLImageIOSurface*>(contents_image);
|
| + gl::GLImageIOSurface::FromGLImage(contents_image);
|
| + if (!io_surface_image) {
|
| + DLOG(ERROR) << "Cannot schedule CALayer with non-IOSurface GLImage";
|
| + return false;
|
| + }
|
| io_surface = io_surface_image->io_surface();
|
| cv_pixel_buffer = io_surface_image->cv_pixel_buffer();
|
| }
|
|
|