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;
}
|