Changeset 3132 for libcaca


Ignore:
Timestamp:
Oct 28, 2008, 8:30:10 PM (12 years ago)
Author:
nico
Message:
  • Change type of the last argument of drawing function (from string to long)
  • Adapt sample programs
Location:
libcaca/trunk/caca-php
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca-php/examples/cacainfo.php

    r3129 r3132  
    2929        caca_set_color_ansi($cv, CACA_LIGHTGREEN, CACA_DEFAULT);
    3030        caca_put_str($cv, 8, 0, "Moo!");
     31        caca_set_color_ansi($cv, CACA_LIGHTRED, CACA_DEFAULT);
     32        caca_put_char($cv, 8, 1, hexdec("2765")); //U+2765
     33        caca_put_char($cv, 10, 1, hexdec("2764")); //U+2764
    3134        echo caca_export_string($cv, "utf8");
    3235}
  • libcaca/trunk/caca-php/examples/demo.php

    r3127 r3132  
    161161        $j = 15 + sin(0.03 * $i) * 8;
    162162        caca_set_color_ansi($cv, CACA_WHITE, CACA_BLACK);
    163         caca_fill_ellipse($cv, $xo, $yo, $j, $j / 2, '#');
    164         caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);
    165         caca_draw_ellipse($cv, $xo, $yo, $j, $j / 2, '#');
     163        caca_fill_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#'));
     164        caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);
     165        caca_draw_ellipse($cv, $xo, $yo, $j, $j / 2, ord('#'));
    166166
    167167        /* Draw the pyramid */
     
    179179
    180180        caca_set_color_ansi($cv, CACA_GREEN, CACA_BLACK);
    181         caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya, '%');
     181        caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya, ord('%'));
    182182        caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);
    183183        caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xa, $ya);
    184184
    185185        caca_set_color_ansi($cv, CACA_RED, CACA_BLACK);
    186         caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, '#');
     186        caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#'));
    187187        caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);
    188188        caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc);
    189189
    190190        caca_set_color_ansi($cv, CACA_BLUE, CACA_BLACK);
    191         caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc, '%');
     191        caca_fill_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc, ord('%'));
    192192        caca_set_color_ansi($cv, CACA_YELLOW, CACA_BLACK);
    193193        caca_draw_thin_triangle($cv, $xo, $yo, $xb, $yb, $xc, $yc);
     
    220220                        caca_get_canvas_width($cv) / 2 + cos(0.02 * $j) * ($delta + caca_get_canvas_width($cv) / 4),
    221221                        caca_get_canvas_height($cv) / 2 + sin(0.02 * $j) * ($delta + caca_get_canvas_height($cv) / 3),
    222                         '#');
     222                        ord('#'));
    223223        }
    224224}
     
    265265                /* Putpixel */
    266266                caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16));
    267                 caca_put_char($cv, caca_rand(0, $xmax), caca_rand(0, $ymax), $chars[caca_rand(0, 9)]);
     267                caca_put_char($cv, caca_rand(0, $xmax), caca_rand(0, $ymax), ord($chars[caca_rand(0, 9)]));
    268268        }
    269269}
     
    286286                caca_draw_thin_line($cv, $xa, $ya, $xb, $yb);
    287287        else
    288                 caca_draw_line($cv, $xa, $ya, $xb, $yb, '#');
     288                caca_draw_line($cv, $xa, $ya, $xb, $yb, ord('#'));
    289289}
    290290
     
    303303
    304304        caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16));
    305         caca_fill_box($cv, $xa, $ya, $xb, $yb, '#');
     305        caca_fill_box($cv, $xa, $ya, $xb, $yb, ord('#'));
    306306
    307307        caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK);
     
    309309                caca_draw_thin_box($cv, $xa, $ya, $xb, $yb);
    310310        else if($outline == 1)
    311                 caca_draw_box($cv, $xa, $ya, $xb, $yb, '#');
     311                caca_draw_box($cv, $xa, $ya, $xb, $yb, ord('#'));
    312312}
    313313
     
    328328
    329329        caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16));
    330         caca_fill_ellipse($cv, $x, $y, $a, $b, '#');
     330        caca_fill_ellipse($cv, $x, $y, $a, $b, ord('#'));
    331331
    332332        caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK);
     
    334334                caca_draw_thin_ellipse($cv, $x, $y, $a, $b);
    335335        else if ($outline == 1)
    336                 caca_draw_ellipse($cv, $x, $y, $a, $b, '#');
     336                caca_draw_ellipse($cv, $x, $y, $a, $b, ord('#'));
    337337}
    338338
     
    353353
    354354        caca_set_color_ansi($cv, caca_rand(0, 16), caca_rand(0, 16));
    355         caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, '#');
     355        caca_fill_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#'));
    356356
    357357        caca_set_color_ansi($cv, caca_rand(0, 16), CACA_BLACK);
     
    359359                caca_draw_thin_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc);
    360360        else if ($outline == 1)
    361                 caca_draw_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, '#');
     361                caca_draw_triangle($cv, $xa, $ya, $xb, $yb, $xc, $yc, ord('#'));
    362362}
    363363
  • libcaca/trunk/caca-php/examples/polyline.php

    r3131 r3132  
    11#!/usr/bin/php5
    22<?php
     3
     4function transform($tbl, $tx, $ty, $sx, $sy) {
     5        $result = array();
     6        foreach($tbl as $pt)
     7                $result[] = array($pt[0] * $sx + $tx, $pt[1] * $sy + $ty);
     8        return $result;
     9}
    310
    411$canvas = caca_create_canvas(0, 0);
     
    2229);
    2330
    24 function transform($tbl, $tx, $ty, $sx, $sy) {
    25         $result = array();
    26         foreach($tbl as $pt)
    27                 $result[] = array($pt[0] * $sx + $tx, $pt[1] * $sy + $ty);
    28         return $result;
    29 }
    30 
    3131for ($i = 0; $i < 10; $i++) {
    3232        caca_set_color_ansi($canvas, 1 + (($color += 4) % 15), CACA_TRANSPARENT);
    3333        $scale = caca_rand(4, 10) / 10;
    34         $translate = array(caca_rand(-10, 60), caca_rand(-5, 20));
     34        $translate = array(caca_rand(-5, 55), caca_rand(-2, 25));
    3535        $pts = transform($tbl, $translate[0], $translate[1], $scale, $scale);
    3636        caca_draw_thin_polyline($canvas, $pts);
     
    4040caca_refresh_display($display);
    4141sleep(5);
     42
  • libcaca/trunk/caca-php/php_caca.c

    r3131 r3132  
    474474PHP_FUNCTION(caca_put_char) {
    475475        zval *_zval;
    476         char *str;
    477         long str_len, x, y = 0;
    478         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlls", &_zval, &x, &y, &str, &str_len) == FAILURE) {
    479                 RETURN_FALSE;
    480         }
    481         caca_canvas_t *canvas;
    482         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    483         if (str_len != 1) {
    484                 RETURN_FALSE;
    485         }
    486         RETURN_SUCCESS(caca_put_char(canvas, x, y, str[0]));
     476        long x, y, c;
     477        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlll", &_zval, &x, &y, &c) == FAILURE) {
     478                RETURN_FALSE;
     479        }
     480        caca_canvas_t *canvas;
     481        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     482        RETURN_SUCCESS(caca_put_char(canvas, x, y, c));
    487483}
    488484
     
    721717PHP_FUNCTION(caca_draw_line) {
    722718        zval *_zval;
    723         char *str;
    724         long str_len, xa, ya, xb, yb = 0;
    725         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllls", &_zval, &xa, &ya, &xb, &yb, &str, &str_len) == FAILURE) {
    726                 RETURN_FALSE;
    727         }
    728         caca_canvas_t *canvas;
    729         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    730         if (str_len != 1) {
    731                 RETURN_FALSE;
    732         }
    733         RETURN_SUCCESS(caca_draw_line(canvas, xa, ya, xb, yb, str[0]));
     719        long xa, ya, xb, yb, c;
     720        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllll", &_zval, &xa, &ya, &xb, &yb, &c) == FAILURE) {
     721                RETURN_FALSE;
     722        }
     723        caca_canvas_t *canvas;
     724        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     725        RETURN_SUCCESS(caca_draw_line(canvas, xa, ya, xb, yb, c));
    734726}
    735727
    736728PHP_FUNCTION(caca_draw_polyline) {
    737729        zval *zval_res, *zval_arr;
    738         char *c;
    739         long c_len;
    740 
    741         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ras", &zval_res, &zval_arr, &c, &c_len) == FAILURE) {
    742                 RETURN_FALSE;
    743         }
    744 
    745         if (c_len != 1) {
     730        long c;
     731
     732        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ral", &zval_res, &zval_arr, &c) == FAILURE) {
    746733                RETURN_FALSE;
    747734        }
     
    776763                }
    777764        }
    778         int res = caca_draw_polyline(canvas, tbl_x, tbl_y, tbl_count - 1, c[0]);
     765        int res = caca_draw_polyline(canvas, tbl_x, tbl_y, tbl_count - 1, c);
    779766        free(tbl_x);
    780767        free(tbl_y);
     
    836823PHP_FUNCTION(caca_draw_circle) {
    837824        zval *_zval;
    838         char *str;
    839         long str_len, x, y, r = 0;
    840         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllls", &_zval, &x, &y, &r, &str, &str_len) == FAILURE) {
    841                 RETURN_FALSE;
    842         }
    843         caca_canvas_t *canvas;
    844         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    845         if (str_len != 1) {
    846                 RETURN_FALSE;
    847         }
    848         RETURN_SUCCESS(caca_draw_circle(canvas, x, y, r, str[0]));
     825        long x, y, r, c;
     826        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllll", &_zval, &x, &y, &r, &c) == FAILURE) {
     827                RETURN_FALSE;
     828        }
     829        caca_canvas_t *canvas;
     830        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     831        RETURN_SUCCESS(caca_draw_circle(canvas, x, y, r, c));
    849832}
    850833
    851834PHP_FUNCTION(caca_draw_ellipse) {
    852835        zval *_zval;
    853         char *str;
    854         long str_len, xa, ya, xb, yb = 0;
    855         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllls", &_zval, &xa, &ya, &xb, &yb, &str, &str_len) == FAILURE) {
    856                 RETURN_FALSE;
    857         }
    858         caca_canvas_t *canvas;
    859         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    860         if (str_len != 1) {
    861                 RETURN_FALSE;
    862         }
    863         RETURN_SUCCESS(caca_draw_ellipse(canvas, xa, ya, xb, yb, str[0]));
     836        long xa, ya, xb, yb, c = 0;
     837        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllll", &_zval, &xa, &ya, &xb, &yb, &c) == FAILURE) {
     838                RETURN_FALSE;
     839        }
     840        caca_canvas_t *canvas;
     841        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     842        RETURN_SUCCESS(caca_draw_ellipse(canvas, xa, ya, xb, yb, c));
    864843}
    865844
     
    877856PHP_FUNCTION(caca_fill_ellipse) {
    878857        zval *_zval;
    879         char *str;
    880         long str_len, xa, ya, xb, yb = 0;
    881         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllls", &_zval, &xa, &ya, &xb, &yb, &str, &str_len) == FAILURE) {
    882                 RETURN_FALSE;
    883         }
    884         caca_canvas_t *canvas;
    885         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    886         if (str_len != 1) {
    887                 RETURN_FALSE;
    888         }
    889         RETURN_SUCCESS(caca_fill_ellipse(canvas, xa, ya, xb, yb, str[0]));
     858        long xa, ya, xb, yb, c;
     859        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllll", &_zval, &xa, &ya, &xb, &yb, &c) == FAILURE) {
     860                RETURN_FALSE;
     861        }
     862        caca_canvas_t *canvas;
     863        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     864        RETURN_SUCCESS(caca_fill_ellipse(canvas, xa, ya, xb, yb, c));
    890865}
    891866
    892867PHP_FUNCTION(caca_draw_box) {
    893868        zval *_zval;
    894         char *str;
    895         long str_len, xa, ya, xb, yb = 0;
    896         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllls", &_zval, &xa, &ya, &xb, &yb, &str, &str_len) == FAILURE) {
    897                 RETURN_FALSE;
    898         }
    899         caca_canvas_t *canvas;
    900         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    901         if (str_len != 1) {
    902                 RETURN_FALSE;
    903         }
    904         RETURN_SUCCESS(caca_draw_box(canvas, xa, ya, xb, yb, str[0]));
     869        long xa, ya, xb, yb, c;
     870        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllll", &_zval, &xa, &ya, &xb, &yb, &c) == FAILURE) {
     871                RETURN_FALSE;
     872        }
     873        caca_canvas_t *canvas;
     874        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     875        RETURN_SUCCESS(caca_draw_box(canvas, xa, ya, xb, yb, c));
    905876}
    906877
     
    918889PHP_FUNCTION(caca_draw_cp437_box) {
    919890        zval *_zval;
    920         long xa, ya, xb, yb = 0;
     891        long xa, ya, xb, yb;
    921892        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllll", &_zval, &xa, &ya, &xb, &yb) == FAILURE) {
    922893                RETURN_FALSE;
     
    929900PHP_FUNCTION(caca_fill_box) {
    930901        zval *_zval;
    931         char *str;
    932         long str_len, xa, ya, xb, yb = 0;
    933         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllls", &_zval, &xa, &ya, &xb, &yb, &str, &str_len) == FAILURE) {
    934                 RETURN_FALSE;
    935         }
    936         caca_canvas_t *canvas;
    937         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    938         if (str_len != 1) {
    939                 RETURN_FALSE;
    940         }
    941         RETURN_SUCCESS(caca_fill_box(canvas, xa, ya, xb, yb, str[0]));
     902        long xa, ya, xb, yb, c;
     903        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllll", &_zval, &xa, &ya, &xb, &yb, &c) == FAILURE) {
     904                RETURN_FALSE;
     905        }
     906        caca_canvas_t *canvas;
     907        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     908        RETURN_SUCCESS(caca_fill_box(canvas, xa, ya, xb, yb, c));
    942909}
    943910
    944911PHP_FUNCTION(caca_draw_triangle) {
    945912        zval *_zval;
    946         char *str;
    947         long str_len, xa, ya, xb, yb, xc, yc = 0;
    948         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllllls", &_zval, &xa, &ya, &xb, &yb, &xc, &yc, &str, &str_len) == FAILURE) {
    949                 RETURN_FALSE;
    950         }
    951         caca_canvas_t *canvas;
    952         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    953         if (str_len != 1) {
    954                 RETURN_FALSE;
    955         }
    956         RETURN_SUCCESS(caca_draw_triangle(canvas, xa, ya, xb, yb, xc, yc, str[0]));
     913        long xa, ya, xb, yb, xc, yc, c;
     914        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllllll", &_zval, &xa, &ya, &xb, &yb, &xc, &yc, &c) == FAILURE) {
     915                RETURN_FALSE;
     916        }
     917        caca_canvas_t *canvas;
     918        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     919        RETURN_SUCCESS(caca_draw_triangle(canvas, xa, ya, xb, yb, xc, yc, c));
    957920}
    958921
     
    970933PHP_FUNCTION(caca_fill_triangle) {
    971934        zval *_zval;
    972         char *str;
    973         long str_len, xa, ya, xb, yb, xc, yc = 0;
    974         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllllls", &_zval, &xa, &ya, &xb, &yb, &xc, &yc, &str, &str_len) == FAILURE) {
    975                 RETURN_FALSE;
    976         }
    977         caca_canvas_t *canvas;
    978         ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
    979         if (str_len != 1) {
    980                 RETURN_FALSE;
    981         }
    982         RETURN_SUCCESS(caca_fill_triangle(canvas, xa, ya, xb, yb, xc, yc, str[0]));
     935        long xa, ya, xb, yb, xc, yc, c = 0;
     936        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlllllll", &_zval, &xa, &ya, &xb, &yb, &xc, &yc, &c) == FAILURE) {
     937                RETURN_FALSE;
     938        }
     939        caca_canvas_t *canvas;
     940        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas);
     941        RETURN_SUCCESS(caca_fill_triangle(canvas, xa, ya, xb, yb, xc, yc, c));
    983942}
    984943
Note: See TracChangeset for help on using the changeset viewer.