Changeset 45053 in vbox for trunk/src/VBox/HostServices/SharedOpenGL
- Timestamp:
- Mar 15, 2013 5:42:49 PM (12 years ago)
- Location:
- trunk/src/VBox/HostServices/SharedOpenGL
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h
r45009 r45053 142 142 void crServerMuralFBOSwapBuffers(CRMuralInfo *mural); 143 143 144 void crServerVBoxCompositionReenable(CRMuralInfo *mural );144 void crServerVBoxCompositionReenable(CRMuralInfo *mural, bool fOnContentHide); 145 145 void crServerVBoxCompositionDisable(CRMuralInfo *mural); 146 void crServerVBoxCompositionPresent(CRMuralInfo *mural );146 void crServerVBoxCompositionPresent(CRMuralInfo *mural, bool fOnContentHide); 147 147 148 148 #define CR_SERVER_FBO_BB_IDX(_mural) ((_mural)->iBbBuffer) -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.c
r45038 r45053 513 513 } 514 514 515 void crServerVBoxCompositionPresent(CRMuralInfo *mural )515 void crServerVBoxCompositionPresent(CRMuralInfo *mural, bool fOnContentHide) 516 516 { 517 517 CRMuralInfo *currentMural = cr_server.currentMural; … … 522 522 CRASSERT(curCtx == crStateGetCurrent()); 523 523 524 if (!mural->bVisible) 525 { 526 return; 527 } 528 529 if (!mural->width || !mural->height) 530 { 531 return; 532 } 533 534 if (!CrVrScrCompositorEntryIsInList(&mural->CEntry)) 535 return; 524 Assert(!CrVrScrCompositorIsEmpty(&mural->Compositor) == !fOnContentHide); 525 526 if (!fOnContentHide) 527 { 528 if (!mural->bVisible) 529 { 530 return; 531 } 532 533 if (!mural->width || !mural->height) 534 { 535 return; 536 } 537 538 if (!CrVrScrCompositorEntryIsInList(&mural->CEntry)) 539 return; 540 } 536 541 537 542 if (currentMural) … … 552 557 crStateSwitchPostprocess(curCtx, NULL, idDrawFBO, idReadFBO); 553 558 554 mural->fCompositorPresented = GL_TRUE;555 } 556 557 void crServerVBoxCompositionReenable(CRMuralInfo *mural )559 mural->fCompositorPresented = !fOnContentHide; 560 } 561 562 void crServerVBoxCompositionReenable(CRMuralInfo *mural, bool fOnContentHide) 558 563 { 559 564 if (!mural->fCompositorPresented) 560 565 return; 561 566 562 crServerVBoxCompositionPresent(mural );567 crServerVBoxCompositionPresent(mural, fOnContentHide); 563 568 } 564 569 … … 595 600 if (mural->fUseFBO == CR_SERVER_REDIR_FBO_BLT) 596 601 { 597 crServerVBoxCompositionPresent(mural );602 crServerVBoxCompositionPresent(mural, false); 598 603 return; 599 604 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_window.c
r45041 r45053 456 456 if (mural->fUseFBO != CR_SERVER_REDIR_NONE) 457 457 { 458 crServerVBoxCompositionReenable(mural );458 crServerVBoxCompositionReenable(mural, false); 459 459 } 460 460 } … … 465 465 { 466 466 CRMuralInfo *mural = (CRMuralInfo *) crHashtableSearch(cr_server.muralTable, window); 467 bool fContainedRegions; 467 468 if (!mural) { 468 469 #if EXTRA_WARN … … 486 487 } 487 488 489 fContainedRegions = !CrVrScrCompositorIsEmpty(&mural->Compositor); 488 490 /* 2. do necessary modifications (see above comment) */ 489 491 /* NOTE: we can do it even if mural->fUseFBO = CR_SERVER_REDIR_NONE to make sure the compositor data is always up to date */ … … 523 525 if (mural->fUseFBO != CR_SERVER_REDIR_NONE) 524 526 { 525 crServerVBoxCompositionReenable(mural );527 crServerVBoxCompositionReenable(mural, fContainedRegions && CrVrScrCompositorIsEmpty(&mural->Compositor)); 526 528 } 527 529 } -
trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu.c
r45048 r45053 644 644 window = (WindowInfo *) crHashtableSearch(render_spu.windowTable, win); 645 645 if (window) { 646 #if !defined(RT_OS_DARWIN) || !defined(VBOX_WITH_COCOA_QT) 647 if (CrVrScrCompositorIsEmpty(pCompositor)) 648 pCompositor = NULL; 649 #endif 646 650 renderspuVBoxCompositorSet( window, pCompositor); 647 651 if (pCompositor) 648 652 { 649 653 renderspu_SystemVBoxPresentComposition(window, pCompositor, pChangedEntry); 654 #if defined(RT_OS_DARWIN) && defined(VBOX_WITH_COCOA_QT) 655 if (CrVrScrCompositorIsEmpty(pCompositor)) 656 renderspuVBoxCompositorSet( window, NULL); 657 #endif 650 658 } 651 659 }
Note:
See TracChangeset
for help on using the changeset viewer.