Chromium Code Reviews| Index: cc/output/direct_renderer.h |
| diff --git a/cc/output/direct_renderer.h b/cc/output/direct_renderer.h |
| index d10962aeaf7c8a52dbf386add0013fa8fd57e43f..1fed523a556e92266810b808ba545755a0c52c8b 100644 |
| --- a/cc/output/direct_renderer.h |
| +++ b/cc/output/direct_renderer.h |
| @@ -22,22 +22,37 @@ |
| namespace cc { |
| class DrawPolygon; |
| class ResourceProvider; |
| +typedef std::vector<std::unique_ptr<RenderPass>> RenderPassList; |
| + |
| +class CC_EXPORT DirectRendererClient { |
| + public: |
| + virtual void SetFullRootLayerDamage() = 0; |
| +}; |
| // This is the base class for code shared between the GL and software |
| // renderer implementations. "Direct" refers to the fact that it does not |
| // delegate rendering to another compositor. |
| -class CC_EXPORT DirectRenderer : public Renderer { |
| +class CC_EXPORT DirectRenderer { |
| public: |
| - ~DirectRenderer() override; |
| + DirectRenderer(DirectRendererClient* client, |
| + const RendererSettings* settings, |
| + OutputSurface* output_surface, |
| + ResourceProvider* resource_provider); |
| + virtual ~DirectRenderer(); |
| void DecideRenderPassAllocationsForFrame( |
| - const RenderPassList& render_passes_in_draw_order) override; |
| - bool HasAllocatedResourcesForTesting(RenderPassId id) const override; |
| + const RenderPassList& render_passes_in_draw_order); |
| + bool HasAllocatedResourcesForTesting(RenderPassId id) const; |
| void DrawFrame(RenderPassList* render_passes_in_draw_order, |
| float device_scale_factor, |
| const gfx::ColorSpace& device_color_space, |
| const gfx::Rect& device_viewport_rect, |
| - const gfx::Rect& device_clip_rect) override; |
| + const gfx::Rect& device_clip_rect); |
| + virtual void SwapBuffers(CompositorFrameMetadata metadata) = 0; |
| + |
| + virtual const RendererCapabilitiesImpl& Capabilities() const = 0; |
| + |
| + // DO THIS: protected: |
|
enne (OOO)
2016/08/08 21:41:18
?
|
| virtual void SwapBuffersComplete() {} |
| virtual void DidReceiveTextureInUseResponses( |
| const gpu::TextureInUseResponses& responses) {} |
| @@ -85,11 +100,6 @@ class CC_EXPORT DirectRenderer : public Renderer { |
| SURFACE_INITIALIZATION_MODE_FULL_SURFACE_CLEAR, |
| }; |
| - DirectRenderer(RendererClient* client, |
| - const RendererSettings* settings, |
| - OutputSurface* output_surface, |
| - ResourceProvider* resource_provider); |
| - |
| static gfx::RectF QuadVertexRect(); |
| static void QuadRectTransform(gfx::Transform* quad_rect_transform, |
| const gfx::Transform& quad_transform, |
| @@ -146,13 +156,16 @@ class CC_EXPORT DirectRenderer : public Renderer { |
| virtual bool FlippedFramebuffer(const DrawingFrame* frame) const = 0; |
| virtual void EnsureScissorTestEnabled() = 0; |
| virtual void EnsureScissorTestDisabled() = 0; |
| - virtual void DiscardBackbuffer() {} |
| - virtual void EnsureBackbuffer() {} |
| virtual void CopyCurrentRenderPassToBitmap( |
| DrawingFrame* frame, |
| std::unique_ptr<CopyOutputRequest> request) = 0; |
| + DirectRendererClient* const client_; |
| + const RendererSettings* const settings_; |
| + OutputSurface* const output_surface_; |
| + ResourceProvider* const resource_provider_; |
| + |
| // TODO(danakj): Just use a vector of pairs here? Hash map is way overkill. |
| std::unordered_map<RenderPassId, |
| std::unique_ptr<ScopedResource>, |
| @@ -160,8 +173,6 @@ class CC_EXPORT DirectRenderer : public Renderer { |
| render_pass_textures_; |
| std::unordered_map<RenderPassId, TileDrawQuad, RenderPassIdHash> |
| render_pass_bypass_quads_; |
| - OutputSurface* output_surface_; |
| - ResourceProvider* resource_provider_; |
| std::unique_ptr<OverlayProcessor> overlay_processor_; |
| // For use in coordinate conversion, this stores the output rect, viewport |