Mercurial > MadButterfly
annotate include/mb_graph_engine_skia.h @ 630:bd18951b51d5 openvg
Add initial code for graphic engines
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Mon, 19 Jul 2010 15:44:49 +0800 |
parents | 287db640078d |
children | 7b4e80ab671a |
rev | line source |
---|---|
465
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
1 #ifndef __MB_GE_SKIA_H_ |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
2 #define __MB_GE_SKIA_H_ |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
3 |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
4 #include <stdio.h> |
482
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
5 #include "mb_basic_types.h" |
465
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
6 #include "mb_img_ldr.h" |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
7 |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
8 /*! \defgroup mb_ge_skia MadButterfly Graphic Engine with Skia |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
9 * @{ |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
10 */ |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
11 struct _mbe_text_extents_t { |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
12 co_aix x_bearing; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
13 co_aix y_bearing; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
14 co_aix width; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
15 co_aix height; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
16 co_aix x_advance; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
17 co_aix y_advance; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
18 }; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
19 struct _mbe_scaled_font_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
20 struct _mbe_font_face_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
21 struct _mbe_surface_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
22 struct _mbe_pattern_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
23 struct _mbe_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
24 |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
25 typedef struct _mbe_text_extents_t mbe_text_extents_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
26 typedef struct _mbe_scaled_font_t mbe_scaled_font_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
27 typedef struct _mbe_font_face_t mbe_font_face_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
28 typedef struct _mbe_surface_t mbe_surface_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
29 typedef struct _mbe_pattern_t mbe_pattern_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
30 typedef struct _mbe_t mbe_t; |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
31 |
478
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
32 extern mbe_pattern_t *mbe_pattern_create_for_surface(mbe_surface_t *surface); |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
33 extern mbe_pattern_t *mbe_pattern_create_radial(co_aix cx0, co_aix cy0, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
34 co_aix radius0, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
35 co_aix cx1, co_aix cy1, |
482
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
36 co_aix radius1, |
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
37 grad_stop_t *stops, |
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
38 int stop_cnt); |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
39 extern mbe_pattern_t *mbe_pattern_create_linear(co_aix x0, co_aix y0, |
482
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
40 co_aix x1, co_aix y1, |
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
41 grad_stop_t *stops, |
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
42 int stop_cnt); |
602
ac2e6468a22a
Replace mbe_image_surface_create_from_png() with mbe_pattern_create_image()
Thinker K.F. Li <thinker@branda.to>
parents:
599
diff
changeset
|
43 extern mbe_pattern_t *mbe_pattern_create_image(mb_img_data_t *img); |
478
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
44 extern void mbe_pattern_set_matrix(mbe_pattern_t *ptn, |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
45 const co_aix matrix[6]); |
482
d38aca825822
Import more functions for Skia graphic engine.
Thinker K.F. Li <thinker@branda.to>
parents:
478
diff
changeset
|
46 extern void mbe_pattern_destroy(mbe_pattern_t *ptn); |
478
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
47 |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
48 extern int mbe_image_surface_get_stride(mbe_surface_t *surface); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
49 extern int mbe_image_surface_get_height(mbe_surface_t *surface); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
50 extern int mbe_image_surface_get_width(mbe_surface_t *surface); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
51 extern unsigned char *mbe_image_surface_get_data(mbe_surface_t *surface); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
52 extern mb_img_fmt_t mbe_image_surface_get_format(mbe_surface_t *surface); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
53 extern mbe_surface_t * |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
54 mbe_image_surface_create(mb_img_fmt_t fmt, int width, int height); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
55 |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
56 extern mbe_scaled_font_t *mbe_scaled_font_reference(mbe_scaled_font_t *scaled); |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
57 extern void mbe_scaled_font_destroy(mbe_scaled_font_t *scaled); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
58 extern mbe_font_face_t *mbe_font_face_reference(mbe_font_face_t *face); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
59 extern mbe_scaled_font_t * |
473
ba64f928542b
Remove mbe_matrix_t type.
Thinker K.F. Li <thinker@branda.to>
parents:
472
diff
changeset
|
60 mbe_scaled_font_create(mbe_font_face_t *face, co_aix fnt_mtx[6], |
ba64f928542b
Remove mbe_matrix_t type.
Thinker K.F. Li <thinker@branda.to>
parents:
472
diff
changeset
|
61 co_aix ctm[6]); |
478
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
62 extern mbe_scaled_font_t *mbe_get_scaled_font(mbe_t *canvas); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
63 extern void mbe_scaled_font_text_extents(mbe_scaled_font_t *scaled, |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
64 const char *txt, |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
65 mbe_text_extents_t *extents); |
b27a3460c7bd
Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents:
473
diff
changeset
|
66 |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
67 extern void mbe_font_face_destroy(mbe_font_face_t *face); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
68 extern void mbe_paint_with_alpha(mbe_t *canvas, co_aix alpha); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
69 extern void mbe_surface_destroy(mbe_surface_t *surface); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
70 extern void mbe_set_source_rgba(mbe_t *canvas, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
71 co_aix r, co_aix g, co_aix b, co_aix a); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
72 extern void mbe_set_scaled_font(mbe_t *canvas, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
73 const mbe_scaled_font_t *scaled); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
74 extern void mbe_set_source_rgb(mbe_t *canvas, co_aix r, co_aix g, co_aix b); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
75 extern void mbe_set_line_width(mbe_t *canvas, co_aix width); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
76 extern mbe_font_face_t *mbe_get_font_face(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
77 extern void mbe_fill_preserve(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
78 extern void mbe_set_source(mbe_t *canvas, mbe_pattern_t *source); |
586
b42d69ab8857
Replace mbe_clip() with mbe_scissoring()
Thinker K.F. Li <thinker@branda.to>
parents:
512
diff
changeset
|
79 extern void mbe_reset_scissoring(mbe_t *canvas); |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
80 extern mbe_surface_t *mbe_get_target(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
81 extern void mbe_close_path(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
82 extern void mbe_text_path(mbe_t *canvas, const char *txt); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
83 extern void mbe_rectangle(mbe_t *canvas, co_aix x, co_aix y, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
84 co_aix width, co_aix height); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
85 extern int mbe_in_stroke(mbe_t *canvas, co_aix x, co_aix y); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
86 extern void mbe_new_path(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
87 extern void mbe_curve_to(mbe_t *canvas, co_aix x1, co_aix y1, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
88 co_aix x2, co_aix y2, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
89 co_aix x3, co_aix y3); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
90 extern void mbe_restore(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
91 extern void mbe_move_to(mbe_t *canvas, co_aix x, co_aix y); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
92 extern void mbe_line_to(mbe_t *canvas, co_aix x, co_aix y); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
93 extern int mbe_in_fill(mbe_t *canvas, co_aix x, co_aix y); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
94 extern void mbe_stroke(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
95 extern mbe_t *mbe_create(mbe_surface_t *target); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
96 extern void mbe_destroy(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
97 extern void mbe_paint(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
98 extern void mbe_save(mbe_t *canvas); |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
99 extern void mbe_fill(mbe_t *canvas); |
586
b42d69ab8857
Replace mbe_clip() with mbe_scissoring()
Thinker K.F. Li <thinker@branda.to>
parents:
512
diff
changeset
|
100 extern void mbe_scissoring(mbe_t *canvas, int n_areas, area_t **areas); |
465
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
101 |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
102 extern mbe_font_face_t * mbe_query_font_face(const char *family, |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
103 int slant, int weight); |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
104 extern void mbe_free_font_face(mbe_font_face_t *face); |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
105 |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
106 extern void mbe_clear(mbe_t *canvas); |
512
d186d1e24458
Change prototype of mbe_copy_source().
Thinker K.F. Li <thinker@branda.to>
parents:
482
diff
changeset
|
107 extern void mbe_copy_source(mbe_t *src, mbe_t *dst); |
473
ba64f928542b
Remove mbe_matrix_t type.
Thinker K.F. Li <thinker@branda.to>
parents:
472
diff
changeset
|
108 extern void mbe_transform(mbe_t *mbe, co_aix matrix[6]); |
472
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
109 extern void mbe_arc(mbe_t *mbe, co_aix x, co_aix y, co_aix radius, |
4254eaa699d0
Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents:
470
diff
changeset
|
110 co_aix angle_start, co_aix angle_stop); |
630
bd18951b51d5
Add initial code for graphic engines
Thinker K.F. Li <thinker@branda.to>
parents:
609
diff
changeset
|
111 #define mbe_init() |
465
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
112 /* @} */ |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
113 |
d8181696b689
Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff
changeset
|
114 #endif /* __MB_GE_SKIA_H_ */ |