Index: content/common/gpu/image_transport_surface_calayer_mac.h |
diff --git a/content/common/gpu/image_transport_surface_calayer_mac.h b/content/common/gpu/image_transport_surface_calayer_mac.h |
index 85ee4181a3a33c82e46c6c9b4a825cdd5a36817c..96a01e484c83bc053ad74dc5bd8b5331bf1b58ea 100644 |
--- a/content/common/gpu/image_transport_surface_calayer_mac.h |
+++ b/content/common/gpu/image_transport_surface_calayer_mac.h |
@@ -28,17 +28,26 @@ |
CGLContextObj context, GLuint texture, |
gfx::Size pixel_size, float scale_factor) OVERRIDE; |
virtual void FreeColorBufferStorage() OVERRIDE; |
- virtual uint64 GetSurfaceHandle() const OVERRIDE; |
- virtual void WillSwapBuffers() OVERRIDE; |
- virtual void CanFreeSwappedBuffer() OVERRIDE; |
+ virtual void SwapBuffers(const gfx::Size& size, float scale_factor) OVERRIDE; |
+ virtual void WillWriteToBackbuffer() OVERRIDE; |
+ virtual void DiscardBackbuffer() OVERRIDE; |
+ virtual void SwapBuffersAckedByBrowser() OVERRIDE; |
// Interface to ImageTransportLayer: |
CGLContextObj LayerShareGroupContext(); |
bool LayerCanDraw(); |
void LayerDoDraw(); |
+ void LayerResetStorageProvider(); |
private: |
+ void DrawWithVsyncDisabled(); |
+ void SendPendingSwapToBrowserAfterFrameDrawn(); |
+ |
ImageTransportSurfaceFBO* transport_surface_; |
+ |
+ // Used to determine if we should use setNeedsDisplay or setAsynchronous to |
+ // animate. |
+ const bool gpu_vsync_disabled_; |
// Set when a new swap occurs, and un-set when |layer_| draws that frame. |
bool has_pending_draw_; |
@@ -53,11 +62,13 @@ |
base::ScopedTypeRef<CGLContextObj> share_group_context_; |
GLuint fbo_texture_; |
gfx::Size fbo_pixel_size_; |
+ float fbo_scale_factor_; |
// The CALayer that the current frame is being drawn into. |
base::scoped_nsobject<CAContext> context_; |
base::scoped_nsobject<ImageTransportLayer> layer_; |
+ base::WeakPtrFactory<CALayerStorageProvider> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(CALayerStorageProvider); |
}; |