Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(365)

Side by Side Diff: cc/output/direct_renderer.h

Issue 15579002: Implement transform/clip support for Android WebView. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address joth's code review Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | cc/output/direct_renderer.cc » ('j') | cc/trees/layer_tree_host_common.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_OUTPUT_DIRECT_RENDERER_H_ 5 #ifndef CC_OUTPUT_DIRECT_RENDERER_H_
6 #define CC_OUTPUT_DIRECT_RENDERER_H_ 6 #define CC_OUTPUT_DIRECT_RENDERER_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "cc/base/cc_export.h" 10 #include "cc/base/cc_export.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 bool is_complete_; 72 bool is_complete_;
73 73
74 DISALLOW_COPY_AND_ASSIGN(CachedResource); 74 DISALLOW_COPY_AND_ASSIGN(CachedResource);
75 }; 75 };
76 76
77 static gfx::RectF QuadVertexRect(); 77 static gfx::RectF QuadVertexRect();
78 static void QuadRectTransform(gfx::Transform* quad_rect_transform, 78 static void QuadRectTransform(gfx::Transform* quad_rect_transform,
79 const gfx::Transform& quad_transform, 79 const gfx::Transform& quad_transform,
80 const gfx::RectF& quad_rect); 80 const gfx::RectF& quad_rect);
81 static void InitializeMatrices(DrawingFrame* frame, 81 static void InitializeMatrices(DrawingFrame* frame,
82 gfx::Vector2d offset,
82 gfx::Rect draw_rect, 83 gfx::Rect draw_rect,
83 bool flip_y); 84 bool flip_y);
84 static gfx::Rect MoveScissorToWindowSpace(const DrawingFrame* frame, 85 gfx::Rect MoveScissorToWindowSpace(const DrawingFrame* frame,
85 const gfx::RectF& scissor_rect); 86 const gfx::RectF& scissor_rect);
86 static gfx::RectF ComputeScissorRectForRenderPass(const DrawingFrame* frame); 87 static gfx::RectF ComputeScissorRectForRenderPass(const DrawingFrame* frame);
87 void SetScissorStateForQuad(const DrawingFrame* frame, const DrawQuad& quad); 88 void SetScissorStateForQuad(const DrawingFrame* frame, const DrawQuad& quad);
88 void SetScissorStateForQuadWithRenderPassScissor( 89 void SetScissorStateForQuadWithRenderPassScissor(
89 const DrawingFrame* frame, 90 const DrawingFrame* frame,
90 const DrawQuad& quad, 91 const DrawQuad& quad,
91 const gfx::RectF& render_pass_scissor, 92 const gfx::RectF& render_pass_scissor,
92 bool* should_skip_quad); 93 bool* should_skip_quad);
93 94
94 static gfx::Size RenderPassTextureSize(const RenderPass* render_pass); 95 static gfx::Size RenderPassTextureSize(const RenderPass* render_pass);
95 static GLenum RenderPassTextureFormat(const RenderPass* render_pass); 96 static GLenum RenderPassTextureFormat(const RenderPass* render_pass);
96 97
97 void DrawRenderPass(DrawingFrame* frame, const RenderPass* render_pass); 98 void DrawRenderPass(DrawingFrame* frame, const RenderPass* render_pass);
98 bool UseRenderPass(DrawingFrame* frame, const RenderPass* render_pass); 99 bool UseRenderPass(DrawingFrame* frame, const RenderPass* render_pass);
99 100
100 virtual void BindFramebufferToOutputSurface(DrawingFrame* frame) = 0; 101 virtual void BindFramebufferToOutputSurface(DrawingFrame* frame) = 0;
101 virtual bool BindFramebufferToTexture(DrawingFrame* frame, 102 virtual bool BindFramebufferToTexture(DrawingFrame* frame,
102 const ScopedResource* resource, 103 const ScopedResource* resource,
103 gfx::Rect framebuffer_rect) = 0; 104 gfx::Rect framebuffer_rect) = 0;
104 virtual void SetDrawViewportSize(gfx::Size viewport_size) = 0; 105 virtual void SetDrawViewport(gfx::Rect viewport) = 0;
105 virtual void SetScissorTestRect(gfx::Rect scissor_rect) = 0; 106 virtual void SetScissorTestRect(gfx::Rect scissor_rect) = 0;
106 virtual void ClearFramebuffer(DrawingFrame* frame) = 0; 107 virtual void ClearFramebuffer(DrawingFrame* frame) = 0;
107 virtual void DoDrawQuad(DrawingFrame* frame, const DrawQuad* quad) = 0; 108 virtual void DoDrawQuad(DrawingFrame* frame, const DrawQuad* quad) = 0;
108 virtual void BeginDrawingFrame(DrawingFrame* frame) = 0; 109 virtual void BeginDrawingFrame(DrawingFrame* frame) = 0;
109 virtual void FinishDrawingFrame(DrawingFrame* frame) = 0; 110 virtual void FinishDrawingFrame(DrawingFrame* frame) = 0;
110 virtual void FinishDrawingQuadList(); 111 virtual void FinishDrawingQuadList();
111 virtual bool FlippedFramebuffer() const = 0; 112 virtual bool FlippedFramebuffer() const = 0;
112 virtual void EnsureScissorTestEnabled() = 0; 113 virtual void EnsureScissorTestEnabled() = 0;
113 virtual void EnsureScissorTestDisabled() = 0; 114 virtual void EnsureScissorTestDisabled() = 0;
114 115
115 typedef base::Callback<void(scoped_ptr<SkBitmap>)> 116 typedef base::Callback<void(scoped_ptr<SkBitmap>)>
116 CopyRenderPassCallback; 117 CopyRenderPassCallback;
117 virtual void CopyCurrentRenderPassToBitmap( 118 virtual void CopyCurrentRenderPassToBitmap(
118 DrawingFrame* frame, 119 DrawingFrame* frame,
119 const CopyRenderPassCallback& callback) = 0; 120 const CopyRenderPassCallback& callback) = 0;
120 121
121 ScopedPtrHashMap<RenderPass::Id, CachedResource> render_pass_textures_; 122 ScopedPtrHashMap<RenderPass::Id, CachedResource> render_pass_textures_;
122 ResourceProvider* resource_provider_; 123 ResourceProvider* resource_provider_;
123 124
124 private: 125 private:
125 gfx::Vector2d enlarge_pass_texture_amount_; 126 gfx::Vector2d enlarge_pass_texture_amount_;
126 127
127 DISALLOW_COPY_AND_ASSIGN(DirectRenderer); 128 DISALLOW_COPY_AND_ASSIGN(DirectRenderer);
128 }; 129 };
129 130
130 } // namespace cc 131 } // namespace cc
131 132
132 #endif // CC_OUTPUT_DIRECT_RENDERER_H_ 133 #endif // CC_OUTPUT_DIRECT_RENDERER_H_
OLDNEW
« no previous file with comments | « no previous file | cc/output/direct_renderer.cc » ('j') | cc/trees/layer_tree_host_common.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698