| 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "cc/direct_renderer.h" | 7 #include "cc/direct_renderer.h" |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 if (!useRenderPass(frame, renderPass)) | 174 if (!useRenderPass(frame, renderPass)) |
| 175 return; | 175 return; |
| 176 | 176 |
| 177 frame.scissorRectInRenderPassSpace = frame.currentRenderPass->outputRect(); | 177 frame.scissorRectInRenderPassSpace = frame.currentRenderPass->outputRect(); |
| 178 if (frame.rootDamageRect != frame.rootRenderPass->outputRect()) { | 178 if (frame.rootDamageRect != frame.rootRenderPass->outputRect()) { |
| 179 WebTransformationMatrix inverseTransformToRoot = frame.currentRenderPass
->transformToRootTarget().inverse(); | 179 WebTransformationMatrix inverseTransformToRoot = frame.currentRenderPass
->transformToRootTarget().inverse(); |
| 180 gfx::RectF damageRectInRenderPassSpace = MathUtil::projectClippedRect(in
verseTransformToRoot, frame.rootDamageRect); | 180 gfx::RectF damageRectInRenderPassSpace = MathUtil::projectClippedRect(in
verseTransformToRoot, frame.rootDamageRect); |
| 181 frame.scissorRectInRenderPassSpace.Intersect(damageRectInRenderPassSpace
); | 181 frame.scissorRectInRenderPassSpace.Intersect(damageRectInRenderPassSpace
); |
| 182 } | 182 } |
| 183 | 183 |
| 184 enableScissorTestRect(moveScissorToWindowSpace(frame, frame.scissorRectInRen
derPassSpace)); | 184 setScissorTestRect(moveScissorToWindowSpace(frame, frame.scissorRectInRender
PassSpace)); |
| 185 clearFramebuffer(frame); | 185 clearFramebuffer(frame); |
| 186 | 186 |
| 187 const QuadList& quadList = renderPass->quadList(); | 187 const QuadList& quadList = renderPass->quadList(); |
| 188 for (QuadList::constBackToFrontIterator it = quadList.backToFrontBegin(); it
!= quadList.backToFrontEnd(); ++it) { | 188 for (QuadList::constBackToFrontIterator it = quadList.backToFrontBegin(); it
!= quadList.backToFrontEnd(); ++it) { |
| 189 gfx::RectF quadScissorRect = gfx::IntersectRects(frame.scissorRectInRend
erPassSpace, (*it)->clippedRectInTarget()); | 189 gfx::RectF quadScissorRect = gfx::IntersectRects(frame.scissorRectInRend
erPassSpace, (*it)->clippedRectInTarget()); |
| 190 if (!quadScissorRect.IsEmpty()) { | 190 if (!quadScissorRect.IsEmpty()) { |
| 191 enableScissorTestRect(moveScissorToWindowSpace(frame, quadScissorRec
t)); | 191 setScissorTestRect(moveScissorToWindowSpace(frame, quadScissorRect))
; |
| 192 drawQuad(frame, *it); | 192 drawQuad(frame, *it); |
| 193 } | 193 } |
| 194 } | 194 } |
| 195 | 195 |
| 196 CachedTexture* texture = m_renderPassTextures.get(renderPass->id()); | 196 CachedTexture* texture = m_renderPassTextures.get(renderPass->id()); |
| 197 if (texture) | 197 if (texture) |
| 198 texture->setIsComplete(!renderPass->hasOcclusionFromOutsideTargetSurface
()); | 198 texture->setIsComplete(!renderPass->hasOcclusionFromOutsideTargetSurface
()); |
| 199 } | 199 } |
| 200 | 200 |
| 201 bool DirectRenderer::useRenderPass(DrawingFrame& frame, const RenderPass* render
Pass) | 201 bool DirectRenderer::useRenderPass(DrawingFrame& frame, const RenderPass* render
Pass) |
| (...skipping 28 matching lines...) Expand all Loading... |
| 230 return pass->outputRect().size(); | 230 return pass->outputRect().size(); |
| 231 } | 231 } |
| 232 | 232 |
| 233 // static | 233 // static |
| 234 GLenum DirectRenderer::renderPassTextureFormat(const RenderPass*) | 234 GLenum DirectRenderer::renderPassTextureFormat(const RenderPass*) |
| 235 { | 235 { |
| 236 return GL_RGBA; | 236 return GL_RGBA; |
| 237 } | 237 } |
| 238 | 238 |
| 239 } // namespace cc | 239 } // namespace cc |
| OLD | NEW |