| 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 "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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.back(); |
| 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 Loading... |
| 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 |
| OLD | NEW |