Mercurial > MadButterfly
comparison include/mb_graph_engine_cairo.h @ 473:ba64f928542b Android_Skia
Remove mbe_matrix_t type.
The struct mbe_matrix_t is defined in a layout accoriding definition
of Cairo. It is not feasible for all graphic engine. Now, we start
supporting of other graphic engine; Skia, so use type of (co_aix[6])
defined and used by MadButterfly intead of mbe_matrix_t. And, bridges
of graphic engines are responsible for translate matrics into the
matrix type of the graphic enigne.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Thu, 12 Nov 2009 21:32:58 +0800 |
parents | e98ae1407ca2 |
children | e813ac222f48 |
comparison
equal
deleted
inserted
replaced
472:4254eaa699d0 | 473:ba64f928542b |
---|---|
25 #define mbe_pattern_create_radial cairo_pattern_create_radial | 25 #define mbe_pattern_create_radial cairo_pattern_create_radial |
26 #define mbe_pattern_create_linear cairo_pattern_create_linear | 26 #define mbe_pattern_create_linear cairo_pattern_create_linear |
27 #define mbe_xlib_surface_create cairo_xlib_surface_create | 27 #define mbe_xlib_surface_create cairo_xlib_surface_create |
28 #define mbe_scaled_font_destroy cairo_scaled_font_destroy | 28 #define mbe_scaled_font_destroy cairo_scaled_font_destroy |
29 #define mbe_font_face_reference cairo_font_face_reference | 29 #define mbe_font_face_reference cairo_font_face_reference |
30 #define mbe_pattern_set_matrix cairo_pattern_set_matrix | |
31 #define mbe_font_face_destroy cairo_font_face_destroy | 30 #define mbe_font_face_destroy cairo_font_face_destroy |
32 #define mbe_paint_with_alpha cairo_paint_with_alpha | 31 #define mbe_paint_with_alpha cairo_paint_with_alpha |
33 #define mbe_surface_destroy cairo_surface_destroy | 32 #define mbe_surface_destroy cairo_surface_destroy |
34 #define mbe_set_source_rgba cairo_set_source_rgba | 33 #define mbe_set_source_rgba cairo_set_source_rgba |
35 #define mbe_set_scaled_font cairo_set_scaled_font | 34 #define mbe_set_scaled_font cairo_set_scaled_font |
63 typedef cairo_text_extents_t mbe_text_extents_t; | 62 typedef cairo_text_extents_t mbe_text_extents_t; |
64 typedef cairo_scaled_font_t mbe_scaled_font_t; | 63 typedef cairo_scaled_font_t mbe_scaled_font_t; |
65 typedef cairo_font_face_t mbe_font_face_t; | 64 typedef cairo_font_face_t mbe_font_face_t; |
66 typedef cairo_surface_t mbe_surface_t; | 65 typedef cairo_surface_t mbe_surface_t; |
67 typedef cairo_pattern_t mbe_pattern_t; | 66 typedef cairo_pattern_t mbe_pattern_t; |
68 typedef cairo_matrix_t mbe_matrix_t; | |
69 typedef cairo_t mbe_t; | 67 typedef cairo_t mbe_t; |
70 typedef float co_aix; | 68 typedef float co_aix; |
69 | |
70 #define MB_MATRIX_2_CAIRO(cmtx, mtx) { \ | |
71 (cmtx).xx = (mtx)[0]; \ | |
72 (cmtx).xy = (mtx)[1]; \ | |
73 (cmtx).x0 = (mtx)[2]; \ | |
74 (cmtx).yx = (mtx)[3]; \ | |
75 (cmtx).yy = (mtx)[4]; \ | |
76 (cmtx).y0 = (mtx)[5]; \ | |
77 } | |
78 | |
71 | 79 |
72 | 80 |
73 extern mbe_font_face_t * mbe_query_font_face(const char *family, | 81 extern mbe_font_face_t * mbe_query_font_face(const char *family, |
74 int slant, int weight); | 82 int slant, int weight); |
75 extern void mbe_free_font_face(mbe_font_face_t *face); | 83 extern void mbe_free_font_face(mbe_font_face_t *face); |
76 | 84 |
85 | |
86 static void mbe_pattern_set_matrix(mbe_pattern_t *ptn, | |
87 const co_aix matrix[6]) { | |
88 cairo_matrix_t cmtx; | |
89 | |
90 MB_MATRIX_2_CAIRO(cmtx, matrix); | |
91 cairo_pattern_set_matrix(ptn, &cmtx); | |
92 } | |
77 | 93 |
78 static void mbe_clear(mbe_t *canvas) { | 94 static void mbe_clear(mbe_t *canvas) { |
79 cairo_operator_t old_op; | 95 cairo_operator_t old_op; |
80 | 96 |
81 old_op = cairo_get_operator(canvas); | 97 old_op = cairo_get_operator(canvas); |
92 cairo_paint(canvas); | 108 cairo_paint(canvas); |
93 cairo_set_operator(canvas, saved_op); | 109 cairo_set_operator(canvas, saved_op); |
94 } | 110 } |
95 | 111 |
96 static mbe_scaled_font_t * | 112 static mbe_scaled_font_t * |
97 mbe_scaled_font_create(mbe_font_face_t *face, mbe_matrix_t *fnt_mtx, | 113 mbe_scaled_font_create(mbe_font_face_t *face, co_aix fnt_mtx[6], |
98 mbe_matrix_t *ctm) { | 114 co_aix ctm[6]) { |
99 cairo_font_options_t *options; | 115 cairo_font_options_t *options; |
100 mbe_scaled_font_t *scaled; | 116 mbe_scaled_font_t *scaled; |
117 cairo_matrix_t cfnt_mtx, cctm; | |
101 | 118 |
102 options = cairo_font_options_create(); | 119 options = cairo_font_options_create(); |
103 if(options == NULL) | 120 if(options == NULL) |
104 return NULL; | 121 return NULL; |
105 | 122 |
106 scaled = cairo_scaled_font_create(face, fnt_mtx, ctm, options); | 123 MB_MATRIX_2_CAIRO(cfnt_mtx, fnt_mtx); |
124 MB_MATRIX_2_CAIRO(cctm, ctm); | |
125 scaled = cairo_scaled_font_create(face, &cfnt_mtx, &cctm, options); | |
107 | 126 |
108 cairo_font_options_destroy(options); | 127 cairo_font_options_destroy(options); |
109 | 128 |
110 return scaled; | 129 return scaled; |
111 } | 130 } |