- Timestamp:
- Dec 13, 2012 6:02:35 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 82707
- Location:
- trunk/src/VBox
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_bufferobject.c
r42499 r44125 131 131 crPackBindBufferARB(target, buffer); 132 132 } 133 134 void PACKSPU_APIENTRY packspu_GenBuffersARB( GLsizei n, GLuint * buffer ) 135 { 136 GET_THREAD(thread); 137 int writeback = 1; 138 if (!CRPACKSPU_IS_WDDM_CRHGSMI() && !(pack_spu.thread[pack_spu.idxThreadInUse].netServer.conn->actual_network)) 139 { 140 crError( "packspu_GenBuffersARB doesn't work when there's no actual network involved!\nTry using the simplequery SPU in your chain!" ); 141 } 142 if (pack_spu.swap) 143 { 144 crPackGenBuffersARBSWAP( n, buffer, &writeback ); 145 } 146 else 147 { 148 crPackGenBuffersARB( n, buffer, &writeback ); 149 } 150 packspuFlush( (void *) thread ); 151 CRPACKSPU_WRITEBACK_WAIT(thread, writeback); 152 153 crStateRegBuffers(n, buffer); 154 } -
trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_framebuffer.c
r42499 r44125 98 98 return status; 99 99 } 100 101 void PACKSPU_APIENTRY packspu_GenFramebuffersEXT( GLsizei n, GLuint * framebuffers ) 102 { 103 GET_THREAD(thread); 104 int writeback = 1; 105 if (!CRPACKSPU_IS_WDDM_CRHGSMI() && !(pack_spu.thread[pack_spu.idxThreadInUse].netServer.conn->actual_network)) 106 { 107 crError( "packspu_GenFramebuffersEXT doesn't work when there's no actual network involved!\nTry using the simplequery SPU in your chain!" ); 108 } 109 if (pack_spu.swap) 110 { 111 crPackGenFramebuffersEXTSWAP( n, framebuffers, &writeback ); 112 } 113 else 114 { 115 crPackGenFramebuffersEXT( n, framebuffers, &writeback ); 116 } 117 packspuFlush( (void *) thread ); 118 CRPACKSPU_WRITEBACK_WAIT(thread, writeback); 119 120 crStateRegFramebuffers(n, framebuffers); 121 } 122 123 void PACKSPU_APIENTRY packspu_GenRenderbuffersEXT( GLsizei n, GLuint * renderbuffers ) 124 { 125 GET_THREAD(thread); 126 int writeback = 1; 127 if (!CRPACKSPU_IS_WDDM_CRHGSMI() && !(pack_spu.thread[pack_spu.idxThreadInUse].netServer.conn->actual_network)) 128 { 129 crError( "packspu_GenRenderbuffersEXT doesn't work when there's no actual network involved!\nTry using the simplequery SPU in your chain!" ); 130 } 131 if (pack_spu.swap) 132 { 133 crPackGenRenderbuffersEXTSWAP( n, renderbuffers, &writeback ); 134 } 135 else 136 { 137 crPackGenRenderbuffersEXT( n, renderbuffers, &writeback ); 138 } 139 packspuFlush( (void *) thread ); 140 CRPACKSPU_WRITEBACK_WAIT(thread, writeback); 141 142 crStateRegRenderbuffers(n, renderbuffers); 143 } -
trunk/src/VBox/Additions/common/crOpenGL/pack/packspu_special
r42499 r44125 120 120 CompressedTexSubImage2DARB 121 121 CompressedTexSubImage3DARB 122 GenFramebuffersEXT 123 GenRenderbuffersEXT 124 GenBuffersARB -
trunk/src/VBox/GuestHost/OpenGL/include/cr_hash.h
r37986 r44125 27 27 DECLEXPORT(void) crHashtableAdd( CRHashTable *h, unsigned long key, void *data ); 28 28 DECLEXPORT(GLuint) crHashtableAllocKeys( CRHashTable *h, GLsizei range ); 29 GLboolean crHashtableAllocRegisterKey( CRHashTable *h, GLuint key); 29 30 DECLEXPORT(void) crHashtableDelete( CRHashTable *h, unsigned long key, CRHashtableCallback deleteCallback ); 30 31 DECLEXPORT(void) crHashtableDeleteBlock( CRHashTable *h, unsigned long key, GLsizei range, CRHashtableCallback deleteFunc ); -
trunk/src/VBox/GuestHost/OpenGL/include/state/cr_bufferobject.h
r41057 r44125 64 64 DECLEXPORT(GLuint) STATE_APIENTRY crStateGetBufferHWID(GLuint id); 65 65 66 DECLEXPORT(void) crStateRegBuffers(GLsizei n, GLuint *buffers); 66 67 #ifdef __cplusplus 67 68 } -
trunk/src/VBox/GuestHost/OpenGL/include/state/cr_framebuffer.h
r43980 r44125 97 97 DECLEXPORT(GLuint) STATE_APIENTRY crStateRBOHWIDtoID(GLuint hwid); 98 98 99 DECLEXPORT(void) crStateRegFramebuffers(GLsizei n, GLuint *buffers); 100 DECLEXPORT(void) crStateRegRenderbuffers(GLsizei n, GLuint *buffers); 101 99 102 #ifdef IN_GUEST 100 103 DECLEXPORT(GLenum) STATE_APIENTRY crStateCheckFramebufferStatusEXT(GLenum target); -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_bufferobject.c
r44108 r44125 34 34 CRContext *g = GetCurrentContext(); 35 35 crStateGenNames(g, g->shared->buffersTable, n, buffers); 36 } 37 38 void crStateRegBuffers(GLsizei n, GLuint *buffers) 39 { 40 CRContext *g = GetCurrentContext(); 41 crStateRegNames(g, g->shared->buffersTable, n, buffers); 36 42 } 37 43 -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_framebuffer.c
r44108 r44125 44 44 CRContext *g = GetCurrentContext(); 45 45 crStateGenNames(g, g->shared->rbTable, n, buffers); 46 } 47 48 void crStateRegFramebuffers(GLsizei n, GLuint *buffers) 49 { 50 CRContext *g = GetCurrentContext(); 51 crStateRegNames(g, g->shared->fbTable, n, buffers); 52 } 53 54 void crStateRegRenderbuffers(GLsizei n, GLuint *buffers) 55 { 56 CRContext *g = GetCurrentContext(); 57 crStateRegNames(g, g->shared->rbTable, n, buffers); 46 58 } 47 59 -
trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_texture.c
r44108 r44125 619 619 crStateDeleteTextureObjectData(tobj); 620 620 crFree(tobj); 621 } 622 623 void crStateRegNames(CRContext *g, CRHashTable *table, GLsizei n, GLuint *names) 624 { 625 GLint i; 626 for (i = 0; i < n; i++) 627 { 628 if (names[i]) 629 { 630 GLboolean isNewKey = crHashtableAllocRegisterKey(table, names[i]); 631 CRASSERT(isNewKey); 632 } 633 else 634 crWarning("RegNames: requested to register a null name"); 635 } 621 636 } 622 637 -
trunk/src/VBox/GuestHost/OpenGL/util/hash.c
r37986 r44125 236 236 * Mark the given Id as being allocated. 237 237 */ 238 static voidcrHashIdPoolAllocId( CRHashIdPool *pool, GLuint id )238 static GLboolean crHashIdPoolAllocId( CRHashIdPool *pool, GLuint id ) 239 239 { 240 240 FreeElem *f; … … 267 267 f->next = newelem; 268 268 } 269 return ;269 return GL_TRUE; 270 270 } 271 271 f = f->next; … … 273 273 274 274 /* if we get here, the ID was already allocated - that's OK */ 275 return GL_FALSE; 275 276 } 276 277 … … 418 419 } 419 420 421 GLboolean crHashtableAllocRegisterKey( CRHashTable *h, GLuint key) 422 { 423 GLboolean fAllocated; 424 #ifdef CHROMIUM_THREADSAFE 425 crLockMutex(&h->mutex); 426 #endif 427 fAllocated = crHashIdPoolAllocId (h->idPool, key); 428 #ifdef CHROMIUM_THREADSAFE 429 crUnlockMutex(&h->mutex); 430 #endif 431 return fAllocated; 432 } 433 420 434 GLuint crHashtableAllocKeys( CRHashTable *h, GLsizei range) 421 435 { … … 427 441 #endif 428 442 res = crHashIdPoolAllocBlock (h->idPool, range); 443 #ifdef DEBUG_misha 444 Assert(res); 445 for (i = 0; i < range; ++i) 446 { 447 void *search = crHashtableSearch( h, res+i ); 448 Assert(!search); 449 } 450 #endif 429 451 #ifdef CHROMIUM_THREADSAFE 430 452 crUnlockMutex(&h->mutex); -
trunk/src/VBox/GuestHost/OpenGL/util/util.def
r15532 r44125 83 83 crHashtableNumElements 84 84 crHashtableWalk 85 crHashtableAllocRegisterKey 85 86 crAllocHashtable 86 87 crFreeHashtable
Note:
See TracChangeset
for help on using the changeset viewer.