Thebes handling of matrices is fast and loose (and buggy?)

NEW
Unassigned

Status

()

8 years ago
8 years ago

People

(Reporter: bzbarsky, Unassigned)

Tracking

Trunk
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

gfxContext::Multiply says:

269     /**
270      * Post-multiplies 'other' onto the current CTM, i.e. this
271      * matrix's transformation will take place before the previously set
272      * transformations.
273      */
274     void Multiply(const gfxMatrix& other);

The implementation is:

293 void
294 gfxContext::Multiply(const gfxMatrix& matrix)
295 {
296     const cairo_matrix_t& mat = reinterpret_cast<const cairo_matrix_t&>(matrix);
297     cairo_transform(mCairo, &mat);
298 }

But the documentation for cairo_transform says:

  Modifies the current transformation matrix (CTM) by applying matrix as an
  additional transformation. The new transformation of user space takes place
  after any existing transformation.

So which is it?  Before or after?
The documentation for gfxContext::Multiply looks wrong to me.
You need to log in before you can comment on or make changes to this bug.