Lines Matching refs:pgs

36 #define trace_ctm(pgs) trace_matrix_fixed(&(pgs)->ctm)  argument
44 # define print_inverse(pgs)\ argument
46 dlprintf("[x]Inverting:\n"), trace_ctm(pgs), trace_matrix(&pgs->ctm_inverse)
48 # define print_inverse(pgs) DO_NOTHING argument
50 #define ensure_inverse_valid(pgs)\ argument
51 if ( !pgs->ctm_inverse_valid )\
52 { int code = ctm_set_inverse(pgs);\
57 ctm_set_inverse(gs_state * pgs) in ctm_set_inverse() argument
59 int code = gs_matrix_invert(&ctm_only(pgs), &pgs->ctm_inverse); in ctm_set_inverse()
61 print_inverse(pgs); in ctm_set_inverse()
64 pgs->ctm_inverse_valid = true; in ctm_set_inverse()
91 #define update_ctm(pgs, xt, yt)\ argument
92 (pgs->ctm_inverse_valid = false,\
93 pgs->char_tm_valid = false,\
94 update_matrix_fixed(pgs->ctm, xt, yt))
99 gs_initmatrix(gs_state * pgs) in gs_initmatrix() argument
103 gs_defaultmatrix(pgs, &imat); in gs_initmatrix()
104 update_ctm(pgs, imat.tx, imat.ty); in gs_initmatrix()
105 set_ctm_only(pgs, imat); in gs_initmatrix()
108 dlprintf("[x]initmatrix:\n"), trace_ctm(pgs); in gs_initmatrix()
114 gs_defaultmatrix(const gs_state * pgs, gs_matrix * pmat) in gs_defaultmatrix() argument
118 if (pgs->ctm_default_set) { /* set after Install */ in gs_defaultmatrix()
119 *pmat = pgs->ctm_default; in gs_defaultmatrix()
122 dev = gs_currentdevice_inline(pgs); in gs_defaultmatrix()
133 gs_setdefaultmatrix(gs_state * pgs, const gs_matrix * pmat) in gs_setdefaultmatrix() argument
136 pgs->ctm_default_set = false; in gs_setdefaultmatrix()
138 pgs->ctm_default = *pmat; in gs_setdefaultmatrix()
139 pgs->ctm_default_set = true; in gs_setdefaultmatrix()
145 gs_currentmatrix(const gs_state * pgs, gs_matrix * pmat) in gs_currentmatrix() argument
147 *pmat = ctm_only(pgs); in gs_currentmatrix()
154 gs_setcharmatrix(gs_state * pgs, const gs_matrix * pmat) in gs_setcharmatrix() argument
157 int code = gs_matrix_multiply(pmat, &ctm_only(pgs), &cmat); in gs_setcharmatrix()
161 update_matrix_fixed(pgs->char_tm, cmat.tx, cmat.ty); in gs_setcharmatrix()
162 char_tm_only(pgs) = cmat; in gs_setcharmatrix()
165 dlprintf("[x]setting char_tm:"), trace_matrix_fixed(&pgs->char_tm); in gs_setcharmatrix()
167 pgs->char_tm_valid = true; in gs_setcharmatrix()
175 gs_currentcharmatrix(gs_state * pgs, gs_matrix * ptm, bool force) in gs_currentcharmatrix() argument
177 if (!pgs->char_tm_valid) { in gs_currentcharmatrix()
182 code = gs_setcharmatrix(pgs, &pgs->font->FontMatrix); in gs_currentcharmatrix()
187 *ptm = char_tm_only(pgs); in gs_currentcharmatrix()
192 gs_setmatrix(gs_state * pgs, const gs_matrix * pmat) in gs_setmatrix() argument
194 update_ctm(pgs, pmat->tx, pmat->ty); in gs_setmatrix()
195 set_ctm_only(pgs, *pmat); in gs_setmatrix()
198 dlprintf("[x]setmatrix:\n"), trace_ctm(pgs); in gs_setmatrix()
216 gs_settocharmatrix(gs_state * pgs) in gs_settocharmatrix() argument
218 if (pgs->char_tm_valid) { in gs_settocharmatrix()
219 pgs->ctm = pgs->char_tm; in gs_settocharmatrix()
220 pgs->ctm_inverse_valid = false; in gs_settocharmatrix()
227 gs_translate(gs_state * pgs, floatp dx, floatp dy) in gs_translate() argument
232 if ((code = gs_distance_transform(dx, dy, &ctm_only(pgs), &pt)) < 0) in gs_translate()
234 pt.x = (float)pt.x + pgs->ctm.tx; in gs_translate()
235 pt.y = (float)pt.y + pgs->ctm.ty; in gs_translate()
236 update_ctm(pgs, pt.x, pt.y); in gs_translate()
241 trace_ctm(pgs); in gs_translate()
247 gs_translate_untransformed(gs_state * pgs, floatp dx, floatp dy) in gs_translate_untransformed() argument
252 pt.x = (float)dx + pgs->ctm.tx; in gs_translate_untransformed()
253 pt.y = (float)dy + pgs->ctm.ty; in gs_translate_untransformed()
254 update_ctm(pgs, pt.x, pt.y); in gs_translate_untransformed()
259 trace_ctm(pgs); in gs_translate_untransformed()
265 gs_scale(gs_state * pgs, floatp sx, floatp sy) in gs_scale() argument
267 pgs->ctm.xx *= sx; in gs_scale()
268 pgs->ctm.xy *= sx; in gs_scale()
269 pgs->ctm.yx *= sy; in gs_scale()
270 pgs->ctm.yy *= sy; in gs_scale()
271 pgs->ctm_inverse_valid = false, pgs->char_tm_valid = false; in gs_scale()
274 dlprintf2("[x]scale: %f %f\n", sx, sy), trace_ctm(pgs); in gs_scale()
280 gs_rotate(gs_state * pgs, floatp ang) in gs_rotate() argument
282 int code = gs_matrix_rotate(&ctm_only(pgs), ang, in gs_rotate()
283 &ctm_only_writable(pgs)); in gs_rotate()
285 pgs->ctm_inverse_valid = false, pgs->char_tm_valid = false; in gs_rotate()
288 dlprintf1("[x]rotate: %f\n", ang), trace_ctm(pgs); in gs_rotate()
294 gs_concat(gs_state * pgs, const gs_matrix * pmat) in gs_concat() argument
297 int code = gs_matrix_multiply(pmat, &ctm_only(pgs), &cmat); in gs_concat()
301 update_ctm(pgs, cmat.tx, cmat.ty); in gs_concat()
302 set_ctm_only(pgs, cmat); in gs_concat()
305 dlprintf("[x]concat:\n"), trace_matrix(pmat), trace_ctm(pgs); in gs_concat()
315 gs_transform(gs_state * pgs, floatp x, floatp y, gs_point * pt) in gs_transform() argument
317 return gs_point_transform(x, y, &ctm_only(pgs), pt); in gs_transform()
321 gs_dtransform(gs_state * pgs, floatp dx, floatp dy, gs_point * pt) in gs_dtransform() argument
323 return gs_distance_transform(dx, dy, &ctm_only(pgs), pt); in gs_dtransform()
327 gs_itransform(gs_state * pgs, floatp x, floatp y, gs_point * pt) in gs_itransform() argument
330 if (!is_skewed(&pgs->ctm)) { in gs_itransform()
331 return gs_point_transform_inverse(x, y, &ctm_only(pgs), pt); in gs_itransform()
333 ensure_inverse_valid(pgs); in gs_itransform()
334 return gs_point_transform(x, y, &pgs->ctm_inverse, pt); in gs_itransform()
339 gs_idtransform(gs_state * pgs, floatp dx, floatp dy, gs_point * pt) in gs_idtransform() argument
342 if (!is_skewed(&pgs->ctm)) { in gs_idtransform()
344 &ctm_only(pgs), pt); in gs_idtransform()
346 ensure_inverse_valid(pgs); in gs_idtransform()
347 return gs_distance_transform(dx, dy, &pgs->ctm_inverse, pt); in gs_idtransform()
363 gx_translate_to_fixed(register gs_state * pgs, fixed px, fixed py) in gx_translate_to_fixed() argument
366 double fdx = fpx - pgs->ctm.tx; in gx_translate_to_fixed()
368 double fdy = fpy - pgs->ctm.ty; in gx_translate_to_fixed()
372 if (pgs->ctm.txy_fixed_valid) { in gx_translate_to_fixed()
375 code = gx_path_translate(pgs->path, dx, dy); in gx_translate_to_fixed()
378 if (pgs->char_tm_valid && pgs->char_tm.txy_fixed_valid) in gx_translate_to_fixed()
379 pgs->char_tm.tx_fixed += dx, in gx_translate_to_fixed()
380 pgs->char_tm.ty_fixed += dy; in gx_translate_to_fixed()
382 if (!gx_path_is_null(pgs->path)) in gx_translate_to_fixed()
385 pgs->ctm.tx = fpx; in gx_translate_to_fixed()
386 pgs->ctm.tx_fixed = px; in gx_translate_to_fixed()
387 pgs->ctm.ty = fpy; in gx_translate_to_fixed()
388 pgs->ctm.ty_fixed = py; in gx_translate_to_fixed()
389 pgs->ctm.txy_fixed_valid = true; in gx_translate_to_fixed()
390 pgs->ctm_inverse_valid = false; in gx_translate_to_fixed()
391 if (pgs->char_tm_valid) { /* Update char_tm now, leaving it valid. */ in gx_translate_to_fixed()
392 pgs->char_tm.tx += fdx; in gx_translate_to_fixed()
393 pgs->char_tm.ty += fdy; in gx_translate_to_fixed()
399 trace_ctm(pgs); in gx_translate_to_fixed()
401 trace_matrix_fixed(&pgs->char_tm); in gx_translate_to_fixed()
404 gx_setcurrentpoint(pgs, fixed2float(pgs->ctm.tx_fixed), fixed2float(pgs->ctm.ty_fixed)); in gx_translate_to_fixed()
405 pgs->current_point_valid = true; in gx_translate_to_fixed()
411 gx_scale_char_matrix(register gs_state * pgs, int sx, int sy) in gx_scale_char_matrix() argument
415 { pgs->ctm.vx *= s;\ in gx_scale_char_matrix()
416 pgs->ctm.vy *= s;\ in gx_scale_char_matrix()
417 pgs->ctm_inverse_valid = false;\ in gx_scale_char_matrix()
418 if ( pgs->char_tm_valid )\ in gx_scale_char_matrix()
419 { pgs->char_tm.vx *= s;\ in gx_scale_char_matrix()
420 pgs->char_tm.vy *= s;\ in gx_scale_char_matrix()