Changeset 78375 in vbox for trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
- Timestamp:
- May 3, 2019 9:51:02 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 130368
- Location:
- trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/presenter/server_presenter.cpp
r78264 r78375 975 975 976 976 crStateReleaseTexture(cr_server.MainContextInfo.pContext, pTobj); 977 978 979 crStateGlobalSharedRelease(); 977 crStateGlobalSharedRelease(&cr_server.StateTracker); 980 978 } 981 979 … … 1026 1024 } 1027 1025 1028 CRSharedState *pShared = crStateGlobalSharedAcquire( );1026 CRSharedState *pShared = crStateGlobalSharedAcquire(&cr_server.StateTracker); 1029 1027 if (!pShared) 1030 1028 { … … 1037 1035 { 1038 1036 LOG(("pTobj is null!")); 1039 crStateGlobalSharedRelease( );1037 crStateGlobalSharedRelease(&cr_server.StateTracker); 1040 1038 return NULL; 1041 1039 } … … 1043 1041 Assert(pTobj->id == idTexture); 1044 1042 1045 GLuint hwid = crStateGetTextureObjHWID( pTobj);1043 GLuint hwid = crStateGetTextureObjHWID(&cr_server.StateTracker, pTobj); 1046 1044 if (!hwid) 1047 1045 { 1048 1046 WARN(("hwId is null!")); 1049 crStateGlobalSharedRelease( );1047 crStateGlobalSharedRelease(&cr_server.StateTracker); 1050 1048 return NULL; 1051 1049 } … … 1061 1059 { 1062 1060 WARN(("crFbTexCreate failed!")); 1063 crStateGlobalSharedRelease( );1061 crStateGlobalSharedRelease(&cr_server.StateTracker); 1064 1062 return NULL; 1065 1063 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h
r78263 r78375 341 341 CRContext *pCurCtx = pCurCtxInfo ? pCurCtxInfo->pContext : NULL; 342 342 343 CRASSERT(pCurCtx == crStateGetCurrent( ));343 CRASSERT(pCurCtx == crStateGetCurrent(&cr_server.StateTracker)); 344 344 345 345 if (pCurrentMural) -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.cpp
r78263 r78375 46 46 } 47 47 48 crStateGenBuffersARB( n, local_buffers);48 crStateGenBuffersARB(&cr_server.StateTracker, n, local_buffers); 49 49 50 50 crServerReturnValue( local_buffers, n * sizeof(*local_buffers) ); … … 60 60 } 61 61 62 crStateDeleteBuffersARB( n, buffer );62 crStateDeleteBuffersARB(&cr_server.StateTracker, n, buffer ); 63 63 } 64 64 … … 101 101 crServerDispatchBindBufferARB(GLenum target, GLuint buffer) 102 102 { 103 crStateBindBufferARB( target, buffer);104 cr_server.head_spu->dispatch_table.BindBufferARB(target, crStateGetBufferHWID( buffer));103 crStateBindBufferARB(&cr_server.StateTracker, target, buffer); 104 cr_server.head_spu->dispatch_table.BindBufferARB(target, crStateGetBufferHWID(&cr_server.StateTracker, buffer)); 105 105 } 106 106 … … 110 110 /* since GenBuffersARB issued to host ogl only on bind + some other ops, the host drivers may not know about them 111 111 * so use state data*/ 112 GLboolean retval = crStateIsBufferARB( buffer);112 GLboolean retval = crStateIsBufferARB(&cr_server.StateTracker, buffer); 113 113 crServerReturnValue( &retval, sizeof(retval) ); 114 114 return retval; /* WILL PROBABLY BE IGNORED */ -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_clear.cpp
r78263 r78375 423 423 window = 0; 424 424 425 ctx = crStateGetCurrent( );425 ctx = crStateGetCurrent(&cr_server.StateTracker); 426 426 427 427 CRASSERT(cr_server.curClient && cr_server.curClient->currentMural == mural); … … 449 449 crServerDispatchFlush(void) 450 450 { 451 CRContext *ctx = crStateGetCurrent( );451 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 452 452 cr_server.head_spu->dispatch_table.Flush(); 453 453 … … 470 470 crServerDispatchFinish(void) 471 471 { 472 CRContext *ctx = crStateGetCurrent( );472 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 473 473 474 474 cr_server.head_spu->dispatch_table.Finish(); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_context.cpp
r78263 r78375 63 63 return -1; 64 64 } 65 cr_server.MainContextInfo.pContext = crStateCreateContext(&cr_server. limits, visualBits, NULL);65 cr_server.MainContextInfo.pContext = crStateCreateContext(&cr_server.StateTracker, &cr_server.limits, visualBits, NULL); 66 66 CRASSERT(cr_server.MainContextInfo.pContext); 67 67 cr_server.firstCallCreateContext = GL_FALSE; … … 114 114 if (pContextInfo->SpuContext < 0) { 115 115 crWarning("crServerDispatchCreateContext() failed."); 116 crStateEnableDiffOnMakeCurrent( GL_TRUE);116 crStateEnableDiffOnMakeCurrent(&cr_server.StateTracker, GL_TRUE); 117 117 cr_server.bUseMultipleContexts = GL_FALSE; 118 118 if (!fFirst) … … 121 121 else if (fFirst) 122 122 { 123 crStateEnableDiffOnMakeCurrent( GL_FALSE);123 crStateEnableDiffOnMakeCurrent(&cr_server.StateTracker, GL_FALSE); 124 124 } 125 125 } … … 132 132 * dispatch function pointers. 133 133 */ 134 newCtx = crStateCreateContextEx(&cr_server. limits, visualBits, NULL, internalID);134 newCtx = crStateCreateContextEx(&cr_server.StateTracker, &cr_server.limits, visualBits, NULL, internalID); 135 135 if (newCtx) { 136 crStateSetCurrentPointers( 136 crStateSetCurrentPointers(newCtx, &(cr_server.current) ); 137 137 crStateResetCurrentPointers(&(cr_server.current)); 138 138 retVal = preloadCtxID<0 ? (GLint)crHashtableAllocKeys( cr_server.contextTable, 1 ) : preloadCtxID; … … 214 214 crCtxInfo->currentMural = NULL; 215 215 crHashtableDelete(cr_server.contextTable, ctx, NULL); 216 crStateDestroyContext( crCtx);216 crStateDestroyContext(&cr_server.StateTracker, crCtx); 217 217 218 218 if (crCtxInfo->CreateInfo.pszDpyName) … … 306 306 * crStateSwitchPrepare restores the FBO state to its default values before the context window switch, 307 307 * while crStateSwitchPostprocess restores it back to the original values */ 308 oldCtx = crStateGetCurrent( );308 oldCtx = crStateGetCurrent(&cr_server.StateTracker); 309 309 if (oldMural && oldMural->fRedirected && crServerSupportRedirMuralFBO()) 310 310 { … … 335 335 336 336 /* This is a hack to force updating the 'current' attribs */ 337 crStateUpdateColorBits( );337 crStateUpdateColorBits(&cr_server.StateTracker); 338 338 339 339 if (ctx) 340 crStateSetCurrentPointers( 340 crStateSetCurrentPointers(ctx, &(cr_server.current) ); 341 341 342 342 /* check if being made current for first time, update viewport */ … … 387 387 388 388 /* This used to be earlier, after crStateUpdateColorBits() call */ 389 crStateMakeCurrent( ctx );389 crStateMakeCurrent(&cr_server.StateTracker, ctx ); 390 390 391 391 if (mural && mural->fRedirected && crServerSupportRedirMuralFBO()) -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_dispatch.py
r78190 r78375 37 37 print('void SERVER_DISPATCH_APIENTRY crServerDispatch%s(%s)' % ( func_name, apiutil.MakeDeclarationStringForDispatcher( params ) )) 38 38 print('{') 39 print('\tcrState%s(%s);' % (func_name, apiutil.MakeCallStringForDispatcher( params ) )) 39 if len(params) == 0: 40 print('\tcrState%s(&cr_server.StateTracker);' % (func_name)) 41 else: 42 print('\tcrState%s(&cr_server.StateTracker, %s);' % (func_name, apiutil.MakeCallStringForDispatcher( params ) )) 40 43 print('\tcr_server.head_spu->dispatch_table.%s(%s);' % (func_name, apiutil.MakeCallStringForDispatcher( params ) )) 41 44 print('}') -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_framebuffer.cpp
r78190 r78375 38 38 local_buffers = (GLuint *)crCalloc(n * sizeof(*local_buffers)); 39 39 40 crStateGenFramebuffersEXT( n, local_buffers);40 crStateGenFramebuffersEXT(&cr_server.StateTracker, n, local_buffers); 41 41 42 42 crServerReturnValue(local_buffers, n * sizeof(*local_buffers)); … … 58 58 local_buffers = (GLuint *)crCalloc(n * sizeof(*local_buffers)); 59 59 60 crStateGenRenderbuffersEXT( n, local_buffers);60 crStateGenRenderbuffersEXT(&cr_server.StateTracker, n, local_buffers); 61 61 62 62 crServerReturnValue(local_buffers, n * sizeof(*local_buffers)); … … 66 66 void SERVER_DISPATCH_APIENTRY crServerDispatchFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) 67 67 { 68 crStateFramebufferTexture1DEXT( target, attachment, textarget, texture, level);69 cr_server.head_spu->dispatch_table.FramebufferTexture1DEXT(target, attachment, textarget, crStateGetTextureHWID( texture), level);68 crStateFramebufferTexture1DEXT(&cr_server.StateTracker, target, attachment, textarget, texture, level); 69 cr_server.head_spu->dispatch_table.FramebufferTexture1DEXT(target, attachment, textarget, crStateGetTextureHWID(&cr_server.StateTracker, texture), level); 70 70 } 71 71 72 72 void SERVER_DISPATCH_APIENTRY crServerDispatchFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) 73 73 { 74 crStateFramebufferTexture2DEXT( target, attachment, textarget, texture, level);75 cr_server.head_spu->dispatch_table.FramebufferTexture2DEXT(target, attachment, textarget, crStateGetTextureHWID( texture), level);74 crStateFramebufferTexture2DEXT(&cr_server.StateTracker, target, attachment, textarget, texture, level); 75 cr_server.head_spu->dispatch_table.FramebufferTexture2DEXT(target, attachment, textarget, crStateGetTextureHWID(&cr_server.StateTracker, texture), level); 76 76 } 77 77 78 78 void SERVER_DISPATCH_APIENTRY crServerDispatchFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) 79 79 { 80 crStateFramebufferTexture3DEXT( target, attachment, textarget, texture, level, zoffset);81 cr_server.head_spu->dispatch_table.FramebufferTexture3DEXT(target, attachment, textarget, crStateGetTextureHWID( texture), level, zoffset);80 crStateFramebufferTexture3DEXT(&cr_server.StateTracker, target, attachment, textarget, texture, level, zoffset); 81 cr_server.head_spu->dispatch_table.FramebufferTexture3DEXT(target, attachment, textarget, crStateGetTextureHWID(&cr_server.StateTracker, texture), level, zoffset); 82 82 } 83 83 … … 87 87 GLint rfb = 0, dfb = 0; 88 88 #endif 89 crStateBindFramebufferEXT(target, framebuffer);89 crStateBindFramebufferEXT(&cr_server.StateTracker, target, framebuffer); 90 90 91 91 if (0==framebuffer) 92 92 { 93 CRContext *ctx = crStateGetCurrent( );93 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 94 94 if (ctx->buffer.drawBuffer == GL_FRONT || ctx->buffer.drawBuffer == GL_FRONT_LEFT || ctx->buffer.drawBuffer == GL_FRONT_RIGHT) 95 95 cr_server.curClient->currentMural->bFbDraw = GL_TRUE; … … 149 149 else 150 150 { 151 cr_server.head_spu->dispatch_table.BindFramebufferEXT(target, crStateGetFramebufferHWID( framebuffer));151 cr_server.head_spu->dispatch_table.BindFramebufferEXT(target, crStateGetFramebufferHWID(&cr_server.StateTracker, framebuffer)); 152 152 #ifdef DEBUG_misha 153 153 cr_server.head_spu->dispatch_table.GetIntegerv(GL_READ_FRAMEBUFFER_BINDING_EXT, &rfb); … … 155 155 if (GL_FRAMEBUFFER_EXT == target) 156 156 { 157 Assert(rfb == crStateGetFramebufferHWID( framebuffer));158 Assert(dfb == crStateGetFramebufferHWID( framebuffer));157 Assert(rfb == crStateGetFramebufferHWID(&cr_server.StateTracker, framebuffer)); 158 Assert(dfb == crStateGetFramebufferHWID(&cr_server.StateTracker, framebuffer)); 159 159 } 160 160 else if (GL_READ_FRAMEBUFFER_EXT == target) 161 161 { 162 Assert(rfb == crStateGetFramebufferHWID( framebuffer));162 Assert(rfb == crStateGetFramebufferHWID(&cr_server.StateTracker, framebuffer)); 163 163 } 164 164 else if (GL_DRAW_FRAMEBUFFER_EXT == target) 165 165 { 166 Assert(dfb == crStateGetFramebufferHWID( framebuffer));166 Assert(dfb == crStateGetFramebufferHWID(&cr_server.StateTracker, framebuffer)); 167 167 } 168 168 else … … 176 176 void SERVER_DISPATCH_APIENTRY crServerDispatchBindRenderbufferEXT(GLenum target, GLuint renderbuffer) 177 177 { 178 crStateBindRenderbufferEXT( target, renderbuffer);179 cr_server.head_spu->dispatch_table.BindRenderbufferEXT(target, crStateGetRenderbufferHWID( renderbuffer));178 crStateBindRenderbufferEXT(&cr_server.StateTracker, target, renderbuffer); 179 cr_server.head_spu->dispatch_table.BindRenderbufferEXT(target, crStateGetRenderbufferHWID(&cr_server.StateTracker, renderbuffer)); 180 180 } 181 181 … … 188 188 } 189 189 190 crStateDeleteFramebuffersEXT( n, framebuffers);190 crStateDeleteFramebuffersEXT(&cr_server.StateTracker, n, framebuffers); 191 191 } 192 192 … … 199 199 } 200 200 201 crStateDeleteRenderbuffersEXT( n, renderbuffers);201 crStateDeleteRenderbuffersEXT(&cr_server.StateTracker, n, renderbuffers); 202 202 } 203 203 … … 205 205 crServerDispatchFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) 206 206 { 207 crStateFramebufferRenderbufferEXT( target, attachment, renderbuffertarget, renderbuffer);208 cr_server.head_spu->dispatch_table.FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, crStateGetRenderbufferHWID( renderbuffer));207 crStateFramebufferRenderbufferEXT(&cr_server.StateTracker, target, attachment, renderbuffertarget, renderbuffer); 208 cr_server.head_spu->dispatch_table.FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, crStateGetRenderbufferHWID(&cr_server.StateTracker, renderbuffer)); 209 209 } 210 210 … … 214 214 GLint local_params[1]; 215 215 (void) params; 216 crStateGetFramebufferAttachmentParameterivEXT( target, attachment, pname, local_params);216 crStateGetFramebufferAttachmentParameterivEXT(&cr_server.StateTracker, target, attachment, pname, local_params); 217 217 218 218 crServerReturnValue(&(local_params[0]), 1*sizeof(GLint)); … … 223 223 /* since GenFramebuffers/Renderbuffers issued to host ogl only on bind + some other ops, the host drivers may not know about them 224 224 * so use state data*/ 225 GLboolean retval = crStateIsFramebufferEXT( framebuffer);225 GLboolean retval = crStateIsFramebufferEXT(&cr_server.StateTracker, framebuffer); 226 226 crServerReturnValue( &retval, sizeof(retval) ); 227 227 return retval; /* WILL PROBABLY BE IGNORED */ … … 232 232 /* since GenFramebuffers/Renderbuffers issued to host ogl only on bind + some other ops, the host drivers may not know about them 233 233 * so use state data*/ 234 GLboolean retval = crStateIsRenderbufferEXT( renderbuffer);234 GLboolean retval = crStateIsRenderbufferEXT(&cr_server.StateTracker, renderbuffer); 235 235 crServerReturnValue( &retval, sizeof(retval) ); 236 236 return retval; /* WILL PROBABLY BE IGNORED */ -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_gentextures.cpp
r78190 r78375 31 31 } 32 32 33 crStateGenTextures( n, local_textures);33 crStateGenTextures(&cr_server.StateTracker, n, local_textures); 34 34 35 35 crServerReturnValue(local_textures, n*sizeof(*local_textures)); … … 112 112 { 113 113 GLuint tID = crServerTranslateProgramID(local_progs[i]); 114 while (crStateIsProgramARB( tID))114 while (crStateIsProgramARB(&cr_server.StateTracker, tID)) 115 115 { 116 116 cr_server.head_spu->dispatch_table.GenProgramsARB(1, &tID); … … 138 138 } 139 139 140 crStateCopyTexImage2D( target, level, internalFormat, x, y, width, height, border);140 crStateCopyTexImage2D(&cr_server.StateTracker, target, level, internalFormat, x, y, width, height, border); 141 141 cr_server.head_spu->dispatch_table.CopyTexImage2D(target, level, internalFormat, x, y, width, height, border); 142 142 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_get.py
r78105 r78375 138 138 if func_name in convert_bufferid: 139 139 print('\tif (pname==GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB){') 140 print('\t\tlocal_params[0]=(%s)crStateBufferHWIDtoID( (GLint)local_params[0]);' % (local_argtype))140 print('\t\tlocal_params[0]=(%s)crStateBufferHWIDtoID(&cr_server.StateTracker, (GLint)local_params[0]);' % (local_argtype)) 141 141 print('\t}') 142 142 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_getpixelmap.cpp
r78190 r78375 64 64 { 65 65 #ifdef CR_ARB_pixel_buffer_object 66 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))66 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 67 67 { 68 68 GLvoid *pbo_offset; … … 91 91 { 92 92 #ifdef CR_ARB_pixel_buffer_object 93 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))93 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 94 94 { 95 95 GLvoid *pbo_offset; … … 118 118 { 119 119 #ifdef CR_ARB_pixel_buffer_object 120 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))120 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 121 121 { 122 122 GLvoid *pbo_offset; -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_getshaders.cpp
r78263 r78375 52 52 } 53 53 54 cr_server.head_spu->dispatch_table.GetActiveAttrib(crStateGetProgramHWID( program), index, bufSize, &pLocal->length, &pLocal->size, &pLocal->type, (char*)&pLocal[1]);54 cr_server.head_spu->dispatch_table.GetActiveAttrib(crStateGetProgramHWID(&cr_server.StateTracker, program), index, bufSize, &pLocal->length, &pLocal->size, &pLocal->type, (char*)&pLocal[1]); 55 55 crServerReturnValue(pLocal, pLocal->length+1+sizeof(crGetActive_t)); 56 56 crFree(pLocal); … … 74 74 } 75 75 76 cr_server.head_spu->dispatch_table.GetActiveUniform(crStateGetProgramHWID( program), index, bufSize, &pLocal->length, &pLocal->size, &pLocal->type, (char*)&pLocal[1]);76 cr_server.head_spu->dispatch_table.GetActiveUniform(crStateGetProgramHWID(&cr_server.StateTracker, program), index, bufSize, &pLocal->length, &pLocal->size, &pLocal->type, (char*)&pLocal[1]); 77 77 crServerReturnValue(pLocal, pLocal->length+1+sizeof(crGetActive_t)); 78 78 crFree(pLocal); … … 96 96 /* initial (fallback )value */ 97 97 *pLocal = 0; 98 cr_server.head_spu->dispatch_table.GetAttachedShaders(crStateGetProgramHWID( program), maxCount, pLocal, (GLuint*)&pLocal[1]);98 cr_server.head_spu->dispatch_table.GetAttachedShaders(crStateGetProgramHWID(&cr_server.StateTracker, program), maxCount, pLocal, (GLuint*)&pLocal[1]); 99 99 100 100 { … … 103 103 104 104 for (i=0; i<*pLocal; ++i) 105 ids[i] = crStateGLSLShaderHWIDtoID( ids[i]);105 ids[i] = crStateGLSLShaderHWIDtoID(&cr_server.StateTracker, ids[i]); 106 106 } 107 107 … … 127 127 /* initial (fallback )value */ 128 128 *pLocal = 0; 129 cr_server.head_spu->dispatch_table.GetAttachedObjectsARB(crStateGetProgramHWID( containerObj), maxCount, pLocal, (VBoxGLhandleARB*)&pLocal[1]);129 cr_server.head_spu->dispatch_table.GetAttachedObjectsARB(crStateGetProgramHWID(&cr_server.StateTracker, containerObj), maxCount, pLocal, (VBoxGLhandleARB*)&pLocal[1]); 130 130 131 131 { … … 134 134 135 135 for (i=0; i<*pLocal; ++i) 136 ids[i] = crStateGLSLShaderHWIDtoID( ids[i]);136 ids[i] = crStateGLSLShaderHWIDtoID(&cr_server.StateTracker, ids[i]); 137 137 } 138 138 … … 162 162 *pLocal = 0; 163 163 /** @todo recheck*/ 164 hwid = crStateGetProgramHWID( obj);165 if (!hwid) hwid = crStateGetShaderHWID( obj);164 hwid = crStateGetProgramHWID(&cr_server.StateTracker, obj); 165 if (!hwid) hwid = crStateGetShaderHWID(&cr_server.StateTracker, obj); 166 166 cr_server.head_spu->dispatch_table.GetInfoLogARB(hwid, maxLength, pLocal, (char*)&pLocal[1]); 167 167 CRASSERT((*pLocal) <= maxLength); … … 187 187 /* initial (fallback )value */ 188 188 *pLocal = 0; 189 cr_server.head_spu->dispatch_table.GetShaderInfoLog(crStateGetShaderHWID( shader), bufSize, pLocal, (char*)&pLocal[1]);189 cr_server.head_spu->dispatch_table.GetShaderInfoLog(crStateGetShaderHWID(&cr_server.StateTracker, shader), bufSize, pLocal, (char*)&pLocal[1]); 190 190 crServerReturnValue(pLocal, pLocal[0]+sizeof(GLsizei)); 191 191 crFree(pLocal); … … 209 209 /* initial (fallback )value */ 210 210 *pLocal = 0; 211 cr_server.head_spu->dispatch_table.GetProgramInfoLog(crStateGetProgramHWID( program), bufSize, pLocal, (char*)&pLocal[1]);211 cr_server.head_spu->dispatch_table.GetProgramInfoLog(crStateGetProgramHWID(&cr_server.StateTracker, program), bufSize, pLocal, (char*)&pLocal[1]); 212 212 CRASSERT(pLocal[0] <= bufSize); 213 213 crServerReturnValue(pLocal, pLocal[0]+sizeof(GLsizei)); … … 232 232 /* initial (fallback )value */ 233 233 *pLocal = 0; 234 cr_server.head_spu->dispatch_table.GetShaderSource(crStateGetShaderHWID( shader), bufSize, pLocal, (char*)&pLocal[1]);234 cr_server.head_spu->dispatch_table.GetShaderSource(crStateGetShaderHWID(&cr_server.StateTracker, shader), bufSize, pLocal, (char*)&pLocal[1]); 235 235 CRASSERT(pLocal[0] <= bufSize); 236 236 crServerReturnValue(pLocal, pLocal[0]+sizeof(GLsizei)); … … 258 258 /* initial (fallback )value */ 259 259 *pLocal = 0; 260 crStateGLSLProgramCacheUniforms( program, maxcbData, pLocal, (char*)&pLocal[1]);260 crStateGLSLProgramCacheUniforms(&cr_server.StateTracker, program, maxcbData, pLocal, (char*)&pLocal[1]); 261 261 262 262 crServerReturnValue(pLocal, (*pLocal)+sizeof(GLsizei)); … … 284 284 /* initial (fallback )value */ 285 285 *pLocal = 0; 286 crStateGLSLProgramCacheAttribs( program, maxcbData, pLocal, (char*)&pLocal[1]);286 crStateGLSLProgramCacheAttribs(&cr_server.StateTracker, program, maxcbData, pLocal, (char*)&pLocal[1]); 287 287 288 288 crServerReturnValue(pLocal, (*pLocal)+sizeof(GLsizei)); … … 296 296 297 297 /** @todo check if index and location is the same*/ 298 cr_server.head_spu->dispatch_table.GetActiveUniform(crStateGetProgramHWID( program), location, 0, NULL, &size, &type, NULL);299 300 return crStateGetUniformSize( type);298 cr_server.head_spu->dispatch_table.GetActiveUniform(crStateGetProgramHWID(&cr_server.StateTracker, program), location, 0, NULL, &size, &type, NULL); 299 300 return crStateGetUniformSize(&cr_server.StateTracker, type); 301 301 } 302 302 … … 316 316 } 317 317 318 cr_server.head_spu->dispatch_table.GetUniformfv(crStateGetProgramHWID( program), location, pLocal);318 cr_server.head_spu->dispatch_table.GetUniformfv(crStateGetProgramHWID(&cr_server.StateTracker, program), location, pLocal); 319 319 320 320 crServerReturnValue(pLocal, size); … … 337 337 } 338 338 339 cr_server.head_spu->dispatch_table.GetUniformiv(crStateGetProgramHWID( program), location, pLocal);339 cr_server.head_spu->dispatch_table.GetUniformiv(crStateGetProgramHWID(&cr_server.StateTracker, program), location, pLocal); 340 340 341 341 crServerReturnValue(pLocal, size); … … 347 347 GLuint retval, hwVal; 348 348 hwVal = cr_server.head_spu->dispatch_table.CreateShader(type); 349 retval = crStateCreateShader( hwVal, type);349 retval = crStateCreateShader(&cr_server.StateTracker, hwVal, type); 350 350 crServerReturnValue(&retval, sizeof(retval)); 351 351 return retval; /* ignored */ … … 356 356 GLuint retval, hwVal; 357 357 hwVal = cr_server.head_spu->dispatch_table.CreateProgram(); 358 retval = crStateCreateProgram( hwVal);358 retval = crStateCreateProgram(&cr_server.StateTracker, hwVal); 359 359 crServerReturnValue(&retval, sizeof(retval)); 360 360 return retval; /* ignored */ … … 364 364 { 365 365 GLboolean retval; 366 retval = cr_server.head_spu->dispatch_table.IsShader(crStateGetShaderHWID( shader));366 retval = cr_server.head_spu->dispatch_table.IsShader(crStateGetShaderHWID(&cr_server.StateTracker, shader)); 367 367 crServerReturnValue(&retval, sizeof(retval)); 368 368 return retval; /* ignored */ … … 372 372 { 373 373 GLboolean retval; 374 retval = cr_server.head_spu->dispatch_table.IsProgram(crStateGetProgramHWID( program));374 retval = cr_server.head_spu->dispatch_table.IsProgram(crStateGetProgramHWID(&cr_server.StateTracker, program)); 375 375 crServerReturnValue(&retval, sizeof(retval)); 376 376 return retval; /* ignored */ … … 380 380 { 381 381 GLfloat local_params[1] = {0}; 382 GLuint hwid = crStateGetProgramHWID( obj);382 GLuint hwid = crStateGetProgramHWID(&cr_server.StateTracker, obj); 383 383 (void) params; 384 384 385 385 if (!hwid) 386 386 { 387 hwid = crStateGetShaderHWID( obj);387 hwid = crStateGetShaderHWID(&cr_server.StateTracker, obj); 388 388 if (!hwid) 389 389 { … … 399 399 { 400 400 GLint local_params[1] = {0}; 401 GLuint hwid = crStateGetProgramHWID( obj);401 GLuint hwid = crStateGetProgramHWID(&cr_server.StateTracker, obj); 402 402 if (!hwid) 403 403 { 404 hwid = crStateGetShaderHWID( obj);404 hwid = crStateGetShaderHWID(&cr_server.StateTracker, obj); 405 405 if (!hwid) 406 406 { -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_getteximage.cpp
r78190 r78375 21 21 22 22 #ifdef CR_ARB_pixel_buffer_object 23 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))23 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 24 24 { 25 25 GLvoid *pbo_offset; … … 104 104 105 105 #ifdef CR_ARB_pixel_buffer_object 106 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))106 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 107 107 { 108 108 GLvoid *pbo_offset; … … 136 136 { 137 137 #ifdef CR_ARB_pixel_buffer_object 138 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))138 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 139 139 { 140 140 GLvoid *pbo_offset; -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_glsl.cpp
r78190 r78375 32 32 GLenum err = cr_server.head_spu->dispatch_table.GetError(); 33 33 #endif 34 cr_server.head_spu->dispatch_table.ShaderSource(crStateGetShaderHWID( shader), count, string, length);34 cr_server.head_spu->dispatch_table.ShaderSource(crStateGetShaderHWID(&cr_server.StateTracker, shader), count, string, length); 35 35 #ifdef DEBUG_misha 36 36 err = cr_server.head_spu->dispatch_table.GetError(); … … 45 45 GLint iCompileStatus = GL_FALSE; 46 46 #endif 47 crStateCompileShader( shader);48 cr_server.head_spu->dispatch_table.CompileShader(crStateGetShaderHWID( shader));49 #ifdef DEBUG_misha 50 cr_server.head_spu->dispatch_table.GetShaderiv(crStateGetShaderHWID( shader), GL_COMPILE_STATUS, &iCompileStatus);47 crStateCompileShader(&cr_server.StateTracker, shader); 48 cr_server.head_spu->dispatch_table.CompileShader(crStateGetShaderHWID(&cr_server.StateTracker, shader)); 49 #ifdef DEBUG_misha 50 cr_server.head_spu->dispatch_table.GetShaderiv(crStateGetShaderHWID(&cr_server.StateTracker, shader), GL_COMPILE_STATUS, &iCompileStatus); 51 51 Assert(iCompileStatus == GL_TRUE); 52 52 #endif … … 56 56 void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteShader(GLuint shader) 57 57 { 58 GLuint shaderHW = crStateGetShaderHWID( shader);59 crStateDeleteShader( shader);58 GLuint shaderHW = crStateGetShaderHWID(&cr_server.StateTracker, shader); 59 crStateDeleteShader(&cr_server.StateTracker, shader); 60 60 if (shaderHW) 61 61 cr_server.head_spu->dispatch_table.DeleteShader(shaderHW); … … 66 66 void SERVER_DISPATCH_APIENTRY crServerDispatchAttachShader(GLuint program, GLuint shader) 67 67 { 68 crStateAttachShader(program, shader); 69 cr_server.head_spu->dispatch_table.AttachShader(crStateGetProgramHWID(program), crStateGetShaderHWID(shader)); 68 crStateAttachShader(&cr_server.StateTracker, program, shader); 69 cr_server.head_spu->dispatch_table.AttachShader(crStateGetProgramHWID(&cr_server.StateTracker, program), 70 crStateGetShaderHWID(&cr_server.StateTracker, shader)); 70 71 } 71 72 72 73 void SERVER_DISPATCH_APIENTRY crServerDispatchDetachShader(GLuint program, GLuint shader) 73 74 { 74 crStateDetachShader(program, shader); 75 cr_server.head_spu->dispatch_table.DetachShader(crStateGetProgramHWID(program), crStateGetShaderHWID(shader)); 75 crStateDetachShader(&cr_server.StateTracker, program, shader); 76 cr_server.head_spu->dispatch_table.DetachShader(crStateGetProgramHWID(&cr_server.StateTracker, program), 77 crStateGetShaderHWID(&cr_server.StateTracker, shader)); 76 78 } 77 79 78 80 void SERVER_DISPATCH_APIENTRY crServerDispatchLinkProgram(GLuint program) 79 81 { 80 crStateLinkProgram( program);81 cr_server.head_spu->dispatch_table.LinkProgram(crStateGetProgramHWID( program));82 crStateLinkProgram(&cr_server.StateTracker, program); 83 cr_server.head_spu->dispatch_table.LinkProgram(crStateGetProgramHWID(&cr_server.StateTracker, program)); 82 84 CR_SERVER_DUMP_LINK_PROGRAM(program); 83 85 } … … 85 87 void SERVER_DISPATCH_APIENTRY crServerDispatchUseProgram(GLuint program) 86 88 { 87 crStateUseProgram( program);88 cr_server.head_spu->dispatch_table.UseProgram(crStateGetProgramHWID( program));89 crStateUseProgram(&cr_server.StateTracker, program); 90 cr_server.head_spu->dispatch_table.UseProgram(crStateGetProgramHWID(&cr_server.StateTracker, program)); 89 91 } 90 92 91 93 void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteProgram(GLuint program) 92 94 { 93 GLuint hwId = crStateGetProgramHWID( program);94 crStateDeleteProgram( program);95 GLuint hwId = crStateGetProgramHWID(&cr_server.StateTracker, program); 96 crStateDeleteProgram(&cr_server.StateTracker, program); 95 97 if (hwId) 96 98 cr_server.head_spu->dispatch_table.DeleteProgram(hwId); … … 101 103 void SERVER_DISPATCH_APIENTRY crServerDispatchValidateProgram(GLuint program) 102 104 { 103 crStateValidateProgram( program);104 cr_server.head_spu->dispatch_table.ValidateProgram(crStateGetProgramHWID( program));105 crStateValidateProgram(&cr_server.StateTracker, program); 106 cr_server.head_spu->dispatch_table.ValidateProgram(crStateGetProgramHWID(&cr_server.StateTracker, program)); 105 107 } 106 108 107 109 void SERVER_DISPATCH_APIENTRY crServerDispatchBindAttribLocation(GLuint program, GLuint index, const char * name) 108 110 { 109 crStateBindAttribLocation( program, index, name);110 cr_server.head_spu->dispatch_table.BindAttribLocation(crStateGetProgramHWID( program), index, name);111 crStateBindAttribLocation(&cr_server.StateTracker, program, index, name); 112 cr_server.head_spu->dispatch_table.BindAttribLocation(crStateGetProgramHWID(&cr_server.StateTracker, program), index, name); 111 113 } 112 114 113 115 void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteObjectARB(VBoxGLhandleARB obj) 114 116 { 115 GLuint hwid = crStateDeleteObjectARB( obj);117 GLuint hwid = crStateDeleteObjectARB(&cr_server.StateTracker, obj); 116 118 117 119 if (hwid) … … 124 126 { 125 127 GLint retval; 126 retval = cr_server.head_spu->dispatch_table.GetAttribLocation(crStateGetProgramHWID( program), name );128 retval = cr_server.head_spu->dispatch_table.GetAttribLocation(crStateGetProgramHWID(&cr_server.StateTracker, program), name ); 127 129 crServerReturnValue( &retval, sizeof(retval) ); 128 130 return retval; /* WILL PROBABLY BE IGNORED */ … … 135 137 if (pname==GL_PROGRAM_OBJECT_ARB) 136 138 { 137 retval = crStateGLSLProgramHWIDtoID( retval);139 retval = crStateGLSLProgramHWIDtoID(&cr_server.StateTracker, retval); 138 140 } 139 141 crServerReturnValue( &retval, sizeof(retval) ); … … 144 146 { 145 147 GLint retval; 146 retval = cr_server.head_spu->dispatch_table.GetUniformLocation(crStateGetProgramHWID( program), name);148 retval = cr_server.head_spu->dispatch_table.GetUniformLocation(crStateGetProgramHWID(&cr_server.StateTracker, program), name); 147 149 crServerReturnValue( &retval, sizeof(retval) ); 148 150 return retval; /* WILL PROBABLY BE IGNORED */ … … 153 155 GLint local_params[1] = {0}; 154 156 (void) params; 155 cr_server.head_spu->dispatch_table.GetProgramiv(crStateGetProgramHWID( program), pname, local_params);157 cr_server.head_spu->dispatch_table.GetProgramiv(crStateGetProgramHWID(&cr_server.StateTracker, program), pname, local_params); 156 158 crServerReturnValue( &(local_params[0]), 1*sizeof(GLint) ); 157 159 } … … 161 163 GLint local_params[1] = {0}; 162 164 (void) params; 163 cr_server.head_spu->dispatch_table.GetShaderiv( crStateGetShaderHWID( shader), pname, local_params );165 cr_server.head_spu->dispatch_table.GetShaderiv( crStateGetShaderHWID(&cr_server.StateTracker, shader), pname, local_params ); 164 166 crServerReturnValue( &(local_params[0]), 1*sizeof(GLint) ); 165 167 } … … 197 199 pLocalProgs[i] = crServerTranslateProgramID(programs[i]); 198 200 } 199 crStateDeleteProgramsARB( n, pLocalProgs);201 crStateDeleteProgramsARB(&cr_server.StateTracker, n, pLocalProgs); 200 202 cr_server.head_spu->dispatch_table.DeleteProgramsARB(n, pLocalProgs); 201 203 crFree(pLocalProgs); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_lists.cpp
r78190 r78375 64 64 65 65 list = TranslateListID( list ); 66 crStateNewList( list, mode );66 crStateNewList(&cr_server.StateTracker, list, mode ); 67 67 cr_server.head_spu->dispatch_table.NewList( list, mode ); 68 68 } … … 84 84 fbFbo = bbFbo = 0; 85 85 } 86 crStateQueryHWState( fbFbo, bbFbo);86 crStateQueryHWState(&cr_server.StateTracker, fbFbo, bbFbo); 87 87 } 88 88 } … … 90 90 void SERVER_DISPATCH_APIENTRY crServerDispatchEndList(void) 91 91 { 92 CRContext *g = crStateGetCurrent( );92 CRContext *g = crStateGetCurrent(&cr_server.StateTracker); 93 93 CRListsState *l = &(g->lists); 94 94 95 95 cr_server.head_spu->dispatch_table.EndList(); 96 crStateEndList( );96 crStateEndList(&cr_server.StateTracker); 97 97 98 98 #ifndef IN_GUEST … … 272 272 { 273 273 list = TranslateListID( list ); 274 crStateDeleteLists( list, range );274 crStateDeleteLists(&cr_server.StateTracker, list, range ); 275 275 cr_server.head_spu->dispatch_table.DeleteLists( list, range ); 276 276 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.cpp
r78263 r78375 51 51 */ 52 52 CRServer cr_server; 53 DECLHIDDEN(PCRStateTracker) g_pStateTracker; 53 54 54 55 int tearingdown = 0; /* can't be static */ … … 124 125 { 125 126 CRContextInfo *c = (CRContextInfo *) data; 126 crStateDestroyContext( c->pContext);127 crStateDestroyContext(&cr_server.StateTracker, c->pContext); 127 128 if (c->CreateInfo.pszDpyName) 128 129 crFree(c->CreateInfo.pszDpyName); … … 180 181 } 181 182 182 crStateSetCurrent( NULL);183 crStateSetCurrent(&cr_server.StateTracker, NULL); 183 184 184 185 cr_server.curClient = NULL; … … 218 219 if (!fContextsDeleted) 219 220 { 220 fOldEnableDiff = crStateEnableDiffOnMakeCurrent( GL_FALSE);221 fOldEnableDiff = crStateEnableDiffOnMakeCurrent(&cr_server.StateTracker, GL_FALSE); 221 222 if(cr_server.MainContextInfo.pContext) 222 crStateMakeCurrent( cr_server.MainContextInfo.pContext);223 crStateEnableDiffOnMakeCurrent( fOldEnableDiff);223 crStateMakeCurrent(&cr_server.StateTracker, cr_server.MainContextInfo.pContext); 224 crStateEnableDiffOnMakeCurrent(&cr_server.StateTracker, fOldEnableDiff); 224 225 } 225 226 … … 270 271 #endif 271 272 272 crStateDestroy( );273 crStateDestroy(&cr_server.StateTracker); 273 274 274 275 crNetTearDown(); … … 356 357 cr_server.programTable = crAllocHashtable(); 357 358 358 crStateInit(); 359 crStateInit(&cr_server.StateTracker); 360 g_pStateTracker = &cr_server.StateTracker; 359 361 360 362 crStateLimitsInit( &(cr_server.limits) ); … … 393 395 if (!cr_server.head_spu) 394 396 { 395 crStateDestroy( );397 crStateDestroy(&cr_server.StateTracker); 396 398 return GL_FALSE; 397 399 } … … 399 401 crServerInitDispatch(); 400 402 crServerInitTmpCtxDispatch(); 401 crStateDiffAPI( &(cr_server.head_spu->dispatch_table) );403 crStateDiffAPI(&cr_server.StateTracker, &(cr_server.head_spu->dispatch_table) ); 402 404 403 405 #ifdef VBOX_WITH_CRSERVER_DUMPER … … 410 412 411 413 /*Check for PBO support*/ 412 if (crStateGetCurrent( )->extensions.ARB_pixel_buffer_object)414 if (crStateGetCurrent(&cr_server.StateTracker)->extensions.ARB_pixel_buffer_object) 413 415 { 414 416 cr_server.bUsePBOForReadback=GL_TRUE; … … 1422 1424 crVBoxServerBuildSaveStateGlobal(&Data); 1423 1425 1424 rc = crStateSaveGlobals( pSSM);1426 rc = crStateSaveGlobals(&cr_server.StateTracker, pSSM); 1425 1427 AssertRCReturn(rc, rc); 1426 1428 … … 2084 2086 } 2085 2087 2086 rc = crStateLoadGlobals( pSSM, version);2088 rc = crStateLoadGlobals(&cr_server.StateTracker, pSSM, version); 2087 2089 AssertLogRelRCReturn(rc, rc); 2088 2090 … … 2604 2606 2605 2607 cr_server.head_spu->dispatch_table.MakeCurrent(0, 0, 0); 2606 crStateCleanupCurrent( );2608 crStateCleanupCurrent(&cr_server.StateTracker); 2607 2609 2608 2610 /* note: we need to clean all contexts, since otherwise renderspu leanup won't work, … … 2612 2614 { 2613 2615 cr_server.head_spu->dispatch_table.DestroyContext(cr_server.MainContextInfo.SpuContext); 2614 crStateDestroyContext( cr_server.MainContextInfo.pContext);2616 crStateDestroyContext(&cr_server.StateTracker, cr_server.MainContextInfo.pContext); 2615 2617 if (cr_server.MainContextInfo.CreateInfo.pszDpyName) 2616 2618 crFree(cr_server.MainContextInfo.CreateInfo.pszDpyName); … … 2630 2632 cr_server.currentMural = NULL; 2631 2633 2632 crStateDestroy( );2634 crStateDestroy(&cr_server.StateTracker); 2633 2635 // crStateCleanupCurrent(); 2634 2636 … … 2651 2653 2652 2654 // crStateSetCurrent(NULL); 2653 crStateInit( );2654 crStateDiffAPI( &(cr_server.head_spu->dispatch_table) );2655 crStateInit(&cr_server.StateTracker); 2656 crStateDiffAPI(&cr_server.StateTracker, &(cr_server.head_spu->dispatch_table) ); 2655 2657 2656 2658 CrPMgrEnable(); … … 3835 3837 } 3836 3838 3839 void crVBoxServerDetachThread(void) 3840 { 3841 crStateVBoxDetachThread(&cr_server.StateTracker); 3842 } 3843 3844 void crVBoxServerAttachThread(void) 3845 { 3846 crStateVBoxAttachThread(&cr_server.StateTracker); 3847 } 3848 3849 3837 3850 #endif -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_misc.cpp
r78263 r78375 328 328 switch (target) { 329 329 case GL_SHARE_CONTEXT_RESOURCES_CR: 330 crStateShareContext( value);330 crStateShareContext(&cr_server.StateTracker, value); 331 331 break; 332 332 case GL_RCUSAGE_TEXTURE_SET_CR: 333 crStateSetTextureUsed( value, GL_TRUE);333 crStateSetTextureUsed(&cr_server.StateTracker, value, GL_TRUE); 334 334 break; 335 335 case GL_RCUSAGE_TEXTURE_CLEAR_CR: 336 crStateSetTextureUsed( value, GL_FALSE);336 crStateSetTextureUsed(&cr_server.StateTracker, value, GL_FALSE); 337 337 break; 338 338 case GL_PIN_TEXTURE_SET_CR: 339 crStatePinTexture( value, GL_TRUE);339 crStatePinTexture(&cr_server.StateTracker, value, GL_TRUE); 340 340 break; 341 341 case GL_PIN_TEXTURE_CLEAR_CR: 342 crStatePinTexture( value, GL_FALSE);342 crStatePinTexture(&cr_server.StateTracker, value, GL_FALSE); 343 343 break; 344 344 case GL_SHARED_DISPLAY_LISTS_CR: … … 502 502 GLuint tID, fboID; 503 503 GLenum status; 504 CRContext *ctx = crStateGetCurrent( );504 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 505 505 506 506 gl->GenTextures(1, &tID); … … 601 601 GLint dRow; 602 602 GLuint pboId, sRow; 603 CRContext *ctx = crStateGetCurrent( );603 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 604 604 605 605 gl->GenBuffersARB(1, &pboId); … … 897 897 CR_BLITTER_CONTEXT Ctx; 898 898 CRMuralInfo *mural; 899 CRContext *ctx = crStateGetCurrent( );899 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 900 900 PVBOXVR_TEXTURE pDrawTex, pReadTex; 901 901 VBOXVR_TEXTURE DrawTex, ReadTex; … … 992 992 GLbitfield mask, GLenum filter) 993 993 { 994 CRContext *ctx = crStateGetCurrent( );994 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 995 995 bool fTryBlitter = false; 996 996 #ifdef CR_CHECK_BLITS … … 1274 1274 void SERVER_DISPATCH_APIENTRY crServerDispatchDrawBuffer( GLenum mode ) 1275 1275 { 1276 crStateDrawBuffer( mode );1277 1278 if (!crStateGetCurrent( )->framebufferobject.drawFB)1276 crStateDrawBuffer(&cr_server.StateTracker, mode ); 1277 1278 if (!crStateGetCurrent(&cr_server.StateTracker)->framebufferobject.drawFB) 1279 1279 { 1280 1280 if (mode == GL_FRONT || mode == GL_FRONT_LEFT || mode == GL_FRONT_RIGHT) … … 1362 1362 void SERVER_DISPATCH_APIENTRY crServerDispatchReadBuffer( GLenum mode ) 1363 1363 { 1364 crStateReadBuffer( mode );1364 crStateReadBuffer(&cr_server.StateTracker, mode ); 1365 1365 1366 1366 if (crServerIsRedirectedToFBO() 1367 1367 && cr_server.curClient->currentMural->aidFBOs[0] 1368 && !crStateGetCurrent( )->framebufferobject.readFB)1368 && !crStateGetCurrent(&cr_server.StateTracker)->framebufferobject.readFB) 1369 1369 { 1370 1370 CRMuralInfo *mural = cr_server.curClient->currentMural; … … 1433 1433 { 1434 1434 GLenum retval, err; 1435 CRContext *ctx = crStateGetCurrent( );1435 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 1436 1436 retval = ctx->error; 1437 1437 … … 1453 1453 crServerMakeTmpCtxCurrent( GLint window, GLint nativeWindow, GLint context ) 1454 1454 { 1455 CRContext *pCtx = crStateGetCurrent( );1455 CRContext *pCtx = crStateGetCurrent(&cr_server.StateTracker); 1456 1456 CRContext *pCurCtx = NULL; 1457 1457 GLuint idDrawFBO = 0, idReadFBO = 0; … … 1890 1890 GLvoid crServerSpriteCoordReplEnable(GLboolean fEnable) 1891 1891 { 1892 CRContext *g = crStateGetCurrent( );1892 CRContext *g = crStateGetCurrent(&cr_server.StateTracker); 1893 1893 CRTextureState *t = &(g->texture); 1894 1894 GLuint curTextureUnit = t->curTextureUnit; … … 1948 1948 void SERVER_DISPATCH_APIENTRY crServerDispatchEnd( void ) 1949 1949 { 1950 CRContext *g = crStateGetCurrent( );1950 CRContext *g = crStateGetCurrent(&cr_server.StateTracker); 1951 1951 GLenum mode = g->current.mode; 1952 1952 1953 crStateEnd( );1953 crStateEnd(&cr_server.StateTracker); 1954 1954 cr_server.head_spu->dispatch_table.End(); 1955 1955 … … 1963 1963 { 1964 1964 #ifdef DEBUG 1965 CRContext *ctx = crStateGetCurrent( );1965 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 1966 1966 SPUDispatchTable *gl = &cr_server.head_spu->dispatch_table; 1967 1967 … … 2012 2012 CR_SERVER_DUMP_DRAW_ENTER(); 2013 2013 2014 crStateBegin( mode);2014 crStateBegin(&cr_server.StateTracker, mode); 2015 2015 cr_server.head_spu->dispatch_table.Begin(mode); 2016 2016 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.cpp
r78263 r78375 477 477 if (cr_server.curClient && cr_server.curClient->currentMural == mural) 478 478 { 479 if (!crStateGetCurrent()->framebufferobject.drawFB) 479 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 480 481 if (!ctx->framebufferobject.drawFB) 480 482 { 481 483 cr_server.head_spu->dispatch_table.BindFramebufferEXT(GL_DRAW_FRAMEBUFFER, CR_SERVER_FBO_FOR_IDX(mural, mural->iCurDrawBuffer)); 482 484 } 483 if (!c rStateGetCurrent()->framebufferobject.readFB)485 if (!ctx->framebufferobject.readFB) 484 486 { 485 487 cr_server.head_spu->dispatch_table.BindFramebufferEXT(GL_READ_FRAMEBUFFER, CR_SERVER_FBO_FOR_IDX(mural, mural->iCurReadBuffer)); 486 488 } 487 489 488 c rStateGetCurrent()->buffer.width = 0;489 c rStateGetCurrent()->buffer.height = 0;490 ctx->buffer.width = 0; 491 ctx->buffer.height = 0; 490 492 } 491 493 } … … 494 496 if (cr_server.curClient && cr_server.curClient->currentMural == mural) 495 497 { 496 if (!crStateGetCurrent()->framebufferobject.drawFB) 498 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 499 500 if (!ctx->framebufferobject.drawFB) 497 501 { 498 502 cr_server.head_spu->dispatch_table.BindFramebufferEXT(GL_DRAW_FRAMEBUFFER, 0); 499 503 } 500 if (!c rStateGetCurrent()->framebufferobject.readFB)504 if (!ctx->framebufferobject.readFB) 501 505 { 502 506 cr_server.head_spu->dispatch_table.BindFramebufferEXT(GL_READ_FRAMEBUFFER, 0); 503 507 } 504 508 505 c rStateGetCurrent()->buffer.width = mural->width;506 c rStateGetCurrent()->buffer.height = mural->height;509 ctx->buffer.width = mural->width; 510 ctx->buffer.height = mural->height; 507 511 } 508 512 } … … 513 517 static void crServerCreateMuralFBO(CRMuralInfo *mural) 514 518 { 515 CRContext *ctx = crStateGetCurrent( );519 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 516 520 GLuint uid, i; 517 521 GLenum status; … … 540 544 /*Color texture*/ 541 545 542 if (crStateIsBufferBound( GL_PIXEL_UNPACK_BUFFER_ARB))546 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_UNPACK_BUFFER_ARB)) 543 547 { 544 548 gl->BindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0); … … 605 609 gl->BindFramebufferEXT(GL_READ_FRAMEBUFFER, uid); 606 610 607 if (crStateIsBufferBound( GL_PIXEL_UNPACK_BUFFER_ARB))611 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_UNPACK_BUFFER_ARB)) 608 612 { 609 613 gl->BindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, ctx->bufferobject.unpackBuffer->hwid); 610 614 } 611 615 612 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))616 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 613 617 { 614 618 gl->BindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, ctx->bufferobject.packBuffer->hwid); … … 825 829 void crServerMuralFBOSwapBuffers(CRMuralInfo *mural) 826 830 { 827 CRContext *ctx = crStateGetCurrent( );831 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 828 832 GLint iOldCurDrawBuffer = mural->iCurDrawBuffer; 829 833 GLint iOldCurReadBuffer = mural->iCurReadBuffer; -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_projmatrix.cpp
r78263 r78375 44 44 const GLenum matMode = cr_server.curClient->currentCtxInfo->pContext->transform.matrixMode; 45 45 46 crStateLoadMatrixf( m );46 crStateLoadMatrixf(&cr_server.StateTracker, m ); 47 47 48 48 if (matMode == GL_MODELVIEW && cr_server.viewOverride) { … … 60 60 const GLenum matMode = cr_server.curClient->currentCtxInfo->pContext->transform.matrixMode; 61 61 62 crStateLoadMatrixd( m );62 crStateLoadMatrixd(&cr_server.StateTracker, m ); 63 63 64 64 if (matMode == GL_MODELVIEW && cr_server.viewOverride) { … … 79 79 /* load the overriding projection matrix */ 80 80 int eye = crServerGetCurrentEye(); 81 crStateLoadMatrix( &cr_server.projectionMatrix[eye] );81 crStateLoadMatrix(&cr_server.StateTracker, &cr_server.projectionMatrix[eye] ); 82 82 } 83 83 else { 84 84 /* the usual case */ 85 crStateMultMatrixf( m );85 crStateMultMatrixf(&cr_server.StateTracker, m ); 86 86 cr_server.head_spu->dispatch_table.MultMatrixf( m ); 87 87 } … … 96 96 /* load the overriding projection matrix */ 97 97 int eye = crServerGetCurrentEye(); 98 crStateLoadMatrix( &cr_server.projectionMatrix[eye] );98 crStateLoadMatrix(&cr_server.StateTracker, &cr_server.projectionMatrix[eye] ); 99 99 } 100 100 else { 101 101 /* the usual case */ 102 crStateMultMatrixd( m );102 crStateMultMatrixd(&cr_server.StateTracker, m ); 103 103 cr_server.head_spu->dispatch_table.MultMatrixd( m ); 104 104 } … … 111 111 const GLenum matMode = cr_server.curClient->currentCtxInfo->pContext->transform.matrixMode; 112 112 113 crStateLoadIdentity( );113 crStateLoadIdentity(&cr_server.StateTracker); 114 114 115 115 if (matMode == GL_MODELVIEW && cr_server.viewOverride) { … … 322 322 323 323 /* pass through */ 324 crStateProgramStringARB( target, format, len, string);324 crStateProgramStringARB(&cr_server.StateTracker, target, format, len, string); 325 325 cr_server.head_spu->dispatch_table.ProgramStringARB(target, format, len, string); 326 326 } … … 364 364 365 365 /* pass through */ 366 crStateLoadProgramNV( target, id, len, string);366 crStateLoadProgramNV(&cr_server.StateTracker, target, id, len, string); 367 367 cr_server.head_spu->dispatch_table.LoadProgramNV(target, id, len, string); 368 368 } … … 381 381 382 382 /* pass through */ 383 crStateBindProgramARB( target, id);383 crStateBindProgramARB(&cr_server.StateTracker, target, id); 384 384 cr_server.head_spu->dispatch_table.BindProgramARB(target, id); 385 385 } … … 395 395 } 396 396 /* pass through */ 397 crStateBindProgramNV( target, id);397 crStateBindProgramNV(&cr_server.StateTracker, target, id); 398 398 cr_server.head_spu->dispatch_table.BindProgramNV(target, id); 399 399 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_readpixels.cpp
r78190 r78375 33 33 34 34 #ifdef CR_ARB_pixel_buffer_object 35 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))35 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 36 36 { 37 37 GLvoid *pbo_offset; -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_rpw.cpp
r78263 r78375 470 470 pContext = cr_server.currentCtxInfo->pContext; 471 471 472 if (crStateIsBufferBound( GL_PIXEL_UNPACK_BUFFER_ARB))472 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_UNPACK_BUFFER_ARB)) 473 473 { 474 474 cr_server.head_spu->dispatch_table.BindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0); … … 490 490 pEntry->iTexDraw = -pEntry->iTexDraw; 491 491 492 if (crStateIsBufferBound( GL_PIXEL_UNPACK_BUFFER_ARB))492 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_UNPACK_BUFFER_ARB)) 493 493 { 494 494 cr_server.head_spu->dispatch_table.BindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pContext->bufferobject.unpackBuffer->hwid); … … 504 504 } 505 505 506 if (crStateIsBufferBound( GL_PIXEL_PACK_BUFFER_ARB))506 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_PACK_BUFFER_ARB)) 507 507 { 508 508 cr_server.head_spu->dispatch_table.BindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, pContext->bufferobject.packBuffer->hwid); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py
r69390 r78375 62 62 CRASSERT(tablesize/sizeof(%s)==1); 63 63 texid = (GLuint) *get_values; 64 *get_values = (%s) crStateTextureHWIDtoID( texid);64 *get_values = (%s) crStateTextureHWIDtoID(&cr_server.StateTracker, texid); 65 65 } 66 66 else if (GL_CURRENT_PROGRAM==pname) … … 69 69 CRASSERT(tablesize/sizeof(%s)==1); 70 70 programid = (GLuint) *get_values; 71 *get_values = (%s) crStateGLSLProgramHWIDtoID( programid);71 *get_values = (%s) crStateGLSLProgramHWIDtoID(&cr_server.StateTracker, programid); 72 72 } 73 73 else if (GL_FRAMEBUFFER_BINDING_EXT==pname … … 85 85 else 86 86 { 87 fboid = crStateFBOHWIDtoID( fboid);87 fboid = crStateFBOHWIDtoID(&cr_server.StateTracker, fboid); 88 88 } 89 89 *get_values = (%s) fboid; … … 93 93 if (crServerIsRedirectedToFBO() 94 94 && CR_SERVER_FBO_FOR_IDX(cr_server.curClient->currentMural, cr_server.curClient->currentMural->iCurReadBuffer) 95 && !crStateGetCurrent( )->framebufferobject.readFB)95 && !crStateGetCurrent(&cr_server.StateTracker)->framebufferobject.readFB) 96 96 { 97 *get_values = (%s) crStateGetCurrent( )->buffer.readBuffer;98 Assert(crStateGetCurrent( )->buffer.readBuffer == GL_BACK || crStateGetCurrent()->buffer.readBuffer == GL_FRONT);97 *get_values = (%s) crStateGetCurrent(&cr_server.StateTracker)->buffer.readBuffer; 98 Assert(crStateGetCurrent(&cr_server.StateTracker)->buffer.readBuffer == GL_BACK || crStateGetCurrent(&cr_server.StateTracker)->buffer.readBuffer == GL_FRONT); 99 99 } 100 100 } … … 103 103 if (crServerIsRedirectedToFBO() 104 104 && CR_SERVER_FBO_FOR_IDX(cr_server.curClient->currentMural, cr_server.curClient->currentMural->iCurDrawBuffer) 105 && !crStateGetCurrent( )->framebufferobject.drawFB)105 && !crStateGetCurrent(&cr_server.StateTracker)->framebufferobject.drawFB) 106 106 { 107 *get_values = (%s) crStateGetCurrent( )->buffer.drawBuffer;108 Assert(crStateGetCurrent( )->buffer.drawBuffer == GL_BACK || crStateGetCurrent()->buffer.drawBuffer == GL_FRONT);107 *get_values = (%s) crStateGetCurrent(&cr_server.StateTracker)->buffer.drawBuffer; 108 Assert(crStateGetCurrent(&cr_server.StateTracker)->buffer.drawBuffer == GL_BACK || crStateGetCurrent(&cr_server.StateTracker)->buffer.drawBuffer == GL_FRONT); 109 109 } 110 110 } … … 114 114 CRASSERT(tablesize/sizeof(%s)==1); 115 115 rbid = (GLuint) *get_values; 116 *get_values = (%s) crStateRBOHWIDtoID( rbid);116 *get_values = (%s) crStateRBOHWIDtoID(&cr_server.StateTracker, rbid); 117 117 } 118 118 else if (GL_ARRAY_BUFFER_BINDING_ARB==pname … … 131 131 CRASSERT(tablesize/sizeof(%s)==1); 132 132 bufid = (GLuint) *get_values; 133 *get_values = (%s) crStateBufferHWIDtoID( bufid);133 *get_values = (%s) crStateBufferHWIDtoID(&cr_server.StateTracker, bufid); 134 134 } 135 135 else if (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS==pname) -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_stream.cpp
r78263 r78375 580 580 UnpackerState.pDispatchTbl = &(cr_server.dispatch); 581 581 UnpackerState.rcUnpack = VINF_SUCCESS; 582 UnpackerState.pStateTracker = &cr_server.StateTracker; 582 583 583 584 cr_server.pUnpackerState = &UnpackerState; … … 695 696 UnpackerState.pDispatchTbl = &(cr_server.dispatch); 696 697 UnpackerState.rcUnpack = VINF_SUCCESS; 698 UnpackerState.pStateTracker = &cr_server.StateTracker; 697 699 698 700 cr_server.pUnpackerState = &UnpackerState; -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_texture.cpp
r78190 r78375 39 39 #if defined(CR_ARB_pixel_buffer_object) 40 40 # define CR_CHECKBUFFER(name, checkptr) \ 41 if (crStateIsBufferBound( GL_PIXEL_UNPACK_BUFFER_ARB)) \41 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_UNPACK_BUFFER_ARB)) \ 42 42 { \ 43 43 CR_FIXPTR(); \ … … 53 53 #if defined(CR_ARB_pixel_buffer_object) && !defined(CR_STATE_NO_TEXTURE_IMAGE_STORE) 54 54 # define CR_FINISHBUFFER() \ 55 if (crStateIsBufferBound( GL_PIXEL_UNPACK_BUFFER_ARB))\55 if (crStateIsBufferBound(&cr_server.StateTracker, GL_PIXEL_UNPACK_BUFFER_ARB)) \ 56 56 { \ 57 57 if (!cr_server.head_spu->dispatch_table.UnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB)) \ … … 64 64 #endif 65 65 66 #define CR_FUNC_SUBIMAGE(name, def, call, ptrname) \67 void SERVER_DISPATCH_APIENTRY \68 crServerDispatch##name def \69 { \70 const GLvoid *realptr = ptrname; \71 CR_CHECKBUFFER(name, CR_CHECKPTR(name)) \72 crState##name call;\73 CR_FINISHBUFFER() \74 realptr = ptrname; \75 cr_server.head_spu->dispatch_table.name call; \76 } 77 78 #define CR_FUNC_IMAGE(name, def, call, ptrname) \79 void SERVER_DISPATCH_APIENTRY \80 crServerDispatch##name def \81 { \82 const GLvoid *realptr = ptrname; \83 CR_CHECKBUFFER(name, CR_NOTHING()) \84 crState##name call;\85 CR_FINISHBUFFER() \86 realptr = ptrname; \87 cr_server.head_spu->dispatch_table.name call; \66 #define CR_FUNC_SUBIMAGE(name, def, state_call, call, ptrname) \ 67 void SERVER_DISPATCH_APIENTRY \ 68 crServerDispatch##name def \ 69 { \ 70 const GLvoid *realptr = ptrname; \ 71 CR_CHECKBUFFER(name, CR_CHECKPTR(name)) \ 72 crState##name state_call; \ 73 CR_FINISHBUFFER() \ 74 realptr = ptrname; \ 75 cr_server.head_spu->dispatch_table.name call; \ 76 } 77 78 #define CR_FUNC_IMAGE(name, def, state_call, call, ptrname) \ 79 void SERVER_DISPATCH_APIENTRY \ 80 crServerDispatch##name def \ 81 { \ 82 const GLvoid *realptr = ptrname; \ 83 CR_CHECKBUFFER(name, CR_NOTHING()) \ 84 crState##name state_call; \ 85 CR_FINISHBUFFER() \ 86 realptr = ptrname; \ 87 cr_server.head_spu->dispatch_table.name call; \ 88 88 } 89 89 … … 91 91 CR_FUNC_SUBIMAGE(CompressedTexSubImage1DARB, 92 92 (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imagesize, const GLvoid * data), 93 (&cr_server.StateTracker, target, level, xoffset, width, format, imagesize, realptr), 93 94 (target, level, xoffset, width, format, imagesize, realptr), data) 94 95 95 96 CR_FUNC_SUBIMAGE(CompressedTexSubImage2DARB, 96 97 (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imagesize, const GLvoid * data), 98 (&cr_server.StateTracker, target, level, xoffset, yoffset, width, height, format, imagesize, realptr), 97 99 (target, level, xoffset, yoffset, width, height, format, imagesize, realptr), data) 98 100 99 101 CR_FUNC_SUBIMAGE(CompressedTexSubImage3DARB, 100 102 (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imagesize, const GLvoid * data), 103 (&cr_server.StateTracker, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, realptr), 101 104 (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, realptr), data) 102 105 103 106 CR_FUNC_IMAGE(CompressedTexImage1DARB, 104 107 (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imagesize, const GLvoid * data), 108 (&cr_server.StateTracker, target, level, internalFormat, width, border, imagesize, realptr), 105 109 (target, level, internalFormat, width, border, imagesize, realptr), data) 106 110 107 111 CR_FUNC_IMAGE(CompressedTexImage2DARB, 108 112 (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imagesize, const GLvoid * data), 113 (&cr_server.StateTracker, target, level, internalFormat, width, height, border, imagesize, realptr), 109 114 (target, level, internalFormat, width, height, border, imagesize, realptr), data) 110 115 111 116 CR_FUNC_IMAGE(CompressedTexImage3DARB, 112 117 (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imagesize, const GLvoid * data), 118 (&cr_server.StateTracker, target, level, internalFormat, width, height, depth, border, imagesize, realptr), 113 119 (target, level, internalFormat, width, height, depth, border, imagesize, realptr), data) 114 120 #endif … … 116 122 CR_FUNC_SUBIMAGE(TexSubImage1D, 117 123 (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels), 124 (&cr_server.StateTracker, target, level, xoffset, width, format, type, realptr), 118 125 (target, level, xoffset, width, format, type, realptr), pixels) 119 126 120 127 CR_FUNC_SUBIMAGE(TexSubImage2D, 121 128 (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels), 129 (&cr_server.StateTracker, target, level, xoffset, yoffset, width, height, format, type, realptr), 122 130 (target, level, xoffset, yoffset, width, height, format, type, realptr), pixels) 123 131 124 132 CR_FUNC_SUBIMAGE(TexSubImage3D, 125 133 (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels), 134 (&cr_server.StateTracker, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, realptr), 126 135 (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, realptr), pixels) 127 136 128 137 CR_FUNC_IMAGE(TexImage1D, 129 138 (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels), 139 (&cr_server.StateTracker, target, level, internalFormat, width, border, format, type, realptr), 130 140 (target, level, internalFormat, width, border, format, type, realptr), pixels) 131 141 132 142 CR_FUNC_IMAGE(TexImage2D, 133 143 (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels), 144 (&cr_server.StateTracker, target, level, internalFormat, width, height, border, format, type, realptr), 134 145 (target, level, internalFormat, width, height, border, format, type, realptr), pixels) 135 146 136 147 CR_FUNC_IMAGE(TexImage3D, 137 148 (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels), 149 (&cr_server.StateTracker, target, level, internalFormat, width, height, depth, border, format, type, realptr), 138 150 (target, level, internalFormat, width, height, depth, border, format, type, realptr), pixels) 139 151 … … 141 153 void SERVER_DISPATCH_APIENTRY crServerDispatchTexEnvf( GLenum target, GLenum pname, GLfloat param ) 142 154 { 143 crStateTexEnvf( target, pname, param );155 crStateTexEnvf(&cr_server.StateTracker, target, pname, param ); 144 156 if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE) 145 157 CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnvf( target, pname, param );); … … 148 160 void SERVER_DISPATCH_APIENTRY crServerDispatchTexEnvfv( GLenum target, GLenum pname, const GLfloat * params ) 149 161 { 150 crStateTexEnvfv( target, pname, params );162 crStateTexEnvfv(&cr_server.StateTracker, target, pname, params ); 151 163 if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE) 152 164 CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnvfv( target, pname, params );); … … 155 167 void SERVER_DISPATCH_APIENTRY crServerDispatchTexEnvi( GLenum target, GLenum pname, GLint param ) 156 168 { 157 crStateTexEnvi( target, pname, param );169 crStateTexEnvi(&cr_server.StateTracker, target, pname, param ); 158 170 if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE) 159 171 CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnvi( target, pname, param );); … … 162 174 void SERVER_DISPATCH_APIENTRY crServerDispatchTexEnviv( GLenum target, GLenum pname, const GLint * params ) 163 175 { 164 crStateTexEnviv( target, pname, params );176 crStateTexEnviv(&cr_server.StateTracker, target, pname, params ); 165 177 if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE) 166 178 CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnviv( target, pname, params );); … … 175 187 cr_server.head_spu->dispatch_table.GetTexEnvfv( target, pname, local_params ); 176 188 else 177 crStateGetTexEnvfv( target, pname, local_params );189 crStateGetTexEnvfv(&cr_server.StateTracker, target, pname, local_params ); 178 190 179 191 cComponents = RT_MIN(crStateHlpComponentsCount(pname), RT_ELEMENTS(local_params)); … … 189 201 cr_server.head_spu->dispatch_table.GetTexEnviv( target, pname, local_params ); 190 202 else 191 crStateGetTexEnviv( target, pname, local_params );203 crStateGetTexEnviv(&cr_server.StateTracker, target, pname, local_params ); 192 204 193 205 cComponents = RT_MIN(crStateHlpComponentsCount(pname), RT_ELEMENTS(local_params)); … … 197 209 void SERVER_DISPATCH_APIENTRY crServerDispatchBindTexture( GLenum target, GLuint texture ) 198 210 { 199 crStateBindTexture( target, texture );200 cr_server.head_spu->dispatch_table.BindTexture(target, crStateGetTextureHWID( texture));211 crStateBindTexture(&cr_server.StateTracker, target, texture ); 212 cr_server.head_spu->dispatch_table.BindTexture(target, crStateGetTextureHWID(&cr_server.StateTracker, texture)); 201 213 } 202 214 … … 223 235 for (i = 0; i < n; i++) 224 236 { 225 newTextures[i] = crStateGetTextureHWID( textures[i]);237 newTextures[i] = crStateGetTextureHWID(&cr_server.StateTracker, textures[i]); 226 238 } 227 239 … … 232 244 233 245 234 crStateDeleteTextures( n, textures);246 crStateDeleteTextures(&cr_server.StateTracker, n, textures); 235 247 cr_server.head_spu->dispatch_table.DeleteTextures(n, newTextures); 236 248 crFree(newTextures); … … 257 269 } 258 270 259 crStatePrioritizeTextures( n, textures, priorities);271 crStatePrioritizeTextures(&cr_server.StateTracker, n, textures, priorities); 260 272 261 273 for (i = 0; i < n; i++) 262 274 { 263 newTextures[i] = crStateGetTextureHWID( textures[i]);275 newTextures[i] = crStateGetTextureHWID(&cr_server.StateTracker, textures[i]); 264 276 } 265 277 … … 273 285 { 274 286 GLboolean retval; 275 retval = cr_server.head_spu->dispatch_table.IsTexture(crStateGetTextureHWID( texture));287 retval = cr_server.head_spu->dispatch_table.IsTexture(crStateGetTextureHWID(&cr_server.StateTracker, texture)); 276 288 crServerReturnValue( &retval, sizeof(retval) ); 277 289 return retval; /* WILL PROBABLY BE IGNORED */ … … 313 325 for (i = 0; i < n; i++) 314 326 { 315 textures2[i] = crStateGetTextureHWID( textures[i]);327 textures2[i] = crStateGetTextureHWID(&cr_server.StateTracker, textures[i]); 316 328 } 317 329 retval = cr_server.head_spu->dispatch_table.AreTexturesResident(n, textures2, res); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_viewport.cpp
r78263 r78375 276 276 void SERVER_DISPATCH_APIENTRY crServerDispatchViewport( GLint x, GLint y, GLsizei width, GLsizei height ) 277 277 { 278 CRContext *ctx = crStateGetCurrent( );278 CRContext *ctx = crStateGetCurrent(&cr_server.StateTracker); 279 279 280 280 if (ctx->viewport.viewportX != x || … … 284 284 /* Note -- If there are tiles, this will be overridden in the 285 285 * process of decoding the BoundsInfo packet, so no worries. */ 286 crStateViewport( x, y, width, height );286 crStateViewport(&cr_server.StateTracker, x, y, width, height ); 287 287 } 288 288 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_window.cpp
r78263 r78375 351 351 && !mural->fRedirected) 352 352 { 353 crStateGetCurrent( )->buffer.width = mural->width;354 crStateGetCurrent( )->buffer.height = mural->height;353 crStateGetCurrent(&cr_server.StateTracker)->buffer.width = mural->width; 354 crStateGetCurrent(&cr_server.StateTracker)->buffer.height = mural->height; 355 355 } 356 356 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_winpos.cpp
r78190 r78375 9 9 static void crServerWindowPos( GLfloat x, GLfloat y, GLfloat z ) 10 10 { 11 crStateWindowPos3fARB( x, y, z);11 crStateWindowPos3fARB(&cr_server.StateTracker, x, y, z); 12 12 cr_server.head_spu->dispatch_table.WindowPos3fARB(x, y, z); 13 13 }
Note:
See TracChangeset
for help on using the changeset viewer.