DEFINITION MODULE FOR "C" GskTransform ; (* m2-GTK4 - GskTransform: an immutable 2D/3D transformation matrix. Mapped onto . *) FROM SYSTEM IMPORT ADDRESS; EXPORT UNQUALIFIED GskTransform, gsk_transform_new, gsk_transform_equal, gsk_transform_get_category, gsk_transform_invert, gsk_transform_matrix, gsk_transform_perspective, gsk_transform_print, gsk_transform_ref, gsk_transform_rotate, gsk_transform_rotate_3d, gsk_transform_scale, gsk_transform_scale_3d, gsk_transform_skew, gsk_transform_to_2d, gsk_transform_to_2d_components, gsk_transform_to_affine, gsk_transform_to_matrix, gsk_transform_to_string, gsk_transform_to_translate, gsk_transform_transform, gsk_transform_transform_bounds, gsk_transform_transform_point, gsk_transform_translate, gsk_transform_translate_3d, gsk_transform_unref, gsk_transform_parse; TYPE GskTransform = ADDRESS; (* GskTransform *gsk_transform_new(void) *) PROCEDURE gsk_transform_new () : ADDRESS; (* gboolean gsk_transform_equal(GskTransform *first, GskTransform *second) *) PROCEDURE gsk_transform_equal (first: GskTransform; second: GskTransform) : INTEGER; (* GskTransformCategory gsk_transform_get_category(GskTransform *self) *) PROCEDURE gsk_transform_get_category (self: GskTransform) : CARDINAL; (* GskTransform *gsk_transform_invert(GskTransform *self) *) PROCEDURE gsk_transform_invert (self: GskTransform) : ADDRESS; (* GskTransform *gsk_transform_matrix(GskTransform *next, const graphene_matrix_t *matrix) *) PROCEDURE gsk_transform_matrix (next: GskTransform; matrix: ADDRESS) : ADDRESS; (* GskTransform *gsk_transform_perspective(GskTransform *next, float depth) *) PROCEDURE gsk_transform_perspective (next: GskTransform; depth: SHORTREAL) : ADDRESS; (* void gsk_transform_print(GskTransform *self, GString *string) *) PROCEDURE gsk_transform_print (self: GskTransform; string: ADDRESS); (* GskTransform *gsk_transform_ref(GskTransform *self) *) PROCEDURE gsk_transform_ref (self: GskTransform) : ADDRESS; (* GskTransform *gsk_transform_rotate(GskTransform *next, float angle) *) PROCEDURE gsk_transform_rotate (next: GskTransform; angle: SHORTREAL) : ADDRESS; (* GskTransform *gsk_transform_rotate_3d(GskTransform *next, float angle, const graphene_vec3_t *axis) *) PROCEDURE gsk_transform_rotate_3d (next: GskTransform; angle: SHORTREAL; axis: ADDRESS) : ADDRESS; (* GskTransform *gsk_transform_scale(GskTransform *next, float factor_x, float factor_y) *) PROCEDURE gsk_transform_scale (next: GskTransform; factor_x: SHORTREAL; factor_y: SHORTREAL) : ADDRESS; (* GskTransform *gsk_transform_scale_3d(GskTransform *next, float factor_x, float factor_y, float factor_z) *) PROCEDURE gsk_transform_scale_3d (next: GskTransform; factor_x: SHORTREAL; factor_y: SHORTREAL; factor_z: SHORTREAL) : ADDRESS; (* GskTransform *gsk_transform_skew(GskTransform *next, float skew_x, float skew_y) *) PROCEDURE gsk_transform_skew (next: GskTransform; skew_x: SHORTREAL; skew_y: SHORTREAL) : ADDRESS; (* void gsk_transform_to_2d(GskTransform *self, float *out_xx, float *out_yx, float *out_xy, float *out_yy, float *out_dx, float *out_dy) *) PROCEDURE gsk_transform_to_2d (self: GskTransform; VAR out_xx: SHORTREAL; VAR out_yx: SHORTREAL; VAR out_xy: SHORTREAL; VAR out_yy: SHORTREAL; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL); (* void gsk_transform_to_2d_components(GskTransform *self, float *out_skew_x, float *out_skew_y, float *out_scale_x, float *out_scale_y, float *out_angle, float *out_dx, float *out_dy) *) PROCEDURE gsk_transform_to_2d_components (self: GskTransform; VAR out_skew_x: SHORTREAL; VAR out_skew_y: SHORTREAL; VAR out_scale_x: SHORTREAL; VAR out_scale_y: SHORTREAL; VAR out_angle: SHORTREAL; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL); (* void gsk_transform_to_affine(GskTransform *self, float *out_scale_x, float *out_scale_y, float *out_dx, float *out_dy) *) PROCEDURE gsk_transform_to_affine (self: GskTransform; VAR out_scale_x: SHORTREAL; VAR out_scale_y: SHORTREAL; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL); (* void gsk_transform_to_matrix(GskTransform *self, graphene_matrix_t *out_matrix) *) PROCEDURE gsk_transform_to_matrix (self: GskTransform; out_matrix: ADDRESS); (* char *gsk_transform_to_string(GskTransform *self) *) PROCEDURE gsk_transform_to_string (self: GskTransform) : ADDRESS; (* void gsk_transform_to_translate(GskTransform *self, float *out_dx, float *out_dy) *) PROCEDURE gsk_transform_to_translate (self: GskTransform; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL); (* GskTransform *gsk_transform_transform(GskTransform *next, GskTransform *other) *) PROCEDURE gsk_transform_transform (next: GskTransform; other: GskTransform) : ADDRESS; (* void gsk_transform_transform_bounds(GskTransform *self, const graphene_rect_t *rect, graphene_rect_t *out_rect) *) PROCEDURE gsk_transform_transform_bounds (self: GskTransform; rect: ADDRESS; out_rect: ADDRESS); (* void gsk_transform_transform_point(GskTransform *self, const graphene_point_t *point, graphene_point_t *out_point) *) PROCEDURE gsk_transform_transform_point (self: GskTransform; point: ADDRESS; out_point: ADDRESS); (* GskTransform *gsk_transform_translate(GskTransform *next, const graphene_point_t *point) *) PROCEDURE gsk_transform_translate (next: GskTransform; point: ADDRESS) : ADDRESS; (* GskTransform *gsk_transform_translate_3d(GskTransform *next, const graphene_point3d_t *point) *) PROCEDURE gsk_transform_translate_3d (next: GskTransform; point: ADDRESS) : ADDRESS; (* void gsk_transform_unref(GskTransform *self) *) PROCEDURE gsk_transform_unref (self: GskTransform); (* gboolean gsk_transform_parse(const char *string, GskTransform **out_transform) *) PROCEDURE gsk_transform_parse (string: ARRAY OF CHAR; out_transform: GskTransform) : INTEGER; END GskTransform.