Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Unified Diff: components/view_manager/surfaces/top_level_display_client.h

Issue 1245683004: Mandoline: Merge Surfaces and Views apps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Rob's comments Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698