| Index: cc/output/direct_renderer.h
|
| diff --git a/cc/output/direct_renderer.h b/cc/output/direct_renderer.h
|
| index f13ed37ad9e047c2b9fab2b184cc0ab40936379e..76764cf407c0f36ee5623caf1e172fc44eff1a5d 100644
|
| --- a/cc/output/direct_renderer.h
|
| +++ b/cc/output/direct_renderer.h
|
| @@ -9,13 +9,17 @@
|
| #include "base/callback.h"
|
| #include "base/containers/scoped_ptr_hash_map.h"
|
| #include "cc/base/cc_export.h"
|
| +#include "cc/base/scoped_ptr_deque.h"
|
| #include "cc/output/overlay_processor.h"
|
| #include "cc/output/renderer.h"
|
| #include "cc/resources/resource_provider.h"
|
| #include "cc/resources/scoped_resource.h"
|
| +#include "cc/resources/task_graph_runner.h"
|
| +#include "ui/gfx/quad_f.h"
|
|
|
| namespace cc {
|
|
|
| +class DrawPolygon;
|
| class ResourceProvider;
|
|
|
| // This is the base class for code shared between the GL and software
|
| @@ -56,6 +60,9 @@ class CC_EXPORT DirectRenderer : public Renderer {
|
| };
|
|
|
| void SetEnlargePassTextureAmountForTesting(const gfx::Vector2d& amount);
|
| + void DoDrawPolygon(const DrawPolygon& poly, DrawingFrame* frame,
|
| + const gfx::Rect& render_pass_scissor,
|
| + bool using_scissor_as_optimization);
|
|
|
| protected:
|
| DirectRenderer(RendererClient* client,
|
| @@ -77,16 +84,22 @@ class CC_EXPORT DirectRenderer : public Renderer {
|
| gfx::Rect DeviceClipRectInWindowSpace(const DrawingFrame* frame) const;
|
| static gfx::Rect ComputeScissorRectForRenderPass(const DrawingFrame* frame);
|
| void SetScissorStateForQuad(const DrawingFrame* frame, const DrawQuad& quad);
|
| + bool ShouldSkipQuad(
|
| + const DrawQuad& quad,
|
| + const gfx::Rect& render_pass_scissor);
|
| void SetScissorStateForQuadWithRenderPassScissor(
|
| const DrawingFrame* frame,
|
| const DrawQuad& quad,
|
| - const gfx::Rect& render_pass_scissor,
|
| - bool* should_skip_quad);
|
| + const gfx::Rect& render_pass_scissor);
|
| void SetScissorTestRectInDrawSpace(const DrawingFrame* frame,
|
| const gfx::Rect& draw_space_rect);
|
|
|
| static gfx::Size RenderPassTextureSize(const RenderPass* render_pass);
|
|
|
| + void FlushPolygons(ScopedPtrDeque<DrawPolygon>* poly_list,
|
| + DrawingFrame* frame,
|
| + const gfx::Rect& render_pass_scissor,
|
| + bool using_scissor_as_optimization);
|
| void DrawRenderPass(DrawingFrame* frame, const RenderPass* render_pass);
|
| bool UseRenderPass(DrawingFrame* frame, const RenderPass* render_pass);
|
|
|
| @@ -100,7 +113,9 @@ class CC_EXPORT DirectRenderer : public Renderer {
|
| bool draw_rect_covers_full_surface) = 0;
|
| virtual void ClearFramebuffer(DrawingFrame* frame,
|
| bool has_external_stencil_test) = 0;
|
| - virtual void DoDrawQuad(DrawingFrame* frame, const DrawQuad* quad) = 0;
|
| + virtual void DoDrawQuad(DrawingFrame* frame,
|
| + const DrawQuad* quad,
|
| + const gfx::QuadF* draw_region = NULL) = 0;
|
| virtual void BeginDrawingFrame(DrawingFrame* frame) = 0;
|
| virtual void FinishDrawingFrame(DrawingFrame* frame) = 0;
|
| virtual void FinishDrawingQuadList();
|
|
|