/binding/pango/matrix.d
http://github.com/wilkie/djehuty · D · 123 lines · 37 code · 16 blank · 70 comment · 0 complexity · 9055ddccba22114968df52c1fda743a5 MD5 · raw file
- /*
- * matrix.d
- *
- * This file holds bindings to pango's pango-matrix.h. The original
- * copyright is displayed below, but does not pertain to this file.
- *
- * Author: Dave Wilkinson
- *
- */
- module binding.pango.matrix;
- /* Pango
- * pango-matrix.h: Matrix manipulation routines
- *
- * Copyright (C) 2002, 2006 Red Hat Software
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
- //#include <glib.h>
- alias _PangoMatrix PangoMatrix;
- /**
- * PangoMatrix:
- * @xx: 1st component of the transformation matrix
- * @xy: 2nd component of the transformation matrix
- * @yx: 3rd component of the transformation matrix
- * @yy: 4th component of the transformation matrix
- * @x0: x translation
- * @y0: y translation
- *
- * A structure specifying a transformation between user-space
- * coordinates and device coordinates. The transformation
- * is given by
- *
- * <programlisting>
- * x_device = x_user * matrix->xx + y_user * matrix->xy + matrix->x0;
- * y_device = x_user * matrix->yx + y_user * matrix->yy + matrix->y0;
- * </programlisting>
- *
- * Since: 1.6
- **/
- struct _PangoMatrix
- {
- double xx;
- double xy;
- double yx;
- double yy;
- double x0;
- double y0;
- }
- /**
- * PANGO_TYPE_MATRIX
- *
- * The GObject type for #PangoMatrix
- **/
- //#define PANGO_TYPE_MATRIX (pango_matrix_get_type ())
- /**
- * PANGO_MATRIX_INIT
- *
- * Constant that can be used to initialize a PangoMatrix to
- * the identity transform.
- *
- * <informalexample><programlisting>
- * PangoMatrix matrix = PANGO_MATRIX_INIT;
- * pango_matrix_rotate (&matrix, 45.);
- * </programlisting></informalexample>
- *
- * Since: 1.6
- **/
- //#define PANGO_MATRIX_INIT { 1., 0., 0., 1., 0., 0. }
- import binding.pango.types;
- extern(C):
- GType pango_matrix_get_type ();
- PangoMatrix *pango_matrix_copy (PangoMatrix *matrix);
- void pango_matrix_free (PangoMatrix *matrix);
- void pango_matrix_translate (PangoMatrix *matrix,
- double tx,
- double ty);
- void pango_matrix_scale (PangoMatrix *matrix,
- double scale_x,
- double scale_y);
- void pango_matrix_rotate (PangoMatrix *matrix,
- double degrees);
- void pango_matrix_concat (PangoMatrix *matrix,
- PangoMatrix *new_matrix);
- void pango_matrix_transform_point (PangoMatrix *matrix,
- double *x,
- double *y);
- void pango_matrix_transform_distance (PangoMatrix *matrix,
- double *dx,
- double *dy);
- void pango_matrix_transform_rectangle (PangoMatrix *matrix,
- PangoRectangle *rect);
- void pango_matrix_transform_pixel_rectangle (PangoMatrix *matrix,
- PangoRectangle *rect);
- double pango_matrix_get_font_scale_factor (PangoMatrix *matrix);