Changeset 44389 in vbox
- Timestamp:
- Jan 25, 2013 6:38:32 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83360
- Location:
- trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_context.c
r44290 r44389 179 179 CRClientNode *pNode; 180 180 int found=false; 181 int spuContext; 181 182 182 183 crCtxInfo = (CRContextInfo *) crHashtableSearch(cr_server.contextTable, ctx); … … 198 199 crFree(crCtxInfo->CreateInfo.pszDpyName); 199 200 200 if (crCtxInfo->SpuContext >= 0) 201 cr_server.head_spu->dispatch_table.DestroyContext(crCtxInfo->SpuContext); 201 spuContext = crCtxInfo->SpuContext; 202 202 203 203 crFree(crCtxInfo); … … 266 266 cr_server.currentCtxInfo = &cr_server.MainContextInfo; 267 267 } 268 269 if (spuContext >= 0) 270 cr_server.head_spu->dispatch_table.DestroyContext(spuContext); 268 271 } 269 272 -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_window.c
r44290 r44389 168 168 crServerDeleteMuralFBO(mural); 169 169 170 if (cr_server.currentMural == mural) 171 { 172 CRMuralInfo *dummyMural = crServerGetDummyMural(cr_server.MainContextInfo.CreateInfo.visualBits); 173 /* reset the current context to some dummy values to ensure render spu does not switch to a default "0" context, 174 * which might lead to muralFBO (offscreen rendering) gl entities being created in a scope of that context */ 175 cr_server.head_spu->dispatch_table.MakeCurrent(dummyMural->spuWindow, 0, cr_server.MainContextInfo.SpuContext); 176 cr_server.currentWindow = -1; 177 cr_server.currentMural = NULL; 178 } 179 else 180 { 181 CRASSERT(cr_server.currentWindow != mural->CreateInfo.externalID); 182 } 183 184 170 185 cr_server.head_spu->dispatch_table.WindowDestroy( mural->spuWindow ); 171 186 … … 214 229 crServerMuralTerm(mural); 215 230 216 if (cr_server.currentWindow == window) 217 { 218 cr_server.currentWindow = -1; 219 CRASSERT(cr_server.currentMural == mural); 220 cr_server.currentMural = NULL; 221 } 222 else 223 { 224 CRASSERT(cr_server.currentMural != mural); 225 } 231 CRASSERT(cr_server.currentWindow != window); 226 232 227 233 if (cr_server.curClient)
Note:
See TracChangeset
for help on using the changeset viewer.