annotate include/mb_graph_engine_skia.h @ 478:b27a3460c7bd Android_Skia

Re-arrange and group functions.
author Thinker K.F. Li <thinker@branda.to>
date Thu, 12 Nov 2009 21:34:31 +0800
parents ba64f928542b
children d38aca825822
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>
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
5 #include "mb_img_ldr.h"
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
6
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
7 /*! \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
8 * @{
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
9 */
472
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
10 #define MBE_OPERATOR_CLEAR 2
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
11 #define MBE_OPERATOR_SOURCE 1
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
12 #define MBE_STATUS_SUCCESS 0
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
13
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
14 typedef float co_aix;
465
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
15
472
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
16 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
17 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
18 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
19 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
20 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
21 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
22 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
23 };
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
24 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
25 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
26 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
27 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
28 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
29
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_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
31 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
32 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
33 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
34 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
35 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
36
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
37 extern void mbe_pattern_add_color_stop_rgba(mbe_pattern_t *ptn,
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
38 co_aix offset,
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
39 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
40 co_aix a);
478
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
41 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
42 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
43 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
44 co_aix cx1, co_aix cy1,
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
45 co_aix radius1);
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
46 extern mbe_pattern_t *mbe_pattern_create_linear(co_aix x0, co_aix y0,
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
47 co_aix x1, co_aix y1);
478
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
48 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
49 const co_aix matrix[6]);
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
50 extern void mbe_pattern_destroy(mbe_pattern_t *canvas);
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
51
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
52 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
53 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
54 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
55 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
56 extern mbe_surface_t *mbe_image_surface_create_from_png(const char *filename);
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
57 extern mbe_surface_t *
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
58 mbe_image_surface_create_for_data(unsigned char *data,
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
59 mb_img_fmt_t fmt,
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
60 int width, int height,
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
61 int stride);
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
62 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
63 extern mbe_surface_t *
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
64 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
65
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
66 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
67 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
68 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
69 extern mbe_scaled_font_t *
473
ba64f928542b Remove mbe_matrix_t type.
Thinker K.F. Li <thinker@branda.to>
parents: 472
diff changeset
70 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
71 co_aix ctm[6]);
478
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
72 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
73 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
74 const char *txt,
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
75 mbe_text_extents_t *extents);
b27a3460c7bd Re-arrange and group functions.
Thinker K.F. Li <thinker@branda.to>
parents: 473
diff changeset
76
472
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_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
78 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
79 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
80 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
81 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
82 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
83 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
84 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
85 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
86 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
87 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
88 extern void mbe_set_source(mbe_t *canvas, mbe_pattern_t *source);
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
89 extern void mbe_reset_clip(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
90 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
91 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
92 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
93 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
94 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
95 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
96 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
97 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
98 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
99 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
100 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
101 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
102 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
103 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
104 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
105 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
106 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
107 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
108 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
109 extern void mbe_fill(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
110 extern void mbe_clip(mbe_t *canvas);
465
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
111
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
112 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
113 int slant, int weight);
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
114 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
115
472
4254eaa699d0 Declare functions that should be implemented by Skia graphic engine
Thinker K.F. Li <thinker@branda.to>
parents: 470
diff changeset
116 extern void mbe_clear(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
117 extern void mbe_copy_source(mbe_t *canvas);
473
ba64f928542b Remove mbe_matrix_t type.
Thinker K.F. Li <thinker@branda.to>
parents: 472
diff changeset
118 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
119 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
120 co_aix angle_start, co_aix angle_stop);
465
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
121 /* @} */
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
122
d8181696b689 Move functions into graphic engine layers.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
123 #endif /* __MB_GE_SKIA_H_ */