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 |