annotate Android/examples/native_test/native_test.cpp @ 880:ac3e8492ad74 abs_n_rel_center

Formalize path data for MadButterfly. Inkscape and other editors would omit 'l' or 'L' after 'm' or 'M'. MadButterfly can not handle it, now. So, we work around it at SVG parser.
author Thinker K.F. Li <thinker@codemud.net>
date Sat, 25 Sep 2010 18:46:37 +0800
parents 3a7bce43ec6e
children
rev   line source
518
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
1 #include <SkCanvas.h>
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
2 #include <SkBitmap.h>
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
3
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
4 extern "C" {
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
5 #include <mb.h>
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
6 };
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
7
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
8 void native_test(void) {
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
9 mbe_t *mbe1, *mbe2;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
10 SkBitmap *bmap1, *bmap2;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
11 redraw_man_t _rdman;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
12 redraw_man_t *rdman = &_rdman;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
13 coord_t *root;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
14 shape_t *shape;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
15 paint_t *paint;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
16
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
17 bmap1 = new SkBitmap();
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
18 bmap1->setConfig(SkBitmap::kARGB_8888_Config, 300, 300);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
19 mbe1 = mbe_create((mbe_surface_t *)bmap1);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
20 bmap2 = new SkBitmap();
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
21 bmap2->setConfig(SkBitmap::kARGB_8888_Config, 300, 300);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
22 mbe2 = mbe_create((mbe_surface_t *)bmap2);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
23
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
24 redraw_man_init(rdman, mbe1, mbe2);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
25 root = rdman_get_root(rdman);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
26 shape = rdman_shape_path_new(rdman, "M 100 100 L 100 150 L 150 150 z");
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
27 paint = rdman_paint_color_new(rdman, 1, 0, 0, 1);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
28 rdman_paint_stroke(rdman, paint, shape);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
29 rdman_add_shape(rdman, shape, root);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
30
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
31 rdman_shape_changed(rdman, shape);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
32 rdman_paint_changed(rdman, paint);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
33
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
34 rdman_redraw_all(rdman);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
35
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
36 rdman_paint_free(rdman, paint);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
37 rdman_shape_free(rdman, shape);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
38 redraw_man_destroy(rdman);
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
39 }
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
40
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
41 int main(int argc, const char *argv[]) {
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
42 native_test();
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
43 return 0;
3a7bce43ec6e Android native code with MB
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
44 }