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

Side by Side Diff: cc/direct_renderer.cc

Issue 11618026: Move filters to RenderPassDrawQuad (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « cc/direct_renderer.h ('k') | cc/draw_quad_unittest.cc » ('j') | no next file with comments »
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 #include "cc/direct_renderer.h" 5 #include "cc/direct_renderer.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 m_renderPassTextures.erase(passesToDelete[i]); 150 m_renderPassTextures.erase(passesToDelete[i]);
151 151
152 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) { 152 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) {
153 if (!m_renderPassTextures.contains(renderPassesInDrawOrder[i]->id)) { 153 if (!m_renderPassTextures.contains(renderPassesInDrawOrder[i]->id)) {
154 scoped_ptr<CachedResource> texture = CachedResource::create(m_resource Provider); 154 scoped_ptr<CachedResource> texture = CachedResource::create(m_resource Provider);
155 m_renderPassTextures.set(renderPassesInDrawOrder[i]->id, texture.Pas s()); 155 m_renderPassTextures.set(renderPassesInDrawOrder[i]->id, texture.Pas s());
156 } 156 }
157 } 157 }
158 } 158 }
159 159
160 void DirectRenderer::drawFrame(RenderPassList& renderPassesInDrawOrder, RenderPa ssIdHashMap& renderPassesById) 160 void DirectRenderer::drawFrame(RenderPassList& renderPassesInDrawOrder)
161 { 161 {
162 TRACE_EVENT0("cc", "DirectRenderer::drawFrame"); 162 TRACE_EVENT0("cc", "DirectRenderer::drawFrame");
163 HISTOGRAM_COUNTS("Renderer4.renderPassCount", renderPassesInDrawOrder.size() ); 163 HISTOGRAM_COUNTS("Renderer4.renderPassCount", renderPassesInDrawOrder.size() );
164 164
165 const RenderPass* rootRenderPass = renderPassesInDrawOrder.back(); 165 const RenderPass* rootRenderPass = renderPassesInDrawOrder.last();
166 DCHECK(rootRenderPass); 166 DCHECK(rootRenderPass);
167 167
168 DrawingFrame frame; 168 DrawingFrame frame;
169 frame.renderPassesById = &renderPassesById;
170 frame.rootRenderPass = rootRenderPass; 169 frame.rootRenderPass = rootRenderPass;
171 frame.rootDamageRect = capabilities().usingPartialSwap ? rootRenderPass->dam age_rect : rootRenderPass->output_rect; 170 frame.rootDamageRect = capabilities().usingPartialSwap ? rootRenderPass->dam age_rect : rootRenderPass->output_rect;
172 frame.rootDamageRect.Intersect(gfx::Rect(gfx::Point(), viewportSize())); 171 frame.rootDamageRect.Intersect(gfx::Rect(gfx::Point(), viewportSize()));
173 172
174 beginDrawingFrame(frame); 173 beginDrawingFrame(frame);
175 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) 174 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i)
176 drawRenderPass(frame, renderPassesInDrawOrder[i]); 175 drawRenderPass(frame, renderPassesInDrawOrder[i]);
177 finishDrawingFrame(frame); 176 finishDrawingFrame(frame);
178 177
179 renderPassesInDrawOrder.clear(); 178 renderPassesInDrawOrder.clear();
180 renderPassesById.clear();
181 } 179 }
182 180
183 gfx::RectF DirectRenderer::computeScissorRectForRenderPass(const DrawingFrame& f rame) 181 gfx::RectF DirectRenderer::computeScissorRectForRenderPass(const DrawingFrame& f rame)
184 { 182 {
185 gfx::RectF renderPassScissor = frame.currentRenderPass->output_rect; 183 gfx::RectF renderPassScissor = frame.currentRenderPass->output_rect;
186 184
187 if (frame.rootDamageRect == frame.rootRenderPass->output_rect) 185 if (frame.rootDamageRect == frame.rootRenderPass->output_rect)
188 return renderPassScissor; 186 return renderPassScissor;
189 187
190 gfx::Transform inverseTransform = MathUtil::inverse(frame.currentRenderPass- >transform_to_root_target); 188 gfx::Transform inverseTransform = MathUtil::inverse(frame.currentRenderPass- >transform_to_root_target);
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 return pass->output_rect.size(); 294 return pass->output_rect.size();
297 } 295 }
298 296
299 // static 297 // static
300 GLenum DirectRenderer::renderPassTextureFormat(const RenderPass*) 298 GLenum DirectRenderer::renderPassTextureFormat(const RenderPass*)
301 { 299 {
302 return GL_RGBA; 300 return GL_RGBA;
303 } 301 }
304 302
305 } // namespace cc 303 } // namespace cc
OLDNEW
« no previous file with comments | « cc/direct_renderer.h ('k') | cc/draw_quad_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698