Example #1
0
void TransformState::applyAccumulatedOffset() {
  LayoutSize offset = m_accumulatedOffset;
  m_accumulatedOffset = LayoutSize();
  if (!offset.isZero()) {
    if (m_accumulatedTransform) {
      translateTransform(offset);
      flatten();
    } else {
      translateMappedCoordinates(offset);
    }
  }
}
Example #2
0
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;
}