source: libcaca/trunk/java/org_zoy_caca_Canvas.c @ 4333

Last change on this file since 4333 was 4333, checked in by Sam Hocevar, 12 years ago

Large source code cleanup, getting rid of spaces, tabs, and svn keywords.

File size: 12.0 KB
Line 
1/**
2 *  libcaca       Java bindings for libcaca
3 *  Copyright (c) 2009 Adrien Grand <jpountz@dinauz.org>
4 *
5 *  This library is free software. It comes without any warranty, to
6 *  the extent permitted by applicable law. You can redistribute it
7 *  and/or modify it under the terms of the Do What The Fuck You Want
8 *  To Public License, Version 2, as published by Sam Hocevar. See
9 *  http://sam.zoy.org/wtfpl/COPYING for more details.
10 */
11
12#include "org_zoy_caca_Canvas.h"
13
14#include "caca.h"
15
16
17JNIEXPORT jint JNICALL
18Java_org_zoy_caca_Canvas_getCursorX(JNIEnv *env, jclass cls, jlong ptr)
19{
20  return caca_get_cursor_x((caca_canvas_t *)ptr);
21}
22
23JNIEXPORT jint JNICALL
24Java_org_zoy_caca_Canvas_getCursorY (JNIEnv *env, jclass cls, jlong ptr)
25{
26  return caca_get_cursor_y((caca_canvas_t *)ptr);
27}
28
29JNIEXPORT void JNICALL
30Java_org_zoy_caca_Canvas_setCursorXY(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y)
31{
32  caca_gotoxy((caca_canvas_t *)ptr, x, y);
33}
34
35JNIEXPORT jint JNICALL
36Java_org_zoy_caca_Canvas_getHandleX(JNIEnv *env, jclass cls, jlong ptr)
37{
38  return caca_get_canvas_handle_x((caca_canvas_t *)ptr);
39}
40
41JNIEXPORT jint JNICALL
42Java_org_zoy_caca_Canvas_getHandleY(JNIEnv *env, jclass cls, jlong ptr)
43{
44  return caca_get_canvas_handle_x((caca_canvas_t *)ptr);
45}
46
47JNIEXPORT void JNICALL
48Java_org_zoy_caca_Canvas_setHandleXY(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y)
49{
50  caca_set_canvas_handle((caca_canvas_t *)ptr, x, y);
51}
52
53JNIEXPORT jlong JNICALL
54Java_org_zoy_caca_Canvas_createCanvas(JNIEnv *env, jclass cls, jint w, jint h)
55{
56  return (jlong)caca_create_canvas(w, h);
57}
58
59JNIEXPORT jint JNICALL
60Java_org_zoy_caca_Canvas_getCanvasWidth(JNIEnv *env, jclass cls, jlong ptr)
61{
62  return caca_get_canvas_width((caca_canvas_t *)ptr);
63}
64
65JNIEXPORT jint JNICALL
66Java_org_zoy_caca_Canvas_getCanvasHeight(JNIEnv *env, jclass cls, jlong ptr)
67{
68  return caca_get_canvas_height((caca_canvas_t *)ptr);
69}
70
71JNIEXPORT void JNICALL
72Java_org_zoy_caca_Canvas_setCanvasSize(JNIEnv *env, jclass cls, jlong ptr, jint w, jint h)
73{
74  caca_set_canvas_size((caca_canvas_t *)ptr, w, h);
75}
76
77JNIEXPORT void JNICALL
78Java_org_zoy_caca_Canvas_clearCanvas(JNIEnv *env, jclass cls, jlong ptr)
79{
80  caca_clear_canvas((caca_canvas_t *)ptr);
81}
82
83JNIEXPORT jint JNICALL
84Java_org_zoy_caca_Canvas_getCanvasChar(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y)
85{
86  return caca_get_char((caca_canvas_t *)ptr, x, y);
87}
88
89JNIEXPORT void JNICALL
90Java_org_zoy_caca_Canvas_putCanvasChar(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y, jint ch)
91{
92  caca_put_char((caca_canvas_t *)ptr, x, y, ch);
93}
94
95JNIEXPORT void JNICALL
96Java_org_zoy_caca_Canvas_putCanvasString(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y, jstring s)
97{
98  const char *chars;
99
100  chars = (*env)->GetStringUTFChars(env, s, 0);
101  caca_put_str((caca_canvas_t *)ptr, x, y, chars);
102  (*env)->ReleaseStringUTFChars(env, s, chars);
103}
104
105JNIEXPORT void JNICALL
106Java_org_zoy_caca_Canvas_blitCanvas(JNIEnv *env, jclass cls, jlong ptr, jint x,
107                                    jint y, jlong cv, jlong mask)
108{
109  caca_blit((caca_canvas_t *)ptr, x, y, (caca_canvas_t *)cv, (caca_canvas_t *)mask);
110}
111
112JNIEXPORT void JNICALL
113Java_org_zoy_caca_Canvas_setCanvasBoundaries(JNIEnv *env, jclass cls, jlong ptr,
114                                             jint x, jint y, jint w, jint h)
115{
116  caca_set_canvas_boundaries((caca_canvas_t *)ptr, x, y, w, h);
117}
118
119JNIEXPORT void JNICALL
120Java_org_zoy_caca_Canvas_invertCanvas(JNIEnv *env, jclass cls, jlong ptr)
121{
122  caca_invert((caca_canvas_t *)ptr);
123}
124
125JNIEXPORT void JNICALL
126Java_org_zoy_caca_Canvas_flipCanvas(JNIEnv *env, jclass cls, jlong ptr)
127{
128  caca_flip((caca_canvas_t *)ptr);
129}
130
131JNIEXPORT void JNICALL
132Java_org_zoy_caca_Canvas_flopCanvas(JNIEnv *env, jclass cls, jlong ptr)
133{
134  caca_flop((caca_canvas_t *)ptr);
135}
136
137JNIEXPORT void JNICALL
138Java_org_zoy_caca_Canvas_rotateCanvas180(JNIEnv *env, jclass cls, jlong ptr)
139{
140  caca_rotate_180((caca_canvas_t *)ptr);
141}
142
143JNIEXPORT void JNICALL
144Java_org_zoy_caca_Canvas_rotateCanvasLeft(JNIEnv *env, jclass cls, jlong ptr)
145{
146  caca_rotate_left((caca_canvas_t *)ptr);
147}
148
149JNIEXPORT void JNICALL
150Java_org_zoy_caca_Canvas_rotateCanvasRight(JNIEnv *env, jclass cls, jlong ptr)
151{
152  caca_rotate_right((caca_canvas_t *)ptr);
153}
154
155JNIEXPORT void JNICALL
156Java_org_zoy_caca_Canvas_stretchCanvasLeft(JNIEnv *env, jclass cls, jlong ptr)
157{
158  caca_stretch_left((caca_canvas_t *)ptr);
159}
160
161JNIEXPORT void JNICALL
162Java_org_zoy_caca_Canvas_stretchCanvasRight(JNIEnv *env, jclass cls, jlong ptr)
163{
164  caca_stretch_right((caca_canvas_t *)ptr);
165}
166
167JNIEXPORT jint JNICALL
168Java_org_zoy_caca_Canvas_getCanvasAttribute(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y)
169{
170  return caca_get_attr((caca_canvas_t *)ptr, x, y);
171}
172
173JNIEXPORT void JNICALL
174Java_org_zoy_caca_Canvas_setCanvasAttribute(JNIEnv *env, jclass cls, jlong ptr, jint attr)
175{
176  caca_set_attr((caca_canvas_t *)ptr, attr);
177}
178
179JNIEXPORT void JNICALL
180Java_org_zoy_caca_Canvas_putCanvasAttribute(JNIEnv *env, jclass cls, jlong ptr,
181                                            jint x, jint y, jint attr)
182{
183  caca_put_attr((caca_canvas_t *)ptr, x, y, attr);
184}
185
186JNIEXPORT void JNICALL
187Java_org_zoy_caca_Canvas_setCanvasColorAnsi(JNIEnv *env, jclass cls, jlong ptr, jbyte fg, jbyte bg)
188{
189  caca_set_color_ansi((caca_canvas_t *)ptr, fg, bg);
190}
191
192JNIEXPORT void JNICALL
193Java_org_zoy_caca_Canvas_setCanvasColorArgb(JNIEnv *env, jclass cls, jlong ptr, jshort fg, jshort bg)
194{
195  caca_set_color_argb((caca_canvas_t *)ptr, fg, bg);
196}
197
198JNIEXPORT void JNICALL
199Java_org_zoy_caca_Canvas_canvasDrawLine(JNIEnv *env, jclass cls, jlong ptr, jint x1, jint y1,
200                                        jint x2, jint y2, jint ch)
201{
202  caca_draw_line((caca_canvas_t *)ptr, x1, y1, x2, y2, ch);
203}
204
205JNIEXPORT void JNICALL
206Java_org_zoy_caca_Canvas_canvasDrawPolyline(JNIEnv *env, jclass cls, jlong ptr,
207                                            jintArray xs, jintArray ys, jint ch)
208{
209  jsize size;
210  jint *x_elems;
211  jint *y_elems;
212
213  size = (*env)->GetArrayLength(env, xs);
214  x_elems = (*env)->GetIntArrayElements(env, xs, 0);
215  y_elems = (*env)->GetIntArrayElements(env, ys, 0);
216  caca_draw_polyline((caca_canvas_t *)ptr, x_elems, y_elems, size, ch);
217  (*env)->ReleaseIntArrayElements(env, xs, x_elems, 0);
218  (*env)->ReleaseIntArrayElements(env, ys, y_elems, 0);
219}
220
221JNIEXPORT void JNICALL
222Java_org_zoy_caca_Canvas_canvasDrawThinLine(JNIEnv *env, jclass cls, jlong ptr,
223                                            jint x1, jint y1, jint x2, jint y2)
224{
225  caca_draw_thin_line((caca_canvas_t *)ptr, x1, y1, x2, y2);
226}
227
228JNIEXPORT void JNICALL
229Java_org_zoy_caca_Canvas_canvasDrawThinPolyline(JNIEnv *env, jclass cls, jlong ptr,
230                                                jintArray xs, jintArray ys)
231{
232  jsize size;
233  jint *x_elems;
234  jint *y_elems;
235
236  size = (*env)->GetArrayLength(env, xs);
237  x_elems = (*env)->GetIntArrayElements(env, xs, 0);
238  y_elems = (*env)->GetIntArrayElements(env, ys, 0);
239  caca_draw_thin_polyline((caca_canvas_t *)ptr, x_elems, y_elems, size);
240  (*env)->ReleaseIntArrayElements(env, xs, x_elems, 0);
241  (*env)->ReleaseIntArrayElements(env, ys, y_elems, 0);
242}
243
244JNIEXPORT void JNICALL
245Java_org_zoy_caca_Canvas_canvasDrawCircle(JNIEnv * env, jclass cls, jlong ptr,
246                                          jint x, jint y, jint r, jint ch)
247{
248  caca_draw_circle((caca_canvas_t *)ptr, x, y, r, ch);
249}
250
251JNIEXPORT void JNICALL
252Java_org_zoy_caca_Canvas_canvasDrawEllipse(JNIEnv *env, jclass cls, jlong ptr,
253                                           jint x, jint y, jint a, jint b, jint ch)
254{
255  caca_draw_ellipse((caca_canvas_t *)ptr, x, y, a, b, ch);
256}
257
258JNIEXPORT void JNICALL
259Java_org_zoy_caca_Canvas_canvasDrawThinEllipse(JNIEnv *env, jclass cls, jlong ptr,
260                                               jint x, jint y, jint a, jint b)
261{
262  caca_draw_thin_ellipse((caca_canvas_t *)ptr, x, y, a, b);
263}
264
265JNIEXPORT void JNICALL
266Java_org_zoy_caca_Canvas_canvasFillEllipse(JNIEnv *env, jclass cls, jlong ptr, jint x,
267                                           jint y, jint a, jint b, jint ch)
268{
269  caca_fill_ellipse((caca_canvas_t *)ptr, x, y, a, b, ch);
270}
271
272JNIEXPORT void JNICALL
273Java_org_zoy_caca_Canvas_canvasDrawBox(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y,
274                                       jint w, jint h, jint ch)
275{
276  caca_draw_box((caca_canvas_t *)ptr, x, y, w, h, ch);
277}
278
279JNIEXPORT void JNICALL
280Java_org_zoy_caca_Canvas_canvasDrawThinBox(JNIEnv *env, jclass cls, jlong ptr,
281                                           jint x, jint y, jint w, jint h)
282{
283  caca_draw_thin_box((caca_canvas_t *)ptr, x, y, w, h);
284}
285
286JNIEXPORT void JNICALL
287Java_org_zoy_caca_Canvas_canvasDrawCp437Box(JNIEnv *env, jclass cls, jlong ptr,
288                                            jint x, jint y, jint w, jint h)
289{
290  caca_draw_cp437_box((caca_canvas_t *)ptr, x, y, w, h);
291}
292
293JNIEXPORT void JNICALL
294Java_org_zoy_caca_Canvas_canvasFillBox(JNIEnv *env, jclass cls, jlong ptr,
295                                       jint x, jint y, jint w, jint h, jint ch)
296{
297  caca_fill_box((caca_canvas_t *)ptr, x, y, w, h, ch);
298}
299
300JNIEXPORT void JNICALL
301Java_org_zoy_caca_Canvas_canvasDrawTriangle(JNIEnv *env, jclass cls, jlong ptr,
302                                            jint x1, jint y1, jint x2, jint y2,
303                                            jint x3, jint y3, jint ch)
304{
305  caca_draw_triangle((caca_canvas_t *)ptr, x1, y1, x2, y2, x3, y3, ch);
306}
307
308JNIEXPORT void JNICALL
309Java_org_zoy_caca_Canvas_canvasDrawThinTriangle(JNIEnv *env, jclass cls, jlong ptr,
310                                                jint x1, jint y1, jint x2, jint y2,
311                                                jint x3, jint y3)
312{
313  caca_draw_thin_triangle((caca_canvas_t *)ptr, x1, y1, x2, y2, x3, y3);
314}
315
316JNIEXPORT void JNICALL
317Java_org_zoy_caca_Canvas_canvasFillTriangle(JNIEnv *env, jclass cls, jlong ptr,
318                                            jint x1, jint y1, jint x2, jint y2,
319                                            jint x3, jint y3, jint ch)
320{
321  caca_fill_triangle((caca_canvas_t *)ptr, x1, y1, x2, y2, x3, y3, ch);
322}
323
324JNIEXPORT jint JNICALL
325Java_org_zoy_caca_Canvas_getCanvasFrameCount(JNIEnv *env, jclass cls, jlong ptr)
326{
327  return caca_get_frame_count((caca_canvas_t *)ptr);
328}
329
330JNIEXPORT void JNICALL
331Java_org_zoy_caca_Canvas_setCanvasFrame(JNIEnv *env, jclass cls, jlong ptr, jint id)
332{
333  caca_set_frame((caca_canvas_t *)ptr, id);
334}
335
336JNIEXPORT jstring JNICALL
337Java_org_zoy_caca_Canvas_getCanvasFrameName(JNIEnv *env, jclass cls, jlong ptr)
338{
339  const char *frame_name = caca_get_frame_name((caca_canvas_t *)ptr);
340  return (*env)->NewStringUTF(env, frame_name);
341}
342
343JNIEXPORT void JNICALL
344Java_org_zoy_caca_Canvas_setCanvasFrameName(JNIEnv *env, jclass cls, jlong ptr, jstring frame_name)
345{
346  const char *frame_name_chars = (*env)->GetStringUTFChars(env, frame_name, 0);
347  caca_set_frame_name((caca_canvas_t *)ptr, frame_name_chars);
348  (*env)->ReleaseStringUTFChars(env, frame_name, frame_name_chars);
349}
350
351JNIEXPORT void JNICALL
352Java_org_zoy_caca_Canvas_createCanvasFrame(JNIEnv *env, jclass cls, jlong ptr, jint id)
353{
354  caca_create_frame((caca_canvas_t *)ptr, id);
355}
356
357JNIEXPORT void JNICALL
358Java_org_zoy_caca_Canvas_freeCanvasFrame(JNIEnv *env, jclass cls, jlong ptr, jint id)
359{
360  caca_free_frame((caca_canvas_t *)ptr, id);
361}
362
363JNIEXPORT void JNICALL
364Java_org_zoy_caca_Canvas_canvasRender(JNIEnv *env, jclass cls, jlong ptr, jlong font_ptr,
365                                      jbyteArray buf, jint width, jint height, jint pitch)
366{
367  jbyte *elems = (*env)->GetByteArrayElements(env, buf, 0);
368  caca_render_canvas((caca_canvas_t *)ptr, (caca_font_t *)font_ptr, elems, width, height, pitch);
369  (*env)->ReleaseByteArrayElements(env, buf, elems, 0);
370}
371
372JNIEXPORT void JNICALL
373Java_org_zoy_caca_Canvas_canvasDitherBitmap(JNIEnv *env, jclass cls, jlong ptr, jint x, jint y,
374                                            jint w, jint h, jlong dither_ptr, jbyteArray pixels)
375{
376  jbyte *elems = (*env)->GetByteArrayElements(env, pixels, 0);
377  jsize size = (*env)->GetArrayLength(env, pixels);
378  caca_dither_bitmap((caca_canvas_t *)ptr, x, y, w, h, (caca_dither_t *)dither_ptr, elems);
379  (*env)->ReleaseByteArrayElements(env, pixels, elems, 0);
380}
381
382JNIEXPORT void JNICALL
383Java_org_zoy_caca_Canvas_freeCanvas(JNIEnv *env, jclass cls, jlong ptr)
384{
385  caca_free_canvas((caca_canvas_t *)ptr);
386}
387
Note: See TracBrowser for help on using the repository browser.