Changeset 3101


Ignore:
Timestamp:
10/25/08 13:26:15 (5 years ago)
Author:
nico
Message:
  • Add php binding for 8 new caca's functions
Location:
libcaca/trunk/caca-php
Files:
2 edited

Legend:

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

    r3089 r3101  
    22<? 
    33 
    4 echo caca_get_version()."\n"; 
     4echo caca_put_str()."\n"; 
  • libcaca/trunk/caca-php/php_caca.c

    r3094 r3101  
    315315        ZEND_FETCH_RESOURCE(event, caca_event_t*, &_zval, -1, PHP_CACA_EVENT_RES_NAME, le_caca_event);  
    316316 
     317#define RETURN_CHAR(c) \ 
     318        char *str = emalloc(2); \ 
     319        str[0] = c; \ 
     320        str[1] = '\0'; \ 
     321        RETURN_STRING(str, 0); 
     322 
     323 
    317324//-------CACA'S FUNCTIONS----------------// 
    318325 
     
    332339 
    333340PHP_FUNCTION(caca_set_canvas_size) { 
     341        zval *_zval; 
     342        long width, height = 0; 
     343        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rll", &_zval, &width, &height) == FAILURE) { 
     344                RETURN_FALSE; 
     345        } 
     346        caca_canvas_t *canvas; 
     347        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     348        RETURN_BOOL(caca_set_canvas_size(canvas, width, height) == 0); 
    334349} 
    335350 
     
    376391                RETURN_FALSE; 
    377392        } 
     393 
    378394        caca_canvas_t *canvas; 
    379395        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     
    394410 
    395411PHP_FUNCTION(caca_put_char) { 
     412        zval *_zval; 
     413        long x, y, c = 0; 
     414        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlll", &_zval, &x, &y, &c) == FAILURE) { 
     415                RETURN_FALSE; 
     416        } 
     417 
     418        caca_canvas_t *canvas; 
     419        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     420        RETURN_BOOL(caca_put_char(canvas, x, y, c) == 0); 
    396421} 
    397422 
    398423PHP_FUNCTION(caca_get_char) { 
     424        zval *_zval; 
     425        long x, y = 0; 
     426        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rll", &_zval, &x, &y) == FAILURE) { 
     427                RETURN_FALSE; 
     428        } 
     429 
     430        caca_canvas_t *canvas; 
     431        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     432        RETURN_CHAR(caca_get_char(canvas, x, y)); 
    399433} 
    400434 
    401435PHP_FUNCTION(caca_put_str) { 
     436        zval *_zval; 
     437        char *str; 
     438        long x, y, str_len = 0; 
     439        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlls", &_zval, &x, &y, &str, &str_len) == FAILURE) { 
     440                RETURN_FALSE; 
     441        } 
     442 
     443        caca_canvas_t *canvas; 
     444        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     445        RETURN_BOOL(caca_put_str(canvas, x, y, str) == 0); 
    402446} 
    403447 
     
    406450 
    407451PHP_FUNCTION(caca_clear_canvas) { 
     452        caca_canvas_t *canvas; 
     453        FETCH_CANVAS(canvas); 
     454        RETURN_LONG(caca_clear_canvas(canvas)); 
    408455} 
    409456 
    410457PHP_FUNCTION(caca_set_canvas_handle) { 
     458        zval *_zval; 
     459        long x, y = 0; 
     460        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rll", &_zval, &x, &y) == FAILURE) { 
     461                RETURN_FALSE; 
     462        } 
     463 
     464        caca_canvas_t *canvas; 
     465        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     466        RETURN_BOOL(caca_set_canvas_handle(canvas, x, y) == 0); 
    411467} 
    412468 
     
    424480 
    425481PHP_FUNCTION(caca_blit) { 
     482        zval *_zval1, *_zval2, *_zval3; 
     483        long x, y = 0; 
     484        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllrr", &_zval1, &x, &y, &_zval2, &_zval3) == FAILURE) { 
     485                RETURN_FALSE; 
     486        } 
     487 
     488        caca_canvas_t *dst, *src, *mask; 
     489        ZEND_FETCH_RESOURCE(dst, caca_canvas_t*, &_zval1, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     490        ZEND_FETCH_RESOURCE(src, caca_canvas_t*, &_zval2, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     491        ZEND_FETCH_RESOURCE(mask, caca_canvas_t*, &_zval3, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     492 
     493        RETURN_BOOL(caca_blit(dst, x, y, src, mask) == 0); 
    426494} 
    427495 
    428496PHP_FUNCTION(caca_set_canvas_boundaries) { 
     497        zval *_zval; 
     498        long x, y, width, height = 0; 
     499        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllll", &_zval, &x, &y, &width, &height) == FAILURE) { 
     500                RETURN_FALSE; 
     501        } 
     502 
     503        caca_canvas_t *canvas; 
     504        ZEND_FETCH_RESOURCE(canvas, caca_canvas_t*, &_zval, -1, PHP_CACA_CANVAS_RES_NAME, le_caca_canvas); 
     505        RETURN_BOOL(caca_set_canvas_boundaries(canvas, x, y, width, height) == 0); 
    429506} 
    430507 
Note: See TracChangeset for help on using the changeset viewer.