void TransformState::applyAccumulatedOffset() { LayoutSize offset = m_accumulatedOffset; m_accumulatedOffset = LayoutSize(); if (!offset.isZero()) { if (m_accumulatedTransform) { translateTransform(offset); flatten(); } else { translateMappedCoordinates(offset); } } }
void TransformState::move(const LayoutSize& offset, TransformAccumulation accumulate) { if (accumulate == FlattenTransform || !m_accumulatedTransform) m_accumulatedOffset += offset; else { applyAccumulatedOffset(); if (m_accumulatingTransform && m_accumulatedTransform) { // If we're accumulating into an existing transform, apply the translation. translateTransform(offset); // Then flatten if necessary. if (accumulate == FlattenTransform) flatten(); } else // Just move the point and/or quad. translateMappedCoordinates(offset); } m_accumulatingTransform = accumulate == AccumulateTransform; }