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.
|