[artoolkit-commits] artoolkit/lib/SRC/Gl gsub_lite.c,1.22,1.23
Optical marker tracking and overlay for augmented reality.
Brought to you by:
philip_lamb
From: Philip L. <phi...@us...> - 2007-01-18 22:50:31
|
Update of /cvsroot/artoolkit/artoolkit/lib/SRC/Gl In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv9787 Modified Files: gsub_lite.c Log Message: Optimise Mac video handling in ARvideo and ARgsub_lite. Index: gsub_lite.c =================================================================== RCS file: /cvsroot/artoolkit/artoolkit/lib/SRC/Gl/gsub_lite.c,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** gsub_lite.c 17 Nov 2006 03:34:42 -0000 1.22 --- gsub_lite.c 18 Jan 2007 22:50:28 -0000 1.23 *************** *** 152,168 **** // ============================================================================ - // It'd be nice if we could wrap these in accessor functions! // These items relate to Apple's fast texture transfer support. ! //#define ARGL_USE_TEXTURE_RANGE // Commented out due to conflicts with GL_APPLE_ycbcr_422 extension. ! #if defined(__APPLE__) && defined(APPLE_TEXTURE_FAST_TRANSFER) ! int arglAppleClientStorage = TRUE; // TRUE | FALSE . ! # ifdef ARGL_USE_TEXTURE_RANGE ! int arglAppleTextureRange = TRUE; // TRUE | FALSE . ! GLuint arglAppleTextureRangeStorageHint = GL_STORAGE_SHARED_APPLE; // GL_STORAGE_PRIVATE_APPLE | GL_STORAGE_SHARED_APPLE | GL_STORAGE_CACHED_APPLE . # else ! int arglAppleTextureRange = FALSE; // TRUE | FALSE . ! GLuint arglAppleTextureRangeStorageHint = GL_STORAGE_PRIVATE_APPLE; // GL_STORAGE_PRIVATE_APPLE | GL_STORAGE_SHARED_APPLE | GL_STORAGE_CACHED_APPLE . ! # endif // ARGL_USE_TEXTURE_RANGE ! #endif // __APPLE__ && APPLE_TEXTURE_FAST_TRANSFER // ============================================================================ --- 152,165 ---- // ============================================================================ // These items relate to Apple's fast texture transfer support. ! #ifdef __APPLE__ ! # ifdef APPLE_TEXTURE_FAST_TRANSFER ! int arglAppleClientStorage = TRUE; ! int arglAppleTextureRange = TRUE; # else ! int arglAppleClientStorage = FALSE; ! int arglAppleTextureRange = FALSE; ! # endif // APPLE_TEXTURE_FAST_TRANSFER ! #endif // __APPLE__ // ============================================================================ *************** *** 269,280 **** // Now check that the renderer can accomodate a texture of this size. - #ifdef APPLE_TEXTURE_FAST_TRANSFER - // Can't use client storage or texture range. - # ifdef ARGL_USE_TEXTURE_RANGE - glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); - # endif // ARGL_USE_TEXTURE_RANGE - glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, FALSE); - #endif // APPLE_TEXTURE_FAST_TRANSFER glTexImage2D(GL_PROXY_TEXTURE_2D, 0, contextSettings->pixIntFormat, contextSettings->texturePow2SizeX, contextSettings->texturePow2SizeY, 0, contextSettings->pixFormat, contextSettings->pixType, NULL); glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0, GL_TEXTURE_INTERNAL_FORMAT, &format); --- 266,269 ---- *************** *** 343,351 **** #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE // Can't use client storage or texture range. glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); - # endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, FALSE); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 332,338 ---- *************** *** 435,443 **** glBindTexture(GL_TEXTURE_2D, contextSettings->texturePow2); #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE // Can't use client storage or texture range. glTextureRangeAPPLE(GL_TEXTURE_2D, 0, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); - #endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, FALSE); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 422,428 ---- *************** *** 534,546 **** #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, arglAppleTextureRangeStorageHint); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } - #endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 519,529 ---- #ifdef APPLE_TEXTURE_FAST_TRANSFER if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_SHARED_APPLE); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER *************** *** 610,622 **** glBindTexture(GL_TEXTURE_RECTANGLE, contextSettings->textureRectangle); #ifdef APPLE_TEXTURE_FAST_TRANSFER - # ifdef ARGL_USE_TEXTURE_RANGE if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, arglAppleTextureRangeStorageHint); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } - #endif // ARGL_USE_TEXTURE_RANGE glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER --- 593,603 ---- glBindTexture(GL_TEXTURE_RECTANGLE, contextSettings->textureRectangle); #ifdef APPLE_TEXTURE_FAST_TRANSFER if (arglAppleTextureRange) { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, cparam->xsize * cparam->ysize * contextSettings->pixSize, image); ! glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_SHARED_APPLE); } else { glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE, 0, NULL); glTexParameteri(GL_TEXTURE_RECTANGLE, GL_TEXTURE_STORAGE_HINT_APPLE, GL_STORAGE_PRIVATE_APPLE); } glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, arglAppleClientStorage); #endif // APPLE_TEXTURE_FAST_TRANSFER |