Lines Matching refs:frame
136 void DamageAccumulator::applyMatrix4Transform(DirtyStack* frame) { in applyMatrix4Transform() argument
137 mapRect(frame->matrix4, frame->pendingDirty, &mHead->pendingDirty); in applyMatrix4Transform()
176 static DirtyStack* findParentRenderNode(DirtyStack* frame) { in findParentRenderNode() argument
177 while (frame->prev != frame) { in findParentRenderNode()
178 frame = frame->prev; in findParentRenderNode()
179 if (frame->type == TransformRenderNode) { in findParentRenderNode()
180 return frame; in findParentRenderNode()
186 static DirtyStack* findProjectionReceiver(DirtyStack* frame) { in findProjectionReceiver() argument
187 if (frame) { in findProjectionReceiver()
188 while (frame->prev != frame) { in findProjectionReceiver()
189 frame = frame->prev; in findProjectionReceiver()
190 if (frame->type == TransformRenderNode && frame->renderNode->hasProjectionReceiver()) { in findProjectionReceiver()
191 return frame; in findProjectionReceiver()
198 static void applyTransforms(DirtyStack* frame, DirtyStack* end) { in applyTransforms() argument
199 SkRect* rect = &frame->pendingDirty; in applyTransforms()
200 while (frame != end) { in applyTransforms()
201 if (frame->type == TransformRenderNode) { in applyTransforms()
202 mapRect(frame->renderNode->properties(), *rect, rect); in applyTransforms()
204 mapRect(frame->matrix4, *rect, rect); in applyTransforms()
206 frame = frame->prev; in applyTransforms()
210 void DamageAccumulator::applyRenderNodeTransform(DirtyStack* frame) { in applyRenderNodeTransform() argument
211 if (frame->pendingDirty.isEmpty()) { in applyRenderNodeTransform()
215 const RenderProperties& props = frame->renderNode->properties(); in applyRenderNodeTransform()
221 if (props.getClipDamageToBounds() && !frame->pendingDirty.isEmpty()) { in applyRenderNodeTransform()
222 if (!frame->pendingDirty.intersect(SkRect::MakeIWH(props.getWidth(), props.getHeight()))) { in applyRenderNodeTransform()
223 frame->pendingDirty.setEmpty(); in applyRenderNodeTransform()
228 mapRect(props, frame->pendingDirty, &mHead->pendingDirty); in applyRenderNodeTransform()
231 if (props.getProjectBackwards() && !frame->pendingDirty.isEmpty()) { in applyRenderNodeTransform()
233 DirtyStack* parentNode = findParentRenderNode(frame); in applyRenderNodeTransform()
237 applyTransforms(frame, projectionReceiver); in applyRenderNodeTransform()
238 projectionReceiver->pendingDirty.join(frame->pendingDirty); in applyRenderNodeTransform()
241 frame->pendingDirty.setEmpty(); in applyRenderNodeTransform()
263 DirtyStack* frame = mHead; in findNearestStretchEffect() local
264 while (frame->prev != frame) { in findNearestStretchEffect()
265 if (frame->type == TransformRenderNode) { in findNearestStretchEffect()
266 const auto& renderNode = frame->renderNode; in findNearestStretchEffect()
274 computeTransformImpl(frame, &stretchMatrix); in findNearestStretchEffect()
286 frame = frame->prev; in findNearestStretchEffect()