[php-directfb-cvs] PHP-DirectFB/src isurface.c,1.4,1.5 ivideoprovider.c,1.2,1.3 php_directfb.c,1.8,1
Status: Pre-Alpha
Brought to you by:
klan
From: Claudio C. <kl...@us...> - 2004-12-29 21:28:17
|
Update of /cvsroot/php-directfb/PHP-DirectFB/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1142/src Modified Files: isurface.c ivideoprovider.c php_directfb.c php_directfb.h Log Message: Fixed BUG related to preallocated sub-surfaces. Preparing for first alpha release. Index: php_directfb.h =================================================================== RCS file: /cvsroot/php-directfb/PHP-DirectFB/src/php_directfb.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- php_directfb.h 15 Nov 2004 15:06:18 -0000 1.4 +++ php_directfb.h 29 Dec 2004 21:28:08 -0000 1.5 @@ -216,7 +216,19 @@ RETURN_FALSE; \ } \ } - + +#define DIRECTFB_WRAPPER_ADDREF( obj ) \ +{ \ + zval **tmp; \ + if (zend_hash_index_find( Z_OBJPROP_P( obj ), 0, (void**) &tmp ) != SUCCESS) { \ + php_error( E_WARNING, "object was destroyed" ); \ + dfb_errno = DFB_DESTROYED; \ + RETURN_FALSE; \ + } \ + zend_list_addref( Z_LVAL_PP( tmp ) ); \ +} + + #define DIRECTFB_GET_INTERFACE( obj, iface, thiz ) \ { \ DirectFB_wrp *wrp = NULL; \ Index: isurface.c =================================================================== RCS file: /cvsroot/php-directfb/PHP-DirectFB/src/isurface.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- isurface.c 15 Nov 2004 15:06:18 -0000 1.4 +++ isurface.c 29 Dec 2004 21:28:08 -0000 1.5 @@ -885,6 +885,7 @@ IDirectFBSurface *sub_surface = NULL; DFBRectangle rect; zval *r = NULL; + DirectFB_wrp *wrapper = NULL; DIRECTFB_GET_THIS( surface ); @@ -901,6 +902,10 @@ if (!sub_surface) RETURN_NULL(); + DIRECTFB_GET_WRAPPER( getThis(), wrapper ); + if (wrapper->pdata) /* preallocated surface */ + DIRECTFB_WRAPPER_ADDREF( getThis() ); + DIRECTFB_RETURN_INTERFACE( IDirectFBSurface, sub_surface, NULL ); } Index: php_directfb.c =================================================================== RCS file: /cvsroot/php-directfb/PHP-DirectFB/src/php_directfb.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- php_directfb.c 8 Dec 2004 21:21:47 -0000 1.8 +++ php_directfb.c 29 Dec 2004 21:28:08 -0000 1.9 @@ -160,6 +160,7 @@ DIRECTFB_REGISTER_DEF( DSECONF_MIXER ); DIRECTFB_REGISTER_DEF( DSECONF_OUT_SIGNALS ); DIRECTFB_REGISTER_DEF( DSECONF_SCANMODE ); + DIRECTFB_REGISTER_DEF( DSECONF_TEST_COLOR ); DIRECTFB_REGISTER_DEF( DSECONF_ALL ); /* DFBScreenEncoderTestPicture */ DIRECTFB_REGISTER_DEF( DSETP_OFF ); @@ -189,6 +190,7 @@ DIRECTFB_REGISTER_DEF( DSOS_YC ); DIRECTFB_REGISTER_DEF( DSOS_CVBS ); DIRECTFB_REGISTER_DEF( DSOS_RGB ); + DIRECTFB_REGISTER_DEF( DSOS_YCBCR ); /* DFBScreenOutputConfigFlags */ DIRECTFB_REGISTER_DEF( DSOCONF_ENCODER ); DIRECTFB_REGISTER_DEF( DSOCONF_SIGNALS ); @@ -294,6 +296,7 @@ DIRECTFB_REGISTER_DEF( DSFLIP_WAIT ); DIRECTFB_REGISTER_DEF( DSFLIP_BLIT ); DIRECTFB_REGISTER_DEF( DSFLIP_ONSYNC ); + DIRECTFB_REGISTER_DEF( DSFLIP_PIPELINE ); DIRECTFB_REGISTER_DEF( DSFLIP_WAITFORSYNC ); /* DFBSurfaceBlendFunction */ DIRECTFB_REGISTER_DEF( DSBF_ZERO ); Index: ivideoprovider.c =================================================================== RCS file: /cvsroot/php-directfb/PHP-DirectFB/src/ivideoprovider.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ivideoprovider.c 15 Nov 2004 15:06:18 -0000 1.2 +++ ivideoprovider.c 29 Dec 2004 21:28:08 -0000 1.3 @@ -63,7 +63,7 @@ { IDirectFBSurface *surface = (IDirectFBSurface*) data; - surface->Flip( surface, NULL, DSFLIP_WAITFORSYNC ); + surface->Flip( surface, NULL, DSFLIP_ONSYNC ); return 0; } |