| Index: cc/output/gl_renderer.h
|
| diff --git a/cc/output/gl_renderer.h b/cc/output/gl_renderer.h
|
| index 75a5d6e720e76572268f2a7b5e32570c24647d83..3d8a4a61601cd242feb1cc2630513551bbf7c122 100644
|
| --- a/cc/output/gl_renderer.h
|
| +++ b/cc/output/gl_renderer.h
|
| @@ -40,6 +40,7 @@ class StreamVideoDrawQuad;
|
| class TextureDrawQuad;
|
| class TextureMailboxDeleter;
|
| class GeometryBinding;
|
| +class GeometryBindingQuad;
|
| class ScopedEnsureFramebufferAllocation;
|
|
|
| // Class that handles drawing of composited render layers using GL.
|
| @@ -111,7 +112,9 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
|
| bool draw_rect_covers_full_surface) OVERRIDE;
|
| virtual void ClearFramebuffer(DrawingFrame* frame,
|
| bool has_external_stencil_test) OVERRIDE;
|
| - virtual void DoDrawQuad(DrawingFrame* frame, const class DrawQuad*) OVERRIDE;
|
| + virtual void DoDrawQuad(DrawingFrame* frame,
|
| + const class DrawQuad*,
|
| + const gfx::QuadF* draw_region = NULL) OVERRIDE;
|
| virtual void BeginDrawingFrame(DrawingFrame* frame) OVERRIDE;
|
| virtual void FinishDrawingFrame(DrawingFrame* frame) OVERRIDE;
|
| virtual bool FlippedFramebuffer() const OVERRIDE;
|
| @@ -140,7 +143,8 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
|
| static void ToGLMatrix(float* gl_matrix, const gfx::Transform& transform);
|
|
|
| void DrawCheckerboardQuad(const DrawingFrame* frame,
|
| - const CheckerboardDrawQuad* quad);
|
| + const CheckerboardDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| void DrawDebugBorderQuad(const DrawingFrame* frame,
|
| const DebugBorderDrawQuad* quad);
|
| scoped_ptr<ScopedResource> GetBackgroundWithFilters(
|
| @@ -149,27 +153,46 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
|
| const gfx::Transform& contents_device_transform,
|
| const gfx::Transform& contents_device_transformInverse,
|
| bool* background_changed);
|
| - void DrawRenderPassQuad(DrawingFrame* frame, const RenderPassDrawQuad* quad);
|
| + void DrawRenderPassQuad(DrawingFrame* frame,
|
| + const RenderPassDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| void DrawSolidColorQuad(const DrawingFrame* frame,
|
| - const SolidColorDrawQuad* quad);
|
| + const SolidColorDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| void DrawStreamVideoQuad(const DrawingFrame* frame,
|
| - const StreamVideoDrawQuad* quad);
|
| + const StreamVideoDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| + void DrawTextureQuad(const DrawingFrame* frame,
|
| + const TextureDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| void EnqueueTextureQuad(const DrawingFrame* frame,
|
| - const TextureDrawQuad* quad);
|
| - void FlushTextureQuadCache();
|
| + const TextureDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| + void FlushTextureQuadCache(bool using_clip_region);
|
| void DrawIOSurfaceQuad(const DrawingFrame* frame,
|
| - const IOSurfaceDrawQuad* quad);
|
| - void DrawTileQuad(const DrawingFrame* frame, const TileDrawQuad* quad);
|
| + const IOSurfaceDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| + void DrawTileQuad(const DrawingFrame* frame,
|
| + const TileDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| void DrawContentQuad(const DrawingFrame* frame,
|
| const ContentDrawQuadBase* quad,
|
| - ResourceProvider::ResourceId resource_id);
|
| + ResourceProvider::ResourceId resource_id,
|
| + const gfx::QuadF* clip_region);
|
| void DrawYUVVideoQuad(const DrawingFrame* frame,
|
| - const YUVVideoDrawQuad* quad);
|
| + const YUVVideoDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
| void DrawPictureQuad(const DrawingFrame* frame,
|
| - const PictureDrawQuad* quad);
|
| + const PictureDrawQuad* quad,
|
| + const gfx::QuadF* clip_region);
|
|
|
| void SetShaderOpacity(float opacity, int alpha_location);
|
| void SetShaderQuadF(const gfx::QuadF& quad, int quad_location);
|
| + void DrawQuadGeometryClippedByQuadF(const DrawingFrame* frame,
|
| + const gfx::Transform& draw_transform,
|
| + const gfx::RectF& quad_rect,
|
| + const gfx::QuadF& clipping_region_quad,
|
| + int matrix_location);
|
| void DrawQuadGeometry(const DrawingFrame* frame,
|
| const gfx::Transform& draw_transform,
|
| const gfx::RectF& quad_rect,
|
| @@ -218,6 +241,7 @@ class CC_EXPORT GLRenderer : public DirectRenderer {
|
| unsigned offscreen_framebuffer_id_;
|
|
|
| scoped_ptr<GeometryBinding> shared_geometry_;
|
| + scoped_ptr<GeometryBindingQuad> clipped_geometry_;
|
| gfx::QuadF shared_geometry_quad_;
|
|
|
| // This block of bindings defines all of the programs used by the compositor
|
|
|