зеркало из https://github.com/mozilla/pjs.git
Bug 474886 - Allow rank 0 matrices when setting the font matrix. r=vlad p=jrmuizel
cairo_scaled_font_init() allows rank 0 matrics so cairo_set_font_matrix should too. This keeps us from accidentally breaking our cairo context and causing things to draw wrong.
This commit is contained in:
Родитель
feab524744
Коммит
bcb702f175
|
@ -1271,8 +1271,13 @@ _cairo_gstate_set_font_matrix (cairo_gstate_t *gstate,
|
||||||
if (memcmp (matrix, &gstate->font_matrix, sizeof (cairo_matrix_t)) == 0)
|
if (memcmp (matrix, &gstate->font_matrix, sizeof (cairo_matrix_t)) == 0)
|
||||||
return CAIRO_STATUS_SUCCESS;
|
return CAIRO_STATUS_SUCCESS;
|
||||||
|
|
||||||
if (! _cairo_matrix_is_invertible (matrix))
|
if (! _cairo_matrix_is_invertible (matrix)) {
|
||||||
|
/* rank 0 matrices are ok even though they are not invertible */
|
||||||
|
if (!(matrix->xx == 0. && matrix->xy == 0. &&
|
||||||
|
matrix->yx == 0. && matrix->yy == 0.)) {
|
||||||
return _cairo_error (CAIRO_STATUS_INVALID_MATRIX);
|
return _cairo_error (CAIRO_STATUS_INVALID_MATRIX);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_cairo_gstate_unset_scaled_font (gstate);
|
_cairo_gstate_unset_scaled_font (gstate);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче