Chromium Code Reviews| Index: content/renderer/android/synchronous_compositor_output_surface.h |
| diff --git a/content/renderer/android/synchronous_compositor_output_surface.h b/content/renderer/android/synchronous_compositor_output_surface.h |
| index 69eec2eadbf57f76d21ce3b7520c582e2448a764..a1fe6617a272ec30db4a05c255fa23009f7f57ab 100644 |
| --- a/content/renderer/android/synchronous_compositor_output_surface.h |
| +++ b/content/renderer/android/synchronous_compositor_output_surface.h |
| @@ -3,32 +3,48 @@ |
| // found in the LICENSE file. |
| #ifndef CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_OUTPUT_SURFACE_H_ |
| -#define CONTENT_RENDERER_ANDOIRD_SYNCHRONOUS_COMPOSITOR_OUTPUT_SURFACE_H_ |
| +#define CONTENT_RENDERER_ANDROID_SYNCHRONOUS_COMPOSITOR_OUTPUT_SURFACE_H_ |
| #include "base/basictypes.h" |
| #include "base/compiler_specific.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "base/memory/weak_ptr.h" |
|
joth
2013/05/23 19:20:57
not needed?
mkosiba (inactive)
2013/05/24 14:42:41
Done.
|
| #include "cc/output/output_surface.h" |
| #include "content/public/renderer/android/synchronous_compositor.h" |
| namespace content { |
| class SynchronousCompositorClient; |
| +class SynchronousCompositorOutputSurfaceDelegate; |
| class WebGraphicsContext3DCommandBufferImpl; |
| +class SynchronousCompositorOutputSurfaceDelegate { |
| + public: |
| + virtual void SetContinuousInvalidate(bool enable) = 0; |
| + virtual void DidCreateSynchronousCompositor() = 0; |
| + virtual void DidDestroyCompositor() = 0; |
|
joth
2013/05/23 19:20:57
Shouldn't these be Did{Create|Destroy}OutputSurfac
mkosiba (inactive)
2013/05/24 14:42:41
Done.
|
| + |
| + protected: |
| + SynchronousCompositorOutputSurfaceDelegate() {} |
| + virtual ~SynchronousCompositorOutputSurfaceDelegate() {} |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(SynchronousCompositorOutputSurfaceDelegate); |
| +}; |
| + |
| // Specialization of the output surface that adapts it to implement the |
| // content::SynchronousCompositor public API. This class effects an "inversion |
| // of control" - enabling drawing to be orchestrated by the embedding |
| // layer, instead of driven by the compositor internals - hence it holds two |
| -// 'client' pointers (including |client_| in the OutputSurface baseclass) which |
| -// represent the consumers of the two roles in plays. |
| +// 'client' pointers (|client_| in the OutputSurface baseclass and |delegate_|) |
| +// which represent the consumers of the two roles in plays. |
| // This class can be created only on the main thread, but then becomes pinned |
| // to a fixed thread when BindToClient is called. |
| class SynchronousCompositorOutputSurface |
| - : NON_EXPORTED_BASE(public cc::OutputSurface), |
| - NON_EXPORTED_BASE(public SynchronousCompositor) { |
| + : NON_EXPORTED_BASE(public cc::OutputSurface) { |
| public: |
| - explicit SynchronousCompositorOutputSurface(int32 routing_id); |
| + explicit SynchronousCompositorOutputSurface( |
| + SynchronousCompositorOutputSurfaceDelegate* delegate); |
| virtual ~SynchronousCompositorOutputSurface(); |
| // OutputSurface. |
| @@ -39,15 +55,12 @@ class SynchronousCompositorOutputSurface |
| virtual void SetNeedsBeginFrame(bool enable) OVERRIDE; |
| virtual void SwapBuffers(const cc::LatencyInfo& info) OVERRIDE; |
| - // SynchronousCompositor. |
| - virtual void SetClient(SynchronousCompositorClient* compositor_client) |
| - OVERRIDE; |
| - virtual bool IsHwReady() OVERRIDE; |
| - virtual bool DemandDrawSw(SkCanvas* canvas) OVERRIDE; |
| - virtual bool DemandDrawHw( |
| - gfx::Size view_size, |
| - const gfx::Transform& transform, |
| - gfx::Rect clip) OVERRIDE; |
| + // Partial SynchronousCompositor API implementation. |
| + bool IsHwReady(); |
| + bool DemandDrawSw(SkCanvas* canvas); |
| + bool DemandDrawHw(gfx::Size view_size, |
| + const gfx::Transform& transform, |
| + gfx::Rect clip); |
| private: |
| class SoftwareDevice; |
| @@ -58,9 +71,9 @@ class SynchronousCompositorOutputSurface |
| void NotifyCompositorSettingsChanged(); |
| bool CalledOnValidThread() const; |
| - SynchronousCompositorClient* compositor_client_; |
| - int routing_id_; |
| + SynchronousCompositorOutputSurfaceDelegate* delegate_; |
| bool needs_begin_frame_; |
| + bool vsync_enabled_; |
|
joth
2013/05/23 19:20:57
unused
mkosiba (inactive)
2013/05/24 14:42:41
Done.
|
| bool did_swap_buffer_; |
| // Only valid (non-NULL) during a DemandDrawSw() call. |