annotate Android/jni/mbfly.cpp @ 506:47c6fd9dd83c Android_Skia

Use mbfly-java as android API
author Thinker K.F. Li <thinker@branda.to>
date Tue, 01 Dec 2009 22:55:26 +0800
parents a53fc3eff8f1
children 0d9f1f4d3154
rev   line source
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
1 #include <SkCanvas.h>
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
2
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
3 #define DECL_C extern "C" {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
4 #define END_C }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
5
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
6 DECL_C
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
7
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
8 #include <stdio.h>
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
9 #include <mb.h>
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
10 #include <jni.h>
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
11
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
12
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
13 jint Java_org_madbutterfly__1jni_redraw_1man_1new(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
14 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
15 jobject cr,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
16 jobject backend) {
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
17 jclass canvas_cls;
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
18 jfieldID fid;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
19 SkCanvas *_cr, *_backend;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
20 redraw_man_t *rdman;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
21
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
22 canvas_cls = env->GetObjectClass(cr);
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
23 fid = env->GetFieldID(canvas_cls, "mNativeCanvas", "I");
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
24 _cr = (SkCanvas *)env->GetIntField(cr, fid);
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
25 canvas_cls = env->GetObjectClass(backend);
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
26 fid = env->GetFieldID(canvas_cls, "mNativeCanvas", "I");
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
27 _backend = (SkCanvas *)env->GetIntField(backend, fid);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
28 rdman = (redraw_man_t *)malloc(sizeof(redraw_man_t));
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
29 redraw_man_init(rdman, (mbe_t *)_cr, (mbe_t *)_backend);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
30
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
31 return (jint)rdman;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
32 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
33
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
34 void Java_org_madbutterfly__1jni_redraw_1man_1free(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
35 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
36 jint rdman) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
37 redraw_man_destroy((redraw_man_t *)rdman);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
38 free((redraw_man_t *)rdman);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
39 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
40
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
41 jint Java_org_madbutterfly__1jni_rdman_1add_1shape(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
42 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
43 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
44 jint shape,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
45 jint coord) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
46 jint r;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
47
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
48 r = rdman_add_shape((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
49 (shape_t *)shape,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
50 (coord_t *)coord);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
51 return r;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
52 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
53
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
54 jint Java_org_madbutterfly__1jni_rdman_1get_1root(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
55 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
56 jint rdman) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
57 jint root;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
58
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
59 root = (jint)rdman_get_root((redraw_man_t *)rdman);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
60 return root;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
61 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
62
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
63 jint Java_org_madbutterfly__1jni_rdman_1redraw_1all(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
64 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
65 jint rdman) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
66 jint r;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
67
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
68 r = rdman_redraw_all((redraw_man_t *)rdman);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
69 return r;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
70 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
71
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
72 void Java_org_madbutterfly__1jni_rdman_1paint_1fill(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
73 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
74 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
75 jint paint,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
76 jint shape) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
77 rdman_paint_fill((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
78 (paint_t *)paint,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
79 (shape_t *)shape);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
80 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
81
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
82 void Java_org_madbutterfly__1jni_rdman_1paint_1stroke(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
83 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
84 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
85 jint paint,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
86 jint shape) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
87 rdman_paint_stroke((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
88 (paint_t *)paint,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
89 (shape_t *)shape);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
90 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
91
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
92 jint Java_org_madbutterfly__1jni_rdman_1coord_1new(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
93 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
94 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
95 jint parent) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
96 jint coord;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
97
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
98 coord = (jint)rdman_coord_new((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
99 (coord_t *)parent);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
100 return coord;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
101 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
102
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
103 void Java_org_madbutterfly__1jni_rdman_1coord_1free(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
104 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
105 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
106 jint coord) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
107 rdman_coord_free((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
108 (coord_t *)coord);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
109 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
110
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
111 void Java_org_madbutterfly__1jni_rdman_1coord_1subtree_1free(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
112 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
113 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
114 jint coord) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
115 rdman_coord_subtree_free((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
116 (coord_t *)coord);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
117 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
118
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
119 void Java_org_madbutterfly__1jni_rdman_1coord_1changed(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
120 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
121 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
122 jint coord) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
123 rdman_coord_changed((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
124 (coord_t *)coord);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
125 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
126
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
127 void Java_org_madbutterfly__1jni_rdman_1shape_1changed(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
128 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
129 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
130 jint shape) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
131 rdman_shape_changed((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
132 (shape_t *)shape);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
133 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
134
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
135 void Java_org_madbutterfly__1jni_rdman_1shape_1free(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
136 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
137 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
138 jint shape) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
139 rdman_shape_free((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
140 (shape_t *)shape);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
141 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
142
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
143 jint Java_org_madbutterfly__1jni_rdman_1shape_1path_1new(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
144 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
145 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
146 jstring data) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
147 const char *str;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
148 jint shape;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
149
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
150 str = env->GetStringUTFChars(data, NULL);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
151 shape = (jint)rdman_shape_path_new((redraw_man_t *)rdman, (char *)str);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
152 env->ReleaseStringUTFChars(data, str);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
153
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
154 return shape;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
155 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
156
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
157 jint Java_org_madbutterfly__1jni_rdman_1paint_1color_1new(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
158 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
159 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
160 jfloat r, jfloat g,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
161 jfloat b, jfloat a) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
162 jint paint;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
163
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
164 paint = (jint)rdman_paint_color_new((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
165 r, g, b, a);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
166 return paint;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
167 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
168
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
169 jint Java_org_madbutterfly__1jni_rdman_1paint_1free(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
170 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
171 jint rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
172 jint paint) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
173 jint r;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
174
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
175 r = rdman_paint_free((redraw_man_t *)rdman,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
176 (paint_t *)paint);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
177 return r;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
178 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
179
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
180 void Java_org_madbutterfly__1jni_paint_1color_1set(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
181 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
182 jint paint,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
183 jfloat r, jfloat g,
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
184 jfloat b, jfloat a) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
185 paint_color_set((paint_t *)paint, r, g, b, a);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
186 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
187
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
188 jfloatArray Java_org_madbutterfly__1jni_paint_1color_1get(JNIEnv *env,
502
a53fc3eff8f1 Every static native method has the 2rd argument as class object.
Thinker K.F. Li <thinker@branda.to>
parents: 496
diff changeset
189 jobject cls,
496
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
190 jint paint) {
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
191 co_comp_t r, g, b, a;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
192 jfloat color[4];
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
193 jfloatArray result;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
194
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
195 paint_color_get((paint_t *)paint, &r, &g, &b, &a);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
196 color[0] = r;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
197 color[1] = g;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
198 color[2] = b;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
199 color[3] = a;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
200
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
201 result = env->NewFloatArray(4);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
202 env->SetFloatArrayRegion(result, 0, 4, color);
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
203
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
204 return result;
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
205 }
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
206
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
207 END_C
71ad34f73a6e JNI interface for Android
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
208