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(); |