Index: ui/gfx/surface/accelerated_surface_mac.h |
=================================================================== |
--- ui/gfx/surface/accelerated_surface_mac.h (revision 89274) |
+++ ui/gfx/surface/accelerated_surface_mac.h (working copy) |
@@ -124,6 +124,8 @@ |
// object is valid. |
bool SetupFrameBufferObject(GLenum target); |
+ gfx::Size ClampToValidDimensions(const gfx::Size& size); |
+ |
// The OpenGL context, and pbuffer drawable, used to transfer data |
// to the shared region (IOSurface or TransportDIB). Strictly |
// speaking, we do not need to allocate a GL context all of the |
@@ -147,6 +149,11 @@ |
// make this work (or even compile). |
scoped_ptr<TransportDIB> transport_dib_; |
gfx::Size surface_size_; |
+ // It's important to avoid allocating zero-width or zero-height |
+ // IOSurfaces and textures on the Mac, so we clamp each to a minimum |
+ // of 1. This is the real size of the surface; surface_size_ is what |
+ // the user requested. |
+ gfx::Size real_surface_size_; |
// TODO(kbr): the FBO management should not be in this class at all. |
// However, if it is factored out, care needs to be taken to not |
// introduce another copy of the color data on the GPU; the direct |