Index: components/exo/compositor_frame_sink_holder.h |
diff --git a/components/exo/compositor_frame_sink_holder.h b/components/exo/compositor_frame_sink_holder.h |
index a469929e4b7f10819d51b792bc3eedb351284a63..53255618d15b7525931d402757d5edbb8f046769 100644 |
--- a/components/exo/compositor_frame_sink_holder.h |
+++ b/components/exo/compositor_frame_sink_holder.h |
@@ -5,17 +5,16 @@ |
#ifndef COMPONENTS_EXO_COMPOSITOR_FRAME_SINK_HOLDER_H_ |
#define COMPONENTS_EXO_COMPOSITOR_FRAME_SINK_HOLDER_H_ |
-#include <list> |
-#include <map> |
#include <memory> |
-#include "cc/ipc/mojo_compositor_frame_sink.mojom.h" |
+#include "base/containers/flat_map.h" |
+#include "cc/output/compositor_frame_sink_client.h" |
#include "cc/resources/release_callback.h" |
-#include "cc/resources/transferable_resource.h" |
-#include "cc/scheduler/begin_frame_source.h" |
-#include "components/exo/compositor_frame_sink.h" |
#include "components/exo/surface_observer.h" |
-#include "mojo/public/cpp/bindings/binding.h" |
+ |
+namespace cc { |
+class CompositorFrameSink; |
+} |
namespace exo { |
class Surface; |
@@ -24,51 +23,51 @@ class Surface; |
// the contents of Buffers. It's keeped alive by references from |
// release_callbacks_. It's destroyed when its owning Surface is destroyed and |
// the last outstanding release callback is called. |
-class CompositorFrameSinkHolder |
- : public base::RefCounted<CompositorFrameSinkHolder>, |
- public cc::ExternalBeginFrameSourceClient, |
- public cc::mojom::MojoCompositorFrameSinkClient, |
- public SurfaceObserver { |
+class CompositorFrameSinkHolder : public cc::CompositorFrameSinkClient, |
+ public SurfaceObserver { |
public: |
- CompositorFrameSinkHolder(Surface* surface, |
- const cc::FrameSinkId& frame_sink_id, |
- cc::SurfaceManager* surface_manager); |
+ CompositorFrameSinkHolder( |
+ Surface* surface, |
+ std::unique_ptr<cc::CompositorFrameSink> frame_sink); |
+ ~CompositorFrameSinkHolder() override; |
bool HasReleaseCallbackForResource(cc::ResourceId id); |
void SetResourceReleaseCallback(cc::ResourceId id, |
const cc::ReleaseCallback& callback); |
- CompositorFrameSink* GetCompositorFrameSink() { return frame_sink_.get(); } |
+ cc::CompositorFrameSink* GetCompositorFrameSink() { |
+ return frame_sink_.get(); |
+ } |
base::WeakPtr<CompositorFrameSinkHolder> GetWeakPtr() { |
return weak_factory_.GetWeakPtr(); |
} |
- // Overridden from cc::mojom::MojoCompositorFrameSinkClient: |
- void DidReceiveCompositorFrameAck( |
- const cc::ReturnedResourceArray& resources) override; |
- void OnBeginFrame(const cc::BeginFrameArgs& args) override; |
+ // Overridden from cc::CompositorFrameSinkClient: |
+ void SetBeginFrameSource(cc::BeginFrameSource* source) override; |
void ReclaimResources(const cc::ReturnedResourceArray& resources) override; |
- |
- // Overridden from cc::ExternalBeginFrameSourceClient: |
- void OnNeedsBeginFrames(bool needs_begin_frames) override; |
- void OnDidFinishFrame(const cc::BeginFrameAck& ack) override; |
+ void SetTreeActivationCallback(const base::Closure& callback) override {} |
+ void DidReceiveCompositorFrameAck() override; |
+ void DidLoseCompositorFrameSink() override {} |
+ void OnDraw(const gfx::Transform& transform, |
+ const gfx::Rect& viewport, |
+ bool resourceless_software_draw) override {} |
+ void SetMemoryPolicy(const cc::ManagedMemoryPolicy& policy) override {} |
+ void SetExternalTilePriorityConstraints( |
+ const gfx::Rect& viewport_rect, |
+ const gfx::Transform& transform) override {} |
// Overridden from SurfaceObserver: |
void OnSurfaceDestroying(Surface* surface) override; |
private: |
- friend class base::RefCounted<CompositorFrameSinkHolder>; |
- |
- ~CompositorFrameSinkHolder() override; |
// A collection of callbacks used to release resources. |
- using ResourceReleaseCallbackMap = std::map<int, cc::ReleaseCallback>; |
+ using ResourceReleaseCallbackMap = base::flat_map<int, cc::ReleaseCallback>; |
ResourceReleaseCallbackMap release_callbacks_; |
Surface* surface_; |
- std::unique_ptr<CompositorFrameSink> frame_sink_; |
- std::unique_ptr<cc::ExternalBeginFrameSource> begin_frame_source_; |
+ std::unique_ptr<cc::CompositorFrameSink> frame_sink_; |
base::WeakPtrFactory<CompositorFrameSinkHolder> weak_factory_; |