| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/render_surface_impl.h" | 5 #include "cc/render_surface_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 pass->setFilter(m_owningLayer->filter()); | 190 pass->setFilter(m_owningLayer->filter()); |
| 191 pass->setBackgroundFilters(m_owningLayer->backgroundFilters()); | 191 pass->setBackgroundFilters(m_owningLayer->backgroundFilters()); |
| 192 passSink.appendRenderPass(pass.Pass()); | 192 passSink.appendRenderPass(pass.Pass()); |
| 193 } | 193 } |
| 194 | 194 |
| 195 void RenderSurfaceImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQ
uadsData, bool forReplica, RenderPass::Id renderPassId) | 195 void RenderSurfaceImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQ
uadsData, bool forReplica, RenderPass::Id renderPassId) |
| 196 { | 196 { |
| 197 DCHECK(!forReplica || m_owningLayer->hasReplica()); | 197 DCHECK(!forReplica || m_owningLayer->hasReplica()); |
| 198 | 198 |
| 199 gfx::Rect clippedRectInTarget = computeClippedRectInTarget(m_owningLayer); | 199 gfx::Rect clippedRectInTarget = computeClippedRectInTarget(m_owningLayer); |
| 200 bool isOpaque = false; | |
| 201 const WebTransformationMatrix& drawTransform = forReplica ? m_replicaDrawTra
nsform : m_drawTransform; | 200 const WebTransformationMatrix& drawTransform = forReplica ? m_replicaDrawTra
nsform : m_drawTransform; |
| 202 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(SharedQuadSta
te::create(drawTransform, m_contentRect, clippedRectInTarget, m_drawOpacity, isO
paque).Pass()); | 201 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(SharedQuadSta
te::create(drawTransform, m_contentRect, clippedRectInTarget, m_drawOpacity).Pas
s()); |
| 203 | 202 |
| 204 if (m_owningLayer->showDebugBorders()) { | 203 if (m_owningLayer->showDebugBorders()) { |
| 205 SkColor color = forReplica ? DebugColors::SurfaceReplicaBorderColor() :
DebugColors::SurfaceBorderColor(); | 204 SkColor color = forReplica ? DebugColors::SurfaceReplicaBorderColor() :
DebugColors::SurfaceBorderColor(); |
| 206 float width = forReplica ? DebugColors::SurfaceReplicaBorderWidth(m_owni
ngLayer->layerTreeHostImpl()) : DebugColors::SurfaceBorderWidth(m_owningLayer->l
ayerTreeHostImpl()); | 205 float width = forReplica ? DebugColors::SurfaceReplicaBorderWidth(m_owni
ngLayer->layerTreeHostImpl()) : DebugColors::SurfaceBorderWidth(m_owningLayer->l
ayerTreeHostImpl()); |
| 207 quadSink.append(DebugBorderDrawQuad::create(sharedQuadState, contentRect
(), color, width).PassAs<DrawQuad>(), appendQuadsData); | 206 quadSink.append(DebugBorderDrawQuad::create(sharedQuadState, contentRect
(), color, width).PassAs<DrawQuad>(), appendQuadsData); |
| 208 } | 207 } |
| 209 | 208 |
| 210 // FIXME: By using the same RenderSurfaceImpl for both the content and its r
eflection, | 209 // FIXME: By using the same RenderSurfaceImpl for both the content and its r
eflection, |
| 211 // it's currently not possible to apply a separate mask to the reflection la
yer | 210 // it's currently not possible to apply a separate mask to the reflection la
yer |
| 212 // or correctly handle opacity in reflections (opacity must be applied after
drawing | 211 // or correctly handle opacity in reflections (opacity must be applied after
drawing |
| (...skipping 18 matching lines...) Expand all Loading... |
| 231 maskTexCoordScaleX = contentRect().width() / maskLayer->contentsScaleX()
/ maskLayer->bounds().width(); | 230 maskTexCoordScaleX = contentRect().width() / maskLayer->contentsScaleX()
/ maskLayer->bounds().width(); |
| 232 maskTexCoordScaleY = contentRect().height() / maskLayer->contentsScaleY(
) / maskLayer->bounds().height(); | 231 maskTexCoordScaleY = contentRect().height() / maskLayer->contentsScaleY(
) / maskLayer->bounds().height(); |
| 233 maskTexCoordOffsetX = static_cast<float>(contentRect().x()) / contentRec
t().width() * maskTexCoordScaleX; | 232 maskTexCoordOffsetX = static_cast<float>(contentRect().x()) / contentRec
t().width() * maskTexCoordScaleX; |
| 234 maskTexCoordOffsetY = static_cast<float>(contentRect().y()) / contentRec
t().height() * maskTexCoordScaleY; | 233 maskTexCoordOffsetY = static_cast<float>(contentRect().y()) / contentRec
t().height() * maskTexCoordScaleY; |
| 235 } | 234 } |
| 236 | 235 |
| 237 ResourceProvider::ResourceId maskResourceId = maskLayer ? maskLayer->content
sResourceId() : 0; | 236 ResourceProvider::ResourceId maskResourceId = maskLayer ? maskLayer->content
sResourceId() : 0; |
| 238 gfx::Rect contentsChangedSinceLastFrame = contentsChanged() ? m_contentRect
: gfx::Rect(); | 237 gfx::Rect contentsChangedSinceLastFrame = contentsChanged() ? m_contentRect
: gfx::Rect(); |
| 239 | 238 |
| 240 quadSink.append(RenderPassDrawQuad::create(sharedQuadState, contentRect(), r
enderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame, | 239 quadSink.append(RenderPassDrawQuad::create(sharedQuadState, contentRect(), r
enderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame, |
| 241 maskTexCoordScaleX, maskTexCoor
dScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY).PassAs<DrawQuad>(), appendQua
dsData); | 240 maskTexCoordScaleX, maskTexCoordS
caleY, maskTexCoordOffsetX, maskTexCoordOffsetY).PassAs<DrawQuad>(), appendQuads
Data); |
| 242 } | 241 } |
| 243 | 242 |
| 244 } // namespace cc | 243 } // namespace cc |
| OLD | NEW |