Open Bug 580012 Opened 14 years ago Updated 2 years ago

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

Categories

(Core :: Graphics, defect)

x86
macOS
defect

Tracking

()

People

(Reporter: bzbarsky, Unassigned)

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.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.