Changeset 51269 in vbox for trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
- Timestamp:
- May 15, 2014 7:22:39 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 93729
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp
r51260 r51269 5274 5274 } 5275 5275 5276 static void crVBoxServerCrCmdBltPrimaryUpdate(const VBVAINFOSCREEN *pScreen, uint32_t cRects, const RTRECT *pRects) 5277 { 5278 if (!cRects) 5279 return; 5280 5281 uint32_t u32PrimaryID = pScreen->u32ViewIndex; 5276 static void crPMgrPrimaryUpdateScreen(HCR_FRAMEBUFFER hFb, uint32_t idScreen, uint32_t cRects, const RTRECT *pRects) 5277 { 5278 const VBVAINFOSCREEN *pScreen = CrFbGetScreenInfo(hFb); 5279 5282 5280 bool fDirtyEmpty = true; 5283 5281 RTRECT dirtyRect; 5284 cr_server.CrCmdClientInfo.pfnCltScrUpdateBegin(cr_server.CrCmdClientInfo.hCltScr, u32PrimaryID);5282 cr_server.CrCmdClientInfo.pfnCltScrUpdateBegin(cr_server.CrCmdClientInfo.hCltScr, idScreen); 5285 5283 5286 5284 VBVACMDHDR hdr; … … 5292 5290 hdr.h = hdr.y + pRects[i].yBottom; 5293 5291 5294 cr_server.CrCmdClientInfo.pfnCltScrUpdateProcess(cr_server.CrCmdClientInfo.hCltScr, u32PrimaryID, &hdr, sizeof (hdr));5292 cr_server.CrCmdClientInfo.pfnCltScrUpdateProcess(cr_server.CrCmdClientInfo.hCltScr, idScreen, &hdr, sizeof (hdr)); 5295 5293 5296 5294 if (fDirtyEmpty) … … 5330 5328 if (dirtyRect.xRight - dirtyRect.xLeft) 5331 5329 { 5332 cr_server.CrCmdClientInfo.pfnCltScrUpdateEnd(cr_server.CrCmdClientInfo.hCltScr, u32PrimaryID, pScreen->i32OriginX + dirtyRect.xLeft, pScreen->i32OriginY + dirtyRect.yTop,5330 cr_server.CrCmdClientInfo.pfnCltScrUpdateEnd(cr_server.CrCmdClientInfo.hCltScr, idScreen, pScreen->i32OriginX + dirtyRect.xLeft, pScreen->i32OriginY + dirtyRect.yTop, 5333 5331 dirtyRect.xRight - dirtyRect.xLeft, dirtyRect.yBottom - dirtyRect.yTop); 5334 5332 } 5335 5333 else 5336 5334 { 5337 cr_server.CrCmdClientInfo.pfnCltScrUpdateEnd(cr_server.CrCmdClientInfo.hCltScr, u32PrimaryID, 0, 0, 0, 0); 5335 cr_server.CrCmdClientInfo.pfnCltScrUpdateEnd(cr_server.CrCmdClientInfo.hCltScr, idScreen, 0, 0, 0, 0); 5336 } 5337 5338 } 5339 5340 static void crPMgrPrimaryUpdate(HCR_FRAMEBUFFER hFb, uint32_t cRects, const RTRECT *pRects) 5341 { 5342 if (!cRects) 5343 return; 5344 5345 const VBVAINFOSCREEN *pScreen = CrFbGetScreenInfo(hFb); 5346 5347 uint32_t idFb = pScreen->u32ViewIndex; 5348 CR_FB_INFO *pFbInfo = &g_CrPresenter.aFbInfos[idFb]; 5349 5350 for (int i = ASMBitFirstSet(pFbInfo->aTargetMap, cr_server.screenCount); 5351 i >= 0; 5352 i = ASMBitNextSet(pFbInfo->aTargetMap, cr_server.screenCount, i)) 5353 { 5354 crPMgrPrimaryUpdateScreen(hFb, i, cRects, pRects); 5338 5355 } 5339 5356 } … … 5445 5462 } 5446 5463 5447 cr VBoxServerCrCmdBltPrimaryUpdate(CrFbGetScreenInfo(hFb), cRects, pRects);5464 crPMgrPrimaryUpdate(hFb, cRects, pRects); 5448 5465 5449 5466 return 0; … … 5596 5613 } 5597 5614 5598 cr VBoxServerCrCmdBltPrimaryUpdate(pScreen, cRects, pRects);5615 crPMgrPrimaryUpdate(hDstFb, cRects, pRects); 5599 5616 5600 5617 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.