Chromium Code Reviews| Index: components/view_manager/surfaces/top_level_display_client.h |
| diff --git a/components/view_manager/surfaces/display_impl.h b/components/view_manager/surfaces/top_level_display_client.h |
| similarity index 51% |
| rename from components/view_manager/surfaces/display_impl.h |
| rename to components/view_manager/surfaces/top_level_display_client.h |
| index f6db02a5131ec9c9639b00771c8f244ad799cdf8..c8d89944f6f4ee62dde2424ec0c56890031deceb 100644 |
| --- a/components/view_manager/surfaces/display_impl.h |
| +++ b/components/view_manager/surfaces/top_level_display_client.h |
| @@ -9,46 +9,48 @@ |
| #include "cc/surfaces/display_client.h" |
| #include "cc/surfaces/surface_factory.h" |
| #include "cc/surfaces/surface_factory_client.h" |
| -#include "components/view_manager/public/interfaces/display.mojom.h" |
| +#include "components/view_manager/public/interfaces/surfaces.mojom.h" |
| +#include "components/view_manager/surfaces/surfaces_context_provider.h" |
| #include "third_party/mojo/src/mojo/public/cpp/bindings/strong_binding.h" |
| +#include "ui/gfx/native_widget_types.h" |
| namespace cc { |
| class Display; |
| class SurfaceFactory; |
| } |
| +namespace gles2 { |
| +class GpuState; |
| +} |
| + |
| namespace surfaces { |
| class SurfacesScheduler; |
| -class SurfacesServiceApplication; |
| - |
| -class DisplayImpl : public mojo::Display, |
| - public mojo::ViewportParameterListener, |
| - public cc::DisplayClient, |
| - public cc::SurfaceFactoryClient { |
| +class SurfacesState; |
| + |
| +// A TopLevelDisplayClient manages the top level surface that is rendered into a |
|
rjkroege
2015/08/06 22:39:11
this implements display.mojom -- i.e. in a subsequ
Fady Samuel
2015/08/07 01:15:21
NO this does not implement display.mojom. In fact,
|
| +// provided AcceleratedWidget. Frames are submitted here. New frames are |
| +// scheduled to be generated here based on VSync. |
| +class TopLevelDisplayClient |
| + : public cc::DisplayClient, |
| + public cc::SurfaceFactoryClient, |
| + public surfaces::SurfacesContextProvider::Delegate { |
| public: |
| - DisplayImpl(SurfacesServiceApplication* application, |
| - cc::SurfaceManager* manager, |
| - cc::SurfaceId cc_id, |
| - SurfacesScheduler* scheduler, |
| - mojo::ContextProviderPtr context_provider, |
| - mojo::ResourceReturnerPtr returner, |
| - mojo::InterfaceRequest<mojo::Display> display_request); |
| - ~DisplayImpl() override; |
| + TopLevelDisplayClient(gfx::AcceleratedWidget widget, |
| + const scoped_refptr<gles2::GpuState>& gpu_state, |
| + const scoped_refptr<SurfacesState>& surfaces_state); |
| + ~TopLevelDisplayClient() override; |
| - private: |
| - void OnContextCreated(mojo::CommandBufferPtr gles2_client); |
| - |
| - // mojo::Display implementation: |
| - void SubmitFrame(mojo::FramePtr frame, |
| - const SubmitFrameCallback& callback) override; |
| + void SubmitFrame(mojo::FramePtr frame, const base::Closure& callback); |
| + private: |
| // DisplayClient implementation. |
| void CommitVSyncParameters(base::TimeTicks timebase, |
| base::TimeDelta interval) override; |
| void OutputSurfaceLost() override; |
| void SetMemoryPolicy(const cc::ManagedMemoryPolicy& policy) override; |
| - // ViewportParameterListener |
| + // SurfacesContextProvider::Delegate: |
| + void OnContextCreated(); |
| void OnVSyncParametersUpdated(int64_t timebase, int64_t interval) override; |
| // SurfaceFactoryClient implementation. |
| @@ -56,24 +58,18 @@ class DisplayImpl : public mojo::Display, |
| void Draw(); |
| - SurfacesServiceApplication* application_; |
| - cc::SurfaceManager* manager_; |
| + scoped_refptr<gles2::GpuState> gpu_state_; |
| + scoped_refptr<SurfacesState> surfaces_state_; |
| cc::SurfaceFactory factory_; |
| cc::SurfaceId cc_id_; |
| - SurfacesScheduler* scheduler_; |
| - mojo::ContextProviderPtr context_provider_; |
| - mojo::ResourceReturnerPtr returner_; |
| gfx::Size last_submitted_frame_size_; |
| mojo::FramePtr pending_frame_; |
| - SubmitFrameCallback pending_callback_; |
| + base::Closure pending_callback_; |
| scoped_ptr<cc::Display> display_; |
| - mojo::Binding<mojo::ViewportParameterListener> viewport_param_binding_; |
| - mojo::StrongBinding<mojo::Display> display_binding_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(DisplayImpl); |
| + DISALLOW_COPY_AND_ASSIGN(TopLevelDisplayClient); |
| }; |
| } // namespace surfaces |