Changeset 50184 in vbox for trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_misc.c
- Timestamp:
- Jan 23, 2014 4:10:13 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 91753
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_misc.c
r50095 r50184 238 238 } 239 239 cr_server.projectionOverride = GL_TRUE; 240 break; 241 242 case GL_HH_SET_TMPCTX_MAKE_CURRENT: 243 /*we should not receive it from the guest! */ 240 244 break; 241 245 … … 673 677 Ctx.Base.id = cr_server.MainContextInfo.SpuContext; 674 678 Ctx.Base.visualBits = cr_server.MainContextInfo.CreateInfo.visualBits; 675 rc = CrBltInit(&cr_server.Blitter, &Ctx, true, true, NULL, &cr_server. head_spu->dispatch_table);679 rc = CrBltInit(&cr_server.Blitter, &Ctx, true, true, NULL, &cr_server.TmpCtxDispatch); 676 680 if (RT_SUCCESS(rc)) 677 681 { … … 685 689 } 686 690 } 691 692 if (!CrBltMuralGetCurrentInfo(&cr_server.Blitter)->Base.id) 693 { 694 CRMuralInfo *dummy = crServerGetDummyMural(cr_server.MainContextInfo.CreateInfo.visualBits); 695 CR_BLITTER_WINDOW DummyInfo; 696 CRASSERT(dummy); 697 crServerVBoxBlitterWinInit(&DummyInfo, dummy); 698 CrBltMuralSetCurrentInfo(&cr_server.Blitter, &DummyInfo); 699 } 700 687 701 return &cr_server.Blitter; 688 702 } … … 1347 1361 if (pCtx) 1348 1362 { 1349 GLint curSrvSpuCtx = cr_server.currentCtxInfo && cr_server.currentCtxInfo->SpuContext > 0 ? cr_server.currentCtxInfo->SpuContext : cr_server.MainContextInfo.SpuContext;1350 bool fSwitchToTmpCtx = (curSrvSpuCtx != context);1351 1363 CRMuralInfo *pCurrentMural = cr_server.currentMural; 1352 CRContextInfo *pCurCtxInfo = cr_server.currentCtxInfo; 1353 pCurCtx = pCurCtxInfo ? pCurCtxInfo->pContext : NULL; 1354 1355 CRASSERT(pCurCtx == pCtx); 1364 1365 pCurCtx = cr_server.currentCtxInfo ? cr_server.currentCtxInfo->pContext : cr_server.MainContextInfo.pContext; 1366 Assert(pCurCtx == pCtx); 1367 1368 if (!context) 1369 { 1370 if (pCurrentMural) 1371 { 1372 Assert(cr_server.currentCtxInfo); 1373 context = cr_server.currentCtxInfo->SpuContext > 0 ? cr_server.currentCtxInfo->SpuContext : cr_server.MainContextInfo.SpuContext; 1374 window = pCurrentMural->spuWindow; 1375 } 1376 else 1377 { 1378 CRMuralInfo * pDummy; 1379 Assert(!cr_server.currentCtxInfo); 1380 pDummy = crServerGetDummyMural(cr_server.MainContextInfo.CreateInfo.visualBits); 1381 context = cr_server.MainContextInfo.SpuContext; 1382 window = pDummy->spuWindow; 1383 } 1384 1385 1386 fDoPrePostProcess = -1; 1387 } 1388 else 1389 { 1390 fDoPrePostProcess = 1; 1391 } 1356 1392 1357 1393 if (pCurrentMural) … … 1365 1401 idReadFBO = 0; 1366 1402 } 1367 1368 fDoPrePostProcess = fSwitchToTmpCtx ? 1 : -1;1369 1403 } 1370 1404 else … … 1384 1418 void crServerInitTmpCtxDispatch() 1385 1419 { 1420 MakeCurrentFunc_t pfnMakeCurrent; 1421 1386 1422 crSPUInitDispatchTable(&cr_server.TmpCtxDispatch); 1387 1423 crSPUCopyDispatchTable(&cr_server.TmpCtxDispatch, &cr_server.head_spu->dispatch_table); 1388 1424 cr_server.TmpCtxDispatch.MakeCurrent = crServerMakeTmpCtxCurrent; 1425 1426 pfnMakeCurrent = crServerMakeTmpCtxCurrent; 1427 cr_server.head_spu->dispatch_table.ChromiumParametervCR(GL_HH_SET_TMPCTX_MAKE_CURRENT, GL_BYTE, sizeof (void*), &pfnMakeCurrent); 1428 1389 1429 } 1390 1430
Note:
See TracChangeset
for help on using the changeset viewer.