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