OLD | NEW |
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 "cc/math_util.h" | 10 #include "cc/math_util.h" |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 m_renderPassTextures.erase(passesToDelete[i]); | 142 m_renderPassTextures.erase(passesToDelete[i]); |
143 | 143 |
144 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) { | 144 for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) { |
145 if (!m_renderPassTextures.contains(renderPassesInDrawOrder[i]->id)) { | 145 if (!m_renderPassTextures.contains(renderPassesInDrawOrder[i]->id)) { |
146 scoped_ptr<CachedResource> texture = CachedResource::create(m_resource
Provider); | 146 scoped_ptr<CachedResource> texture = CachedResource::create(m_resource
Provider); |
147 m_renderPassTextures.set(renderPassesInDrawOrder[i]->id, texture.Pas
s()); | 147 m_renderPassTextures.set(renderPassesInDrawOrder[i]->id, texture.Pas
s()); |
148 } | 148 } |
149 } | 149 } |
150 } | 150 } |
151 | 151 |
152 void DirectRenderer::drawFrame(const RenderPassList& renderPassesInDrawOrder, co
nst RenderPassIdHashMap& renderPassesById) | 152 void DirectRenderer::drawFrame(RenderPassList& renderPassesInDrawOrder, RenderPa
ssIdHashMap& renderPassesById) |
153 { | 153 { |
154 TRACE_EVENT0("cc", "DirectRenderer::drawFrame"); | 154 TRACE_EVENT0("cc", "DirectRenderer::drawFrame"); |
155 const RenderPass* rootRenderPass = renderPassesInDrawOrder.back(); | 155 const RenderPass* rootRenderPass = renderPassesInDrawOrder.back(); |
156 DCHECK(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
age_rect : rootRenderPass->output_rect; | 161 frame.rootDamageRect = capabilities().usingPartialSwap ? rootRenderPass->dam
age_rect : rootRenderPass->output_rect; |
162 frame.rootDamageRect.Intersect(gfx::Rect(gfx::Point(), viewportSize())); | 162 frame.rootDamageRect.Intersect(gfx::Rect(gfx::Point(), 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]); |
167 finishDrawingFrame(frame); | 167 finishDrawingFrame(frame); |
| 168 |
| 169 renderPassesInDrawOrder.clear(); |
| 170 renderPassesById.clear(); |
168 } | 171 } |
169 | 172 |
170 gfx::RectF DirectRenderer::computeScissorRectForRenderPass(const DrawingFrame& f
rame) | 173 gfx::RectF DirectRenderer::computeScissorRectForRenderPass(const DrawingFrame& f
rame) |
171 { | 174 { |
172 gfx::RectF renderPassScissor = frame.currentRenderPass->output_rect; | 175 gfx::RectF renderPassScissor = frame.currentRenderPass->output_rect; |
173 | 176 |
174 if (frame.rootDamageRect == frame.rootRenderPass->output_rect) | 177 if (frame.rootDamageRect == frame.rootRenderPass->output_rect) |
175 return renderPassScissor; | 178 return renderPassScissor; |
176 | 179 |
177 gfx::Transform inverseTransform = MathUtil::inverse(frame.currentRenderPass-
>transform_to_root_target); | 180 gfx::Transform inverseTransform = MathUtil::inverse(frame.currentRenderPass-
>transform_to_root_target); |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 return pass->output_rect.size(); | 282 return pass->output_rect.size(); |
280 } | 283 } |
281 | 284 |
282 // static | 285 // static |
283 GLenum DirectRenderer::renderPassTextureFormat(const RenderPass*) | 286 GLenum DirectRenderer::renderPassTextureFormat(const RenderPass*) |
284 { | 287 { |
285 return GL_RGBA; | 288 return GL_RGBA; |
286 } | 289 } |
287 | 290 |
288 } // namespace cc | 291 } // namespace cc |
OLD | NEW |