| Index: blimp/client/compositor/blimp_compositor.h
|
| diff --git a/blimp/client/compositor/blimp_compositor.h b/blimp/client/compositor/blimp_compositor.h
|
| deleted file mode 100644
|
| index 50056f8a1dddfdf604d0855c298556e396504b71..0000000000000000000000000000000000000000
|
| --- a/blimp/client/compositor/blimp_compositor.h
|
| +++ /dev/null
|
| @@ -1,185 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef BLIMP_CLIENT_COMPOSITOR_BLIMP_COMPOSITOR_H_
|
| -#define BLIMP_CLIENT_COMPOSITOR_BLIMP_COMPOSITOR_H_
|
| -
|
| -#include <vector>
|
| -
|
| -#include "base/macros.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "blimp/client/blimp_client_export.h"
|
| -#include "blimp/client/input/blimp_input_manager.h"
|
| -#include "blimp/client/session/render_widget_feature.h"
|
| -#include "cc/layers/layer_settings.h"
|
| -#include "cc/trees/layer_tree_host_client.h"
|
| -#include "cc/trees/layer_tree_settings.h"
|
| -#include "cc/trees/remote_proto_channel.h"
|
| -#include "ui/gfx/geometry/size.h"
|
| -#include "ui/gfx/native_widget_types.h"
|
| -
|
| -namespace base {
|
| -class SingleThreadTaskRunner;
|
| -class Thread;
|
| -}
|
| -
|
| -namespace cc {
|
| -class LayerTreeHost;
|
| -}
|
| -
|
| -namespace blimp {
|
| -
|
| -class BlimpMessage;
|
| -
|
| -namespace client {
|
| -
|
| -// BlimpCompositor provides the basic framework and setup to host a
|
| -// LayerTreeHost. The class that owns the LayerTreeHost is usually called the
|
| -// compositor, but the LayerTreeHost does the compositing work. The rendering
|
| -// surface this compositor draws to is defined by the gfx::AcceleratedWidget set
|
| -// by SetAcceleratedWidget(). This class should only be accessed from the main
|
| -// thread. Any interaction with the compositing thread should happen through
|
| -// the LayerTreeHost or RemoteChannelImpl.
|
| -class BLIMP_CLIENT_EXPORT BlimpCompositor
|
| - : public cc::LayerTreeHostClient,
|
| - public cc::RemoteProtoChannel,
|
| - public RenderWidgetFeature::RenderWidgetFeatureDelegate,
|
| - public BlimpInputManagerClient {
|
| - public:
|
| - // |dp_to_px| is the scale factor required to move from dp (device pixels) to
|
| - // px. See https://developer.android.com/guide/practices/screens_support.html
|
| - // for more details.
|
| - BlimpCompositor(float dp_to_px, RenderWidgetFeature* render_widget_feature);
|
| -
|
| - ~BlimpCompositor() override;
|
| -
|
| - // Default layer settings for all Blimp layer instances.
|
| - static cc::LayerSettings LayerSettings();
|
| -
|
| - // Sets whether or not this compositor actually draws to the output surface.
|
| - // Setting this to false will make the compositor drop all of its resources
|
| - // and the output surface. Setting it to true again will rebuild the output
|
| - // surface from the gfx::AcceleratedWidget (see SetAcceleratedWidget).
|
| - void SetVisible(bool visible);
|
| -
|
| - // Sets the size of the viewport on the compositor.
|
| - // TODO(dtrainor): Should this be set from the engine all the time?
|
| - void SetSize(const gfx::Size& size);
|
| -
|
| - // Lets this compositor know that it can draw to |widget|. This means that,
|
| - // if this compositor is visible, it will build an output surface and GL
|
| - // context around |widget| and will draw to it. ReleaseAcceleratedWidget()
|
| - // *must* be called before SetAcceleratedWidget() is called with the same
|
| - // gfx::AcceleratedWidget on another compositor.
|
| - void SetAcceleratedWidget(gfx::AcceleratedWidget widget);
|
| -
|
| - // Releases the internally stored gfx::AcceleratedWidget and the associated
|
| - // output surface. This must be called before calling
|
| - // SetAcceleratedWidget() with the same gfx::AcceleratedWidget on another
|
| - // compositor.
|
| - void ReleaseAcceleratedWidget();
|
| -
|
| - // Forwards the touch event to the |input_manager_|.
|
| - bool OnTouchEvent(const ui::MotionEvent& motion_event);
|
| -
|
| - protected:
|
| - // Populates the cc::LayerTreeSettings used by the cc::LayerTreeHost. Can be
|
| - // overridden to provide custom settings parameters.
|
| - virtual void GenerateLayerTreeSettings(cc::LayerTreeSettings* settings);
|
| -
|
| - private:
|
| - // LayerTreeHostClient implementation.
|
| - void WillBeginMainFrame() override;
|
| - void DidBeginMainFrame() override;
|
| - void BeginMainFrame(const cc::BeginFrameArgs& args) override;
|
| - void BeginMainFrameNotExpectedSoon() override;
|
| - void UpdateLayerTreeHost() override;
|
| - void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta,
|
| - const gfx::Vector2dF& outer_delta,
|
| - const gfx::Vector2dF& elastic_overscroll_delta,
|
| - float page_scale,
|
| - float top_controls_delta) override;
|
| - void RequestNewOutputSurface() override;
|
| - void DidInitializeOutputSurface() override;
|
| - void DidFailToInitializeOutputSurface() override;
|
| - void WillCommit() override;
|
| - void DidCommit() override;
|
| - void DidCommitAndDrawFrame() override;
|
| - void DidCompleteSwapBuffers() override;
|
| - void DidCompletePageScaleAnimation() override;
|
| - void RecordFrameTimingEvents(
|
| - scoped_ptr<cc::FrameTimingTracker::CompositeTimingSet> composite_events,
|
| - scoped_ptr<cc::FrameTimingTracker::MainFrameTimingSet> main_frame_events)
|
| - override;
|
| -
|
| - // RemoteProtoChannel implementation.
|
| - void SetProtoReceiver(ProtoReceiver* receiver) override;
|
| - void SendCompositorProto(const cc::proto::CompositorMessage& proto) override;
|
| -
|
| - // RenderWidgetFeatureDelegate implementation.
|
| - void OnRenderWidgetInitialized() override;
|
| - void OnCompositorMessageReceived(
|
| - scoped_ptr<cc::proto::CompositorMessage> message) override;
|
| -
|
| - // BlimpInputManagerClient implementation.
|
| - void SendWebInputEvent(const blink::WebInputEvent& input_event) override;
|
| -
|
| - // Helper method to build the internal CC compositor instance from |message|.
|
| - void CreateLayerTreeHost(scoped_ptr<cc::proto::CompositorMessage> message);
|
| -
|
| - // Creates (if necessary) and returns a TaskRunner for a thread meant to run
|
| - // compositor rendering.
|
| - void HandlePendingOutputSurfaceRequest();
|
| - scoped_refptr<base::SingleThreadTaskRunner> GetCompositorTaskRunner();
|
| -
|
| - gfx::Size viewport_size_;
|
| -
|
| - // The scale factor used to convert dp units (device independent pixels) to
|
| - // pixels.
|
| - float device_scale_factor_;
|
| - scoped_ptr<cc::LayerTreeHost> host_;
|
| - scoped_ptr<cc::LayerTreeSettings> settings_;
|
| -
|
| - // Lazily created thread that will run the compositor rendering tasks.
|
| - scoped_ptr<base::Thread> compositor_thread_;
|
| -
|
| - gfx::AcceleratedWidget window_;
|
| -
|
| - // Whether or not |host_| should be visible. This is stored in case |host_|
|
| - // is null when SetVisible() is called or if we don't have a
|
| - // gfx::AcceleratedWidget to build an output surface from.
|
| - bool host_should_be_visible_;
|
| -
|
| - // Whether there is an OutputSurface request pending from the current
|
| - // |host_|. Becomes |true| if RequestNewOutputSurface is called, and |false|
|
| - // if |host_| is deleted or we succeed in creating *and* initializing an
|
| - // OutputSurface (which is essentially the contract with cc).
|
| - bool output_surface_request_pending_;
|
| -
|
| - // To be notified of any incoming compositor protos that are specifically sent
|
| - // to |render_widget_id_|.
|
| - cc::RemoteProtoChannel::ProtoReceiver* remote_proto_channel_receiver_;
|
| -
|
| - // The bridge to the network layer that does the proto/RenderWidget id work.
|
| - // BlimpCompositor does not own this and it is expected to outlive this
|
| - // BlimpCompositor instance.
|
| - // TODO(dtrainor): Move this to a higher level once we start dealing with
|
| - // multiple tabs.
|
| - RenderWidgetFeature* render_widget_feature_;
|
| -
|
| - // Handles input events for the current render widget. The lifetime of the
|
| - // input manager is tied to the lifetime of the |host_| which owns the
|
| - // cc::InputHandler. The input events are forwarded to this input handler by
|
| - // the manager to be handled by the client compositor for the current render
|
| - // widget.
|
| - scoped_ptr<BlimpInputManager> input_manager_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BlimpCompositor);
|
| -};
|
| -
|
| -} // namespace client
|
| -} // namespace blimp
|
| -
|
| -#endif // BLIMP_CLIENT_COMPOSITOR_BLIMP_COMPOSITOR_H_
|
|
|