Changeset 50243 in vbox for trunk/src/VBox/HostServices
- Timestamp:
- Jan 27, 2014 12:23:48 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp
r50225 r50243 257 257 struct { 258 258 uint32_t fCreateNotified : 1; 259 uint32_t Reserved : 31; 259 uint32_t fInList : 1; 260 uint32_t Reserved : 30; 260 261 }; 261 262 uint32_t Value; … … 497 498 /* 2. mark the replaced entry is destroyed */ 498 499 Assert(pFbEntry->Flags.fCreateNotified); 500 Assert(pFbEntry->Flags.fInList); 499 501 pFbEntry->Flags.fCreateNotified = 0; 502 pFbEntry->Flags.fInList = 0; 500 503 pFbReplacingEntry->Flags.fCreateNotified = 1; 504 pFbReplacingEntry->Flags.fInList = 1; 501 505 } 502 506 else 503 507 { 504 if (pFb->pDisplay) 505 pFb->pDisplay->EntryRemoved(pFb, pFbEntry); 508 if (pFbEntry->Flags.fInList) 509 { 510 pFbEntry->Flags.fInList = 0; 511 if (pFb->pDisplay) 512 pFb->pDisplay->EntryRemoved(pFb, pFbEntry); 513 } 506 514 } 507 515 … … 634 642 pNewEntry = &hEntry->Entry; 635 643 fEntryWasInList = CrVrScrCompositorEntryIsUsed(pNewEntry); 644 645 Assert(!hEntry->Flags.fInList == !fEntryWasInList); 636 646 } 637 647 else … … 656 666 } 657 667 668 Assert(!hEntry->Flags.fInList); 669 hEntry->Flags.fInList = 1; 670 658 671 if (pFb->pDisplay) 659 672 pFb->pDisplay->EntryAdded(pFb, hEntry); … … 709 722 pNewEntry = &hEntry->Entry; 710 723 fEntryWasInList = CrVrScrCompositorEntryIsUsed(pNewEntry); 724 Assert(!hEntry->Flags.fInList == !fEntryWasInList); 711 725 } 712 726 else … … 732 746 pFb->pDisplay->EntryCreated(pFb, hEntry); 733 747 } 748 749 Assert(!hEntry->Flags.fInList); 750 hEntry->Flags.fInList = 1; 734 751 735 752 if (pFb->pDisplay) … … 1866 1883 } 1867 1884 1885 const RTRECT* getViewportRect() 1886 { 1887 return &mViewportRect; 1888 } 1889 1868 1890 virtual int setViewportRect(const RTRECT *pViewportRect) 1869 1891 { … … 2130 2152 { 2131 2153 CrVrScrCompositorInit(&mCompositor, NULL); 2132 memset(&mPos, 0, sizeof (mPos));2133 2154 } 2134 2155 … … 2411 2432 void rootVrTranslateForPos() 2412 2433 { 2413 int32_t dx = cr_server.RootVrCurPoint.x - mPos.x; 2414 int32_t dy = cr_server.RootVrCurPoint.y - mPos.y; 2415 2416 cr_server.RootVrCurPoint.x = mPos.x; 2417 cr_server.RootVrCurPoint.y = mPos.y; 2434 const RTRECT *pRect = getViewportRect(); 2435 const struct VBVAINFOSCREEN* pScreen = CrFbGetScreenInfo(getFramebuffer()); 2436 int32_t x = pScreen->i32OriginX; 2437 int32_t y = pScreen->i32OriginY; 2438 int32_t dx = cr_server.RootVrCurPoint.x - x; 2439 int32_t dy = cr_server.RootVrCurPoint.y - y; 2440 2441 cr_server.RootVrCurPoint.x = x; 2442 cr_server.RootVrCurPoint.y = y; 2418 2443 2419 2444 VBoxVrListTranslate(&cr_server.RootVr, dx, dy); … … 2431 2456 private: 2432 2457 VBOXVR_SCR_COMPOSITOR mCompositor; 2433 RTPOINT mPos;2434 2458 }; 2435 2459
Note:
See TracChangeset
for help on using the changeset viewer.