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

Side by Side Diff: cc/direct_renderer.cc

Issue 11192030: cc: Switch to Chromium DCHECKs LOGs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebaseonenne Created 8 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/draw_quad.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 "config.h" 5 #include "config.h"
6 6
7 #include "CCDirectRenderer.h" 7 #include "CCDirectRenderer.h"
8 8
9 #include "CCMathUtil.h" 9 #include "CCMathUtil.h"
10 #include <public/WebTransformationMatrix.h> 10 #include <public/WebTransformationMatrix.h>
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 base::hash_map<CCRenderPass::Id, const CCRenderPass*>::const_iterator it = renderPassesInFrame.find(passIterator->first); 125 base::hash_map<CCRenderPass::Id, const CCRenderPass*>::const_iterator it = renderPassesInFrame.find(passIterator->first);
126 if (it == renderPassesInFrame.end()) { 126 if (it == renderPassesInFrame.end()) {
127 passesToDelete.push_back(passIterator->first); 127 passesToDelete.push_back(passIterator->first);
128 continue; 128 continue;
129 } 129 }
130 130
131 const CCRenderPass* renderPassInFrame = it->second; 131 const CCRenderPass* renderPassInFrame = it->second;
132 const IntSize& requiredSize = renderPassTextureSize(renderPassInFrame); 132 const IntSize& requiredSize = renderPassTextureSize(renderPassInFrame);
133 GC3Denum requiredFormat = renderPassTextureFormat(renderPassInFrame); 133 GC3Denum requiredFormat = renderPassTextureFormat(renderPassInFrame);
134 CachedTexture* texture = passIterator->second; 134 CachedTexture* texture = passIterator->second;
135 ASSERT(texture); 135 DCHECK(texture);
136 136
137 if (texture->id() && (texture->size() != requiredSize || texture->format () != requiredFormat)) 137 if (texture->id() && (texture->size() != requiredSize || texture->format () != requiredFormat))
138 texture->free(); 138 texture->free();
139 } 139 }
140 140
141 // Delete RenderPass textures from the previous frame that will not be used again. 141 // Delete RenderPass textures from the previous frame that will not be used again.
142 for (size_t i = 0; i < passesToDelete.size(); ++i) 142 for (size_t i = 0; i < passesToDelete.size(); ++i)
143 m_renderPassTextures.erase(passesToDelete[i]); 143 m_renderPassTextures.erase(passesToDelete[i]);
144 144
145 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) { 145 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) {
146 if (!m_renderPassTextures.contains(renderPassesInDrawOrder[i]->id())) { 146 if (!m_renderPassTextures.contains(renderPassesInDrawOrder[i]->id())) {
147 scoped_ptr<CachedTexture> texture = CachedTexture::create(m_resourcePr ovider); 147 scoped_ptr<CachedTexture> texture = CachedTexture::create(m_resourcePr ovider);
148 m_renderPassTextures.set(renderPassesInDrawOrder[i]->id(), texture.P ass()); 148 m_renderPassTextures.set(renderPassesInDrawOrder[i]->id(), texture.P ass());
149 } 149 }
150 } 150 }
151 } 151 }
152 152
153 void CCDirectRenderer::drawFrame(const CCRenderPassList& renderPassesInDrawOrder , const CCRenderPassIdHashMap& renderPassesById) 153 void CCDirectRenderer::drawFrame(const CCRenderPassList& renderPassesInDrawOrder , const CCRenderPassIdHashMap& renderPassesById)
154 { 154 {
155 const CCRenderPass* rootRenderPass = renderPassesInDrawOrder.back(); 155 const CCRenderPass* rootRenderPass = renderPassesInDrawOrder.back();
156 ASSERT(rootRenderPass); 156 DCHECK(rootRenderPass);
157 157
158 DrawingFrame frame; 158 DrawingFrame frame;
159 frame.renderPassesById = &renderPassesById; 159 frame.renderPassesById = &renderPassesById;
160 frame.rootRenderPass = rootRenderPass; 160 frame.rootRenderPass = rootRenderPass;
161 frame.rootDamageRect = capabilities().usingPartialSwap ? rootRenderPass->dam ageRect() : rootRenderPass->outputRect(); 161 frame.rootDamageRect = capabilities().usingPartialSwap ? rootRenderPass->dam ageRect() : rootRenderPass->outputRect();
162 frame.rootDamageRect.intersect(IntRect(IntPoint::zero(), viewportSize())); 162 frame.rootDamageRect.intersect(IntRect(IntPoint::zero(), viewportSize()));
163 163
164 beginDrawingFrame(frame); 164 beginDrawingFrame(frame);
165 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) 165 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i)
166 drawRenderPass(frame, renderPassesInDrawOrder[i]); 166 drawRenderPass(frame, renderPassesInDrawOrder[i]);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 frame.currentTexture = 0; 202 frame.currentTexture = 0;
203 203
204 if (renderPass == frame.rootRenderPass) { 204 if (renderPass == frame.rootRenderPass) {
205 bindFramebufferToOutputSurface(frame); 205 bindFramebufferToOutputSurface(frame);
206 initializeMatrices(frame, renderPass->outputRect(), flippedFramebuffer() ); 206 initializeMatrices(frame, renderPass->outputRect(), flippedFramebuffer() );
207 setDrawViewportSize(renderPass->outputRect().size()); 207 setDrawViewportSize(renderPass->outputRect().size());
208 return true; 208 return true;
209 } 209 }
210 210
211 CachedTexture* texture = m_renderPassTextures.get(renderPass->id()); 211 CachedTexture* texture = m_renderPassTextures.get(renderPass->id());
212 ASSERT(texture); 212 DCHECK(texture);
213 if (!texture->id() && !texture->allocate(CCRenderer::ImplPool, renderPassTex tureSize(renderPass), renderPassTextureFormat(renderPass), CCResourceProvider::T extureUsageFramebuffer)) 213 if (!texture->id() && !texture->allocate(CCRenderer::ImplPool, renderPassTex tureSize(renderPass), renderPassTextureFormat(renderPass), CCResourceProvider::T extureUsageFramebuffer))
214 return false; 214 return false;
215 215
216 return bindFramebufferToTexture(frame, texture, renderPass->outputRect()); 216 return bindFramebufferToTexture(frame, texture, renderPass->outputRect());
217 } 217 }
218 218
219 bool CCDirectRenderer::haveCachedResourcesForRenderPassId(CCRenderPass::Id id) c onst 219 bool CCDirectRenderer::haveCachedResourcesForRenderPassId(CCRenderPass::Id id) c onst
220 { 220 {
221 CachedTexture* texture = m_renderPassTextures.get(id); 221 CachedTexture* texture = m_renderPassTextures.get(id);
222 return texture && texture->id() && texture->isComplete(); 222 return texture && texture->id() && texture->isComplete();
223 } 223 }
224 224
225 // static 225 // static
226 IntSize CCDirectRenderer::renderPassTextureSize(const CCRenderPass* pass) 226 IntSize CCDirectRenderer::renderPassTextureSize(const CCRenderPass* pass)
227 { 227 {
228 return pass->outputRect().size(); 228 return pass->outputRect().size();
229 } 229 }
230 230
231 // static 231 // static
232 GC3Denum CCDirectRenderer::renderPassTextureFormat(const CCRenderPass*) 232 GC3Denum CCDirectRenderer::renderPassTextureFormat(const CCRenderPass*)
233 { 233 {
234 return GraphicsContext3D::RGBA; 234 return GraphicsContext3D::RGBA;
235 } 235 }
236 236
237 } 237 }
OLDNEW
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/draw_quad.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698