Chromium Code Reviews| 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..26d25eddbf84172cc59947fdec375ef3f008bb95 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( |
| @@ -338,9 +344,9 @@ bool ImageTransportSurfaceOverlayMac::ScheduleCALayer( |
| unsigned filter) { |
| base::ScopedCFTypeRef<IOSurfaceRef> io_surface; |
| base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer; |
| - if (contents_image) { |
| - gl::GLImageIOSurface* io_surface_image = |
| - static_cast<gl::GLImageIOSurface*>(contents_image); |
| + gl::GLImageIOSurface* io_surface_image = |
| + gl::GLImageIOSurface::FromGLImage(contents_image); |
| + if (io_surface_image) { |
| io_surface = io_surface_image->io_surface(); |
| cv_pixel_buffer = io_surface_image->cv_pixel_buffer(); |
| } |
|
piman
2016/06/28 17:28:35
else return false? Or is it ok/meaningful to call
erikchen
2016/06/28 17:36:08
Good point. We should return false.
|