Changeset 47566 in vbox for trunk/src/VBox
- Timestamp:
- Aug 6, 2013 10:20:23 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 87766
- Location:
- trunk/src/VBox
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPCr.cpp
r47070 r47566 893 893 } 894 894 895 #if 1 //ndef DEBUG_misha895 #ifndef DEBUG_misha 896 896 /* zero it up temporary to avoid new code activation */ 897 897 g_VBoxMpCrHostCaps = 0; -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPMisc.cpp
r47059 r47566 242 242 } 243 243 244 PVBOXWDDM_SWAPCHAIN vboxWddmSwapchainRetainByAlloc(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_ALLOCATIONpAlloc)244 PVBOXWDDM_SWAPCHAIN vboxWddmSwapchainRetainByAlloc(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOCATION *pAlloc) 245 245 { 246 246 return vboxWddmSwapchainRetainByAllocData(pDevExt, &pAlloc->AllocData); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPMisc.h
r47059 r47566 74 74 BOOLEAN vboxWddmSwapchainRetain(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_SWAPCHAIN pSwapchain); 75 75 VOID vboxWddmSwapchainRelease(PVBOXWDDM_SWAPCHAIN pSwapchain); 76 PVBOXWDDM_SWAPCHAIN vboxWddmSwapchainRetainByAlloc(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_ALLOCATIONpAlloc);76 PVBOXWDDM_SWAPCHAIN vboxWddmSwapchainRetainByAlloc(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOCATION *pAlloc); 77 77 PVBOXWDDM_SWAPCHAIN vboxWddmSwapchainRetainByAllocData(PVBOXMP_DEVEXT pDevExt, const struct VBOXWDDM_ALLOC_DATA *pAllocData); 78 78 VOID vboxWddmSwapchainAllocRemove(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_SWAPCHAIN pSwapchain, PVBOXWDDM_ALLOCATION pAlloc); -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVdma.cpp
r47151 r47566 992 992 VBOXMP_CRPACKER *pCrPacker, 993 993 uint32_t u32CrConClientID, 994 const VBOXWDDM_ALLOC _DATA *pSrcAllocData,995 const VBOXWDDM_ALLOC _DATA *pDstAllocData,994 const VBOXWDDM_ALLOCATION *pSrcAlloc, 995 const VBOXWDDM_ALLOCATION *pDstAlloc, 996 996 const RECT *pSrcRect, const VBOXVDMAPIPE_RECTS *pDstRects) 997 997 { 998 D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId = pDstAlloc Data->SurfDesc.VidPnSourceId;998 D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId = pDstAlloc->AllocData.SurfDesc.VidPnSourceId; 999 999 VBOXWDDM_SOURCE *pSource = &pDevExt->aSources[srcId]; 1000 1000 NTSTATUS Status = STATUS_SUCCESS; … … 1003 1003 { 1004 1004 /* we care only about screen regions */ 1005 if (pDstAlloc Data != &pSource->pPrimaryAllocation->AllocData)1005 if (pDstAlloc != pSource->pPrimaryAllocation) 1006 1006 { 1007 1007 WARN(("non-primary allocation passed to vboxWddmSubmitBltCmd!")); … … 1009 1009 } 1010 1010 1011 uint32_t hostID = pSrcAlloc Data->hostID;1011 uint32_t hostID = pSrcAlloc->AllocData.hostID; 1012 1012 int rc; 1013 1013 if (hostID) … … 1029 1029 WARN(("vboxVdmaTexPresentSubmit failed Status 0x%x", Status)); 1030 1030 } 1031 else if ( &pSource->pPrimaryAllocation->AllocData == pDstAllocData)1031 else if (pSource->pPrimaryAllocation == pDstAlloc) 1032 1032 { 1033 1033 bool fChanged = false; … … 1049 1049 if (Rect.xLeft == 0 1050 1050 && Rect.yTop == 0 1051 && Rect.xRight == pDstAlloc Data->SurfDesc.width1052 && Rect.yBottom == pDstAlloc Data->SurfDesc.height)1051 && Rect.xRight == pDstAlloc->AllocData.SurfDesc.width 1052 && Rect.yBottom == pDstAlloc->AllocData.SurfDesc.height) 1053 1053 { 1054 1054 pSource->fHas3DVrs = FALSE; … … 1072 1072 else 1073 1073 { 1074 PVBOXWDDM_SWAPCHAIN pSwapchain = vboxWddmSwapchainRetainByAlloc Data(pDevExt, pSrcAllocData);1074 PVBOXWDDM_SWAPCHAIN pSwapchain = vboxWddmSwapchainRetainByAlloc(pDevExt, pSrcAlloc); 1075 1075 1076 1076 if (pSwapchain) 1077 1077 { 1078 Assert(pSrcAlloc Data->SurfDesc.width == pSwapchain->width);1079 Assert(pSrcAlloc Data->SurfDesc.height == pSwapchain->height);1078 Assert(pSrcAlloc->AllocData.SurfDesc.width == pSwapchain->width); 1079 Assert(pSrcAlloc->AllocData.SurfDesc.height == pSwapchain->height); 1080 1080 } 1081 1081 … … 1091 1091 } 1092 1092 1093 NTSTATUS vboxVdmaTexPresentSetAlloc(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOC_DATA *pAllocData)1093 NTSTATUS vboxVdmaTexPresentSetAlloc(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_ALLOCATION pRealFbAlloc) 1094 1094 { 1095 1095 VBOXMP_CRPACKER CrPacker; … … 1107 1107 Rect.left = 0; 1108 1108 Rect.top = 0; 1109 Rect.right = p AllocData->SurfDesc.width;1110 Rect.bottom = p AllocData->SurfDesc.height;1109 Rect.right = pRealFbAlloc->AllocData.SurfDesc.width; 1110 Rect.bottom = pRealFbAlloc->AllocData.SurfDesc.height; 1111 1111 1112 1112 VBOXVDMAPIPE_RECTS RectInfo; … … 1116 1116 1117 1117 return vboxVdmaProcessVReg(pDevExt, &CrPacker, u32CrConClientID, 1118 p AllocData, pAllocData,1118 pRealFbAlloc, pRealFbAlloc, 1119 1119 &Rect, &RectInfo); 1120 1120 } … … 1126 1126 { 1127 1127 return vboxVdmaProcessVReg(pDevExt, &pContext->CrPacker, pContext->u32CrConClientID, 1128 &pSrcAllocInfo->pAlloc->AllocData, &pDstAllocInfo->pAlloc->AllocData,1128 pSrcAllocInfo->pAlloc, pDstAllocInfo->pAlloc, 1129 1129 pSrcRect, pDstRects); 1130 1130 } -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPVdma.h
r47063 r47566 334 334 NTSTATUS vboxVdmaProcessClrFillCmd(PVBOXMP_DEVEXT pDevExt, struct VBOXWDDM_CONTEXT *pContext, struct VBOXWDDM_DMA_PRIVATEDATA_CLRFILL *pCF); 335 335 336 NTSTATUS vboxVdmaTexPresentSetAlloc(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOC_DATA *pAllocData);336 NTSTATUS vboxVdmaTexPresentSetAlloc(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_ALLOCATION pRealFbAlloc); 337 337 338 338 #endif /* #ifndef ___VBoxMPVdma_h___ */ -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r47151 r47566 270 270 } 271 271 272 NTSTATUS vboxWddmGhDisplaySetInfo(PVBOXMP_DEVEXT pDevExt, const VBOXWDDM_ALLOC_DATA *pAllocData, const POINT * pVScreenPos)272 NTSTATUS vboxWddmGhDisplaySetInfo(PVBOXMP_DEVEXT pDevExt, PVBOXWDDM_ALLOCATION pRealFbAlloc, const VBOXWDDM_ALLOC_DATA *pAllocData, const POINT * pVScreenPos) 273 273 { 274 274 NTSTATUS Status = vboxWddmGhDisplaySetMode(pDevExt, pAllocData); … … 283 283 if (pDevExt->f3DEnabled) 284 284 { 285 Status = vboxVdmaTexPresentSetAlloc(pDevExt, p AllocData);285 Status = vboxVdmaTexPresentSetAlloc(pDevExt, pRealFbAlloc); 286 286 if (NT_SUCCESS(Status)) 287 287 return STATUS_SUCCESS; … … 311 311 char fGhSynced = 1; 312 312 PVBOXWDDM_ALLOCATION pFbAlloc = VBOXWDDM_FB_ALLOCATION(pDevExt, pSource); 313 PVBOXWDDM_ALLOCATION pRealFbAlloc = pSource->pPrimaryAllocation; 313 314 #ifdef VBOXWDDM_RENDER_FROM_SHADOW 314 315 # ifdef VBOX_WDDM_WIN8 … … 339 340 Assert(!pFbAlloc || pFbAlloc->AllocData.Addr.SegmentId == pSource->AllocData.Addr.SegmentId); 340 341 341 NTSTATUS Status = vboxWddmGhDisplaySetInfo(pDevExt, p FbAlloc ? &pFbAlloc->AllocData : &pSource->AllocData, &pSource->VScreenPos);342 NTSTATUS Status = vboxWddmGhDisplaySetInfo(pDevExt, pRealFbAlloc, pFbAlloc ? &pFbAlloc->AllocData : &pSource->AllocData, &pSource->VScreenPos); 342 343 if (NT_SUCCESS(Status)) 343 344 pSource->fGhSynced = fGhSynced; … … 1428 1429 uint32_t flags = VBoxCommonFromDeviceExt(pDevExt)->hostCtx.pfHostFlags->u32HostFlags; 1429 1430 bOur = (flags & HGSMIHOSTFLAGS_IRQ); 1431 1432 if (bOur) 1433 VBoxHGSMIClearIrq(&VBoxCommonFromDeviceExt(pDevExt)->hostCtx); 1434 1430 1435 do 1431 1436 { … … 1559 1564 } 1560 1565 1561 VBoxHGSMIClearIrq(&VBoxCommonFromDeviceExt(pDevExt)->hostCtx);1562 1566 #if 0 //def DEBUG_misha 1563 1567 /* this is not entirely correct since host may concurrently complete some commands and raise a new IRQ while we are here, -
trunk/src/VBox/GuestHost/OpenGL/include/cr_server.h
r47485 r47566 209 209 VBOXVR_SCR_COMPOSITOR_ENTRY CEntry; 210 210 VBOXVR_SCR_COMPOSITOR_ENTRY RootVrCEntry; 211 void *pvUserData1;212 void *pvUserData2;213 211 } CR_DISPLAY_ENTRY, *PCR_DISPLAY_ENTRY; 214 212 /**/ … … 349 347 /* DISPLAY */ 350 348 349 #define CR_DENTRY_FROM_CENTRY(_pCentry) ((CR_DISPLAY_ENTRY*)((uint8_t*)(_pCentry) - RT_OFFSETOF(CR_DISPLAY_ENTRY, CEntry))) 350 351 351 352 /* @todo: 352 353 * 1. use compositor stored inside mural to use current MuralFBO and window-related API … … 359 360 } CR_DISPLAY, *PCR_DISPLAY; 360 361 361 int CrDpInit(PCR_DISPLAY pDisplay);362 void CrDpTerm(PCR_DISPLAY pDisplay);363 void CrDpResize(PCR_DISPLAY pDisplay, int32_t xPos, int32_t yPos, uint32_t width, uint32_t height);364 void CrDpEntryInit(PCR_DISPLAY_ENTRY pEntry, const VBOXVR_TEXTURE *pTextureData, void *pvUserData);365 void CrDpEntryCleanup(PCR_DISPLAY pDisplay, PCR_DISPLAY_ENTRY pEntry);366 int CrDpEntryRegionsSet(PCR_DISPLAY pDisplay, PCR_DISPLAY_ENTRY pEntry, const RTPOINT *pPos, uint32_t cRegions, const RTRECT *paRegions);367 int CrDpEntryRegionsAdd(PCR_DISPLAY pDisplay, PCR_DISPLAY_ENTRY pEntry, const RTPOINT *pPos, uint32_t cRegions, const RTRECT *paRegions);368 void CrDpEntryRegionsClear(PCR_DISPLAY pDisplay);369 DECLINLINE(bool) CrDpEntryIsUsed(PCR_DISPLAY_ENTRY pEntry)370 {371 return CrVrScrCompositorEntryIsInList(&pEntry->CEntry);372 }373 374 DECLINLINE(CRMuralInfo*) CrDpGetMural(PCR_DISPLAY pDisplay)375 {376 return &pDisplay->Mural;377 }378 362 379 363 typedef struct CR_DISPLAY_ENTRY_MAP 380 364 { 381 CRHashTable * pTex tureMap;365 CRHashTable * pTexIdToDemInfoMap; 382 366 } CR_DISPLAY_ENTRY_MAP, *PCR_DISPLAY_ENTRY_MAP; 383 367 384 int CrDemInit(PCR_DISPLAY_ENTRY_MAP pMap);385 void CrDemTerm(PCR_DISPLAY_ENTRY_MAP pMap);386 PCR_DISPLAY_ENTRY CrDemEntryAcquire(PCR_DISPLAY_ENTRY_MAP pMap, GLuint idTexture);387 void CrDemEntryRelease(PCR_DISPLAY_ENTRY pEntry);388 //void CrDemEntryDestroy(PCR_DISPLAY_ENTRY_MAP pMap, GLuint idTexture);389 368 390 369 /* */ -
trunk/src/VBox/GuestHost/OpenGL/include/cr_version.h
r47116 r47566 37 37 /* dummy windows and contexts have 0 external IDs, so never get stored to the state */ 38 38 #define SHCROGL_SSM_VERSION_WITH_FIXED_DUMMYIDS 39 39 #define SHCROGL_SSM_VERSION 39 39 #define SHCROGL_SSM_VERSION_WITH_SCREEN_INFO 40 40 #define SHCROGL_SSM_VERSION 40 40 41 41 42 /* These define the Chromium release number. -
trunk/src/VBox/GuestHost/OpenGL/include/cr_vreg.h
r46966 r47566 400 400 VBOXVREGDECL(int) CrVrScrCompositorEntryRemove(PVBOXVR_SCR_COMPOSITOR pCompositor, PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry); 401 401 VBOXVREGDECL(void) CrVrScrCompositorEntryFlagsSet(PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry, uint32_t fFlags); 402 VBOXVREGDECL(uint32_t) CrVrScrCompositorEntryFlagsGet(PVBOXVR_SCR_COMPOSITOR pCompositor, PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry); 402 VBOXVREGDECL(uint32_t) CrVrScrCompositorEntryFlagsCombinedGet(PVBOXVR_SCR_COMPOSITOR pCompositor, PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry); 403 DECLINLINE(uint32_t) CrVrScrCompositorEntryFlagsGet(PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry) 404 { 405 return pEntry->fFlags; 406 } 407 403 408 VBOXVREGDECL(void) CrVrScrCompositorInit(PVBOXVR_SCR_COMPOSITOR pCompositor); 404 409 VBOXVREGDECL(void) CrVrScrCompositorClear(PVBOXVR_SCR_COMPOSITOR pCompositor); -
trunk/src/VBox/GuestHost/OpenGL/util/vreg.cpp
r46966 r47566 1749 1749 Assert(cRects); 1750 1750 Assert(cRects <= pData->cRects); 1751 int rc = VBoxVrListRectsGet(&pCEntry->Vr, cRects, pEntry->paDst Rects);1751 int rc = VBoxVrListRectsGet(&pCEntry->Vr, cRects, pEntry->paDstUnstretchedRects); 1752 1752 AssertRC(rc); 1753 1753 1754 memcpy(pEntry->paDstUnstretchedRects, pEntry->paDstRects, cRects * sizeof (*pEntry->paDstUnstretchedRects));1755 1756 1754 if (!pEntry->Pos.x && !pEntry->Pos.y) 1757 1755 { 1758 memcpy(pEntry->paSrcRects, pEntry->paDst Rects, cRects * sizeof (*pEntry->paSrcRects));1756 memcpy(pEntry->paSrcRects, pEntry->paDstUnstretchedRects, cRects * sizeof (*pEntry->paSrcRects)); 1759 1757 } 1760 1758 else … … 1762 1760 for (uint32_t i = 0; i < cRects; ++i) 1763 1761 { 1764 pEntry->paSrcRects[i].xLeft = (int32_t)((pEntry->paDst Rects[i].xLeft - pEntry->Pos.x));1765 pEntry->paSrcRects[i].yTop = (int32_t)((pEntry->paDst Rects[i].yTop - pEntry->Pos.y));1766 pEntry->paSrcRects[i].xRight = (int32_t)((pEntry->paDst Rects[i].xRight - pEntry->Pos.x));1767 pEntry->paSrcRects[i].yBottom = (int32_t)((pEntry->paDst Rects[i].yBottom - pEntry->Pos.y));1762 pEntry->paSrcRects[i].xLeft = (int32_t)((pEntry->paDstUnstretchedRects[i].xLeft - pEntry->Pos.x)); 1763 pEntry->paSrcRects[i].yTop = (int32_t)((pEntry->paDstUnstretchedRects[i].yTop - pEntry->Pos.y)); 1764 pEntry->paSrcRects[i].xRight = (int32_t)((pEntry->paDstUnstretchedRects[i].xRight - pEntry->Pos.x)); 1765 pEntry->paSrcRects[i].yBottom = (int32_t)((pEntry->paDstUnstretchedRects[i].yBottom - pEntry->Pos.y)); 1768 1766 } 1769 1767 } … … 1776 1774 if (pCompositor->StretchX != 1.) 1777 1775 { 1778 pEntry->paDstRects[i].xLeft = (int32_t)(pEntry->paDst Rects[i].xLeft * pCompositor->StretchX);1779 pEntry->paDstRects[i].xRight = (int32_t)(pEntry->paDst Rects[i].xRight * pCompositor->StretchX);1776 pEntry->paDstRects[i].xLeft = (int32_t)(pEntry->paDstUnstretchedRects[i].xLeft * pCompositor->StretchX); 1777 pEntry->paDstRects[i].xRight = (int32_t)(pEntry->paDstUnstretchedRects[i].xRight * pCompositor->StretchX); 1780 1778 } 1781 1779 if (pCompositor->StretchY != 1.) 1782 1780 { 1783 pEntry->paDstRects[i].yTop = (int32_t)(pEntry->paDstRects[i].yTop * pCompositor->StretchY); 1784 pEntry->paDstRects[i].yBottom = (int32_t)(pEntry->paDstRects[i].yBottom * pCompositor->StretchY); 1785 } 1786 } 1787 } 1788 1781 pEntry->paDstRects[i].yTop = (int32_t)(pEntry->paDstUnstretchedRects[i].yTop * pCompositor->StretchY); 1782 pEntry->paDstRects[i].yBottom = (int32_t)(pEntry->paDstUnstretchedRects[i].yBottom * pCompositor->StretchY); 1783 } 1784 } 1785 } 1786 else 1787 #endif 1788 { 1789 memcpy(pEntry->paDstRects, pEntry->paDstUnstretchedRects, cRects * sizeof (*pEntry->paDstUnstretchedRects)); 1790 } 1791 1792 #if 0//ndef IN_RING0 1789 1793 bool canZeroX = (pCompositor->StretchX < 1.); 1790 1794 bool canZeroY = (pCompositor->StretchY < 1.); … … 1795 1799 for (iOrig = 0, iNew = 0; iOrig < cRects; ++iOrig) 1796 1800 { 1797 PRTRECT pOrigRect = &pEntry->pa SrcRects[iOrig];1798 if (pOrigRect->xLeft == pOrigRect->xRight1799 || pOrigRect->yTop == pOrigRect->yBottom)1801 PRTRECT pOrigRect = &pEntry->paDstRects[iOrig]; 1802 if (pOrigRect->xLeft != pOrigRect->xRight 1803 && pOrigRect->yTop != pOrigRect->yBottom) 1800 1804 continue; 1801 1805 … … 2294 2298 } 2295 2299 2296 VBOXVREGDECL(uint32_t) CrVrScrCompositorEntryFlags Get(PVBOXVR_SCR_COMPOSITOR pCompositor, PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry)2300 VBOXVREGDECL(uint32_t) CrVrScrCompositorEntryFlagsCombinedGet(PVBOXVR_SCR_COMPOSITOR pCompositor, PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry) 2297 2301 { 2298 2302 return CRBLT_FOP_COMBINE(pCompositor->fFlags, pEntry->fFlags); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h
r47485 r47566 398 398 399 399 int crServerVBoxParseNumerics(const char *pszStr, const int defaultVal); 400 401 400 402 void CrDpEnter(PCR_DISPLAY pDisplay); 401 403 void CrDpLeave(PCR_DISPLAY pDisplay); 404 int CrDpInit(PCR_DISPLAY pDisplay); 405 void CrDpTerm(PCR_DISPLAY pDisplay); 406 407 DECLINLINE(bool) CrDpIsEmpty(PCR_DISPLAY pDisplay) 408 { 409 return CrVrScrCompositorIsEmpty(&pDisplay->Mural.Compositor); 410 } 411 412 int CrDpSaveState(PCR_DISPLAY pDisplay, PSSMHANDLE pSSM); 413 int CrDpLoadState(PCR_DISPLAY pDisplay, PSSMHANDLE pSSM, uint32_t version); 414 415 void CrDpResize(PCR_DISPLAY pDisplay, int32_t xPos, int32_t yPos, uint32_t width, uint32_t height); 416 void CrDpEntryInit(PCR_DISPLAY_ENTRY pEntry, const VBOXVR_TEXTURE *pTextureData); 417 void CrDpEntryCleanup(PCR_DISPLAY pDisplay, PCR_DISPLAY_ENTRY pEntry); 418 int CrDpEntryRegionsSet(PCR_DISPLAY pDisplay, PCR_DISPLAY_ENTRY pEntry, const RTPOINT *pPos, uint32_t cRegions, const RTRECT *paRegions); 419 int CrDpEntryRegionsAdd(PCR_DISPLAY pDisplay, PCR_DISPLAY_ENTRY pEntry, const RTPOINT *pPos, uint32_t cRegions, const RTRECT *paRegions); 420 void CrDpEntryRegionsClear(PCR_DISPLAY pDisplay); 421 DECLINLINE(bool) CrDpEntryIsUsed(PCR_DISPLAY_ENTRY pEntry) 422 { 423 return CrVrScrCompositorEntryIsInList(&pEntry->CEntry); 424 } 425 426 DECLINLINE(CRMuralInfo*) CrDpGetMural(PCR_DISPLAY pDisplay) 427 { 428 return &pDisplay->Mural; 429 } 430 431 int CrDemGlobalInit(); 432 void CrDemTeGlobalTerm(); 433 int CrDemInit(PCR_DISPLAY_ENTRY_MAP pMap); 434 void CrDemTerm(PCR_DISPLAY_ENTRY_MAP pMap); 435 PCR_DISPLAY_ENTRY CrDemEntryAcquire(PCR_DISPLAY_ENTRY_MAP pMap, GLuint idTexture); 436 void CrDemEntryRelease(PCR_DISPLAY_ENTRY pEntry); 437 int CrDemEntrySaveState(PCR_DISPLAY_ENTRY pEntry, PSSMHANDLE pSSM); 438 int CrDemEntryLoadState(PCR_DISPLAY_ENTRY_MAP pMap, PCR_DISPLAY_ENTRY *ppEntry, PSSMHANDLE pSSM); 439 440 int crServerDisplaySaveState(PSSMHANDLE pSSM); 441 int crServerDisplayLoadState(PSSMHANDLE pSSM, uint32_t u32Version); 402 442 403 443 //#define VBOX_WITH_CRSERVER_DUMPER -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_context.c
r46173 r47566 382 382 if (id != mural->iCurDrawBuffer) 383 383 { 384 cr Warning("DBO draw buffer changed on make current");384 crDebug("DBO draw buffer changed on make current"); 385 385 mural->iCurDrawBuffer = id; 386 386 } … … 389 389 if (id != mural->iCurReadBuffer) 390 390 { 391 cr Warning("DBO read buffer changed on make current");391 crDebug("DBO read buffer changed on make current"); 392 392 mural->iCurReadBuffer = id; 393 393 } -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c
r47529 r47566 189 189 crServerDisplayTermAll(); 190 190 CrDemTerm(&cr_server.PresentTexturepMap); 191 CrDemTeGlobalTerm(); 191 192 memset(cr_server.DisplaysInitMap, 0, sizeof (cr_server.DisplaysInitMap)); 192 193 memset(cr_server.aDispplays, 0, sizeof (cr_server.aDispplays)); … … 348 349 cr_server.u32Caps = 0; 349 350 #ifdef DEBUG_misha 350 //cr_server.u32Caps = CR_VBOX_CAP_TEX_PRESENT;351 cr_server.u32Caps = CR_VBOX_CAP_TEX_PRESENT; 351 352 #endif 352 353 } … … 381 382 cr_server.dummyMuralTable = crAllocHashtable(); 382 383 384 CrDemGlobalInit(); 385 383 386 CrDemInit(&cr_server.PresentTexturepMap); 384 387 memset(cr_server.DisplaysInitMap, 0, sizeof (cr_server.DisplaysInitMap)); … … 460 463 cr_server.u32Caps = 0; 461 464 #ifdef DEBUG_misha 462 //cr_server.u32Caps = CR_VBOX_CAP_TEX_PRESENT;465 cr_server.u32Caps = CR_VBOX_CAP_TEX_PRESENT; 463 466 #endif 464 467 } … … 501 504 502 505 cr_server.dummyMuralTable = crAllocHashtable(); 506 507 CrDemGlobalInit(); 503 508 504 509 CrDemInit(&cr_server.PresentTexturepMap); … … 1725 1730 } 1726 1731 1732 rc = crServerDisplaySaveState(pSSM); 1733 AssertRCReturn(rc, rc); 1734 1727 1735 /* all context gl error states should have now be synced with chromium erro states, 1728 1736 * reset the error if any */ … … 2612 2620 cr_server.curClient = NULL; 2613 2621 2622 if (version >= SHCROGL_SSM_VERSION_WITH_SCREEN_INFO) 2623 { 2624 rc = crServerDisplayLoadState(pSSM, version); 2625 AssertRCReturn(rc, rc); 2626 } 2627 2614 2628 while ((err = cr_server.head_spu->dispatch_table.GetError()) != GL_NO_ERROR) 2615 2629 crWarning("crServer: glGetError %d after loading snapshot", err); -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp
r47116 r47566 31 31 #include <iprt/asm.h> 32 32 #include <iprt/mem.h> 33 #include <iprt/list.h> 34 #include <iprt/memcache.h> 33 35 34 36 … … 63 65 { 64 66 const GLint visBits = cr_server.MainContextInfo.CreateInfo.visualBits; 65 if (crServerMuralInit(&pDisplay->Mural, "", visBits, 0, GL_FALSE) < 0)67 if (crServerMuralInit(&pDisplay->Mural, "", visBits, -1, GL_FALSE) < 0) 66 68 { 67 69 crWarning("crServerMuralInit failed!"); … … 85 87 CrVrScrCompositorSetStretching(&pDisplay->Mural.Compositor, 1., 1.); 86 88 } 89 90 int CrDpSaveState(PCR_DISPLAY pDisplay, PSSMHANDLE pSSM) 91 { 92 VBOXVR_SCR_COMPOSITOR_ITERATOR Iter; 93 CrVrScrCompositorIterInit(&pDisplay->Mural.Compositor, &Iter); 94 PVBOXVR_SCR_COMPOSITOR_ENTRY pEntry; 95 uint32_t u32 = 0; 96 while ((pEntry = CrVrScrCompositorIterNext(&Iter)) != NULL) 97 { 98 ++u32; 99 } 100 101 int rc = SSMR3PutU32(pSSM, u32); 102 AssertRCReturn(rc, rc); 103 104 CrVrScrCompositorIterInit(&pDisplay->Mural.Compositor, &Iter); 105 106 while ((pEntry = CrVrScrCompositorIterNext(&Iter)) != NULL) 107 { 108 CR_DISPLAY_ENTRY *pDEntry = CR_DENTRY_FROM_CENTRY(pEntry); 109 rc = CrDemEntrySaveState(pDEntry, pSSM); 110 AssertRCReturn(rc, rc); 111 112 u32 = CrVrScrCompositorEntryFlagsGet(&pDEntry->CEntry); 113 rc = SSMR3PutU32(pSSM, u32); 114 AssertRCReturn(rc, rc); 115 116 rc = SSMR3PutS32(pSSM, CrVrScrCompositorEntryPosGet(&pDEntry->CEntry)->x); 117 AssertRCReturn(rc, rc); 118 119 rc = SSMR3PutS32(pSSM, CrVrScrCompositorEntryPosGet(&pDEntry->CEntry)->y); 120 AssertRCReturn(rc, rc); 121 122 const RTRECT * pRects; 123 rc = CrVrScrCompositorEntryRegionsGet(&pDisplay->Mural.Compositor, &pDEntry->CEntry, &u32, NULL, NULL, &pRects); 124 AssertRCReturn(rc, rc); 125 126 rc = SSMR3PutU32(pSSM, u32); 127 AssertRCReturn(rc, rc); 128 129 if (u32) 130 { 131 rc = SSMR3PutMem(pSSM, pRects, u32 * sizeof (*pRects)); 132 AssertRCReturn(rc, rc); 133 } 134 } 135 136 return VINF_SUCCESS; 137 } 138 139 int CrDpLoadState(PCR_DISPLAY pDisplay, PSSMHANDLE pSSM, uint32_t version) 140 { 141 uint32_t u32 = 0; 142 int rc = SSMR3GetU32(pSSM, &u32); 143 AssertRCReturn(rc, rc); 144 145 if (!u32) 146 return VINF_SUCCESS; 147 148 CrDpEnter(pDisplay); 149 150 for (uint32_t i = 0; i < u32; ++i) 151 { 152 CR_DISPLAY_ENTRY *pDEntry; 153 rc = CrDemEntryLoadState(&cr_server.PresentTexturepMap, &pDEntry, pSSM); 154 AssertRCReturn(rc, rc); 155 156 uint32_t fFlags; 157 rc = SSMR3GetU32(pSSM, &fFlags); 158 AssertRCReturn(rc, rc); 159 160 CrVrScrCompositorEntryFlagsSet(&pDEntry->CEntry, fFlags); 161 162 RTPOINT Pos; 163 rc = SSMR3GetS32(pSSM, &Pos.x); 164 AssertRCReturn(rc, rc); 165 166 rc = SSMR3GetS32(pSSM, &Pos.y); 167 AssertRCReturn(rc, rc); 168 169 uint32_t cRects; 170 rc = SSMR3GetU32(pSSM, &cRects); 171 AssertRCReturn(rc, rc); 172 173 RTRECT * pRects = NULL; 174 if (cRects) 175 { 176 pRects = (RTRECT *)crAlloc(cRects * sizeof (*pRects)); 177 AssertReturn(pRects, VERR_NO_MEMORY); 178 179 rc = SSMR3GetMem(pSSM, pRects, cRects * sizeof (*pRects)); 180 AssertRCReturn(rc, rc); 181 } 182 183 rc = CrDpEntryRegionsAdd(pDisplay, pDEntry, &Pos, (uint32_t)cRects, (const RTRECT*)pRects); 184 AssertRCReturn(rc, rc); 185 186 if (pRects) 187 crFree(pRects); 188 } 189 190 CrDpLeave(pDisplay); 191 192 return VINF_SUCCESS; 193 } 194 87 195 88 196 int CrDpEntryRegionsSet(PCR_DISPLAY pDisplay, PCR_DISPLAY_ENTRY pEntry, const RTPOINT *pPos, uint32_t cRegions, const RTRECT *paRegions) … … 147 255 } 148 256 149 void CrDpEntryInit(PCR_DISPLAY_ENTRY pEntry, const VBOXVR_TEXTURE *pTextureData , void *pvUserData1, void *pvUserData2)257 void CrDpEntryInit(PCR_DISPLAY_ENTRY pEntry, const VBOXVR_TEXTURE *pTextureData) 150 258 { 151 259 CrVrScrCompositorEntryInit(&pEntry->CEntry, pTextureData, crDpEntryCEntryReleaseCB); … … 153 261 CrVrScrCompositorEntryInit(&pEntry->RootVrCEntry, pTextureData, NULL); 154 262 CrVrScrCompositorEntryFlagsSet(&pEntry->RootVrCEntry, CRBLT_F_INVERT_SRC_YCOORDS); 155 pEntry->pvUserData1 = pvUserData1;156 pEntry->pvUserData2 = pvUserData2;157 263 } 158 264 … … 174 280 } 175 281 176 int CrDemInit(PCR_DISPLAY_ENTRY_MAP pMap) 177 { 178 pMap->pTextureMap = crAllocHashtable(); 179 if (pMap->pTextureMap) 180 return VINF_SUCCESS; 181 182 crWarning("crAllocHashtable failed!"); 183 return VERR_NO_MEMORY; 184 } 185 186 void crDemEntryRelease(PCR_DISPLAY_ENTRY_MAP pMap, PCR_DISPLAY_ENTRY pEntry, bool fForceDelete) 187 { 188 CRTextureObj *pTobj = (CRTextureObj *)pEntry->pvUserData2; 189 if (!pTobj) 190 { 191 crWarning("Trying to release entry that does not have tobj specified"); 192 return; 193 } 194 195 CR_STATE_SHAREDOBJ_USAGE_CLEAR(pTobj, cr_server.MainContextInfo.pContext); 196 197 bool fDeleteEntry = fForceDelete; 198 GLuint idTexture = pTobj->id; 282 typedef struct CR_DEM_ENTRY_INFO 283 { 284 CRTextureObj *pTobj; 285 uint32_t cEntries; 286 } CR_DEM_ENTRY_INFO; 287 288 typedef struct CR_DEM_ENTRY 289 { 290 CR_DISPLAY_ENTRY Entry; 291 CR_DEM_ENTRY_INFO *pInfo; 292 CR_DISPLAY_ENTRY_MAP *pMap; 293 } CR_DEM_ENTRY; 294 295 #define PCR_DEM_ENTRY_FROM_ENTRY(_pEntry) ((CR_DEM_ENTRY*)((uint8_t*)(_pEntry) - RT_OFFSETOF(CR_DEM_ENTRY, Entry))) 296 297 static RTMEMCACHE g_VBoxCrDemLookasideList; 298 static RTMEMCACHE g_VBoxCrDemInfoLookasideList; 299 300 int CrDemGlobalInit() 301 { 302 int rc = RTMemCacheCreate(&g_VBoxCrDemLookasideList, sizeof (CR_DEM_ENTRY), 303 0, /* size_t cbAlignment */ 304 UINT32_MAX, /* uint32_t cMaxObjects */ 305 NULL, /* PFNMEMCACHECTOR pfnCtor*/ 306 NULL, /* PFNMEMCACHEDTOR pfnDtor*/ 307 NULL, /* void *pvUser*/ 308 0 /* uint32_t fFlags*/ 309 ); 310 if (RT_SUCCESS(rc)) 311 { 312 rc = RTMemCacheCreate(&g_VBoxCrDemInfoLookasideList, sizeof (CR_DEM_ENTRY_INFO), 313 0, /* size_t cbAlignment */ 314 UINT32_MAX, /* uint32_t cMaxObjects */ 315 NULL, /* PFNMEMCACHECTOR pfnCtor*/ 316 NULL, /* PFNMEMCACHEDTOR pfnDtor*/ 317 NULL, /* void *pvUser*/ 318 0 /* uint32_t fFlags*/ 319 ); 320 if (RT_SUCCESS(rc)) 321 return VINF_SUCCESS; 322 else 323 crWarning("RTMemCacheCreate failed rc %d", rc); 324 325 RTMemCacheDestroy(g_VBoxCrDemLookasideList); 326 } 327 else 328 crWarning("RTMemCacheCreate failed rc %d", rc); 329 return VINF_SUCCESS; 330 } 331 332 void CrDemTeGlobalTerm() 333 { 334 RTMemCacheDestroy(g_VBoxCrDemLookasideList); 335 RTMemCacheDestroy(g_VBoxCrDemInfoLookasideList); 336 } 337 338 static CR_DEM_ENTRY* crDemEntryAlloc() 339 { 340 return (CR_DEM_ENTRY*)RTMemCacheAlloc(g_VBoxCrDemLookasideList); 341 } 342 343 static CR_DEM_ENTRY_INFO* crDemEntryInfoAlloc() 344 { 345 return (CR_DEM_ENTRY_INFO*)RTMemCacheAlloc(g_VBoxCrDemInfoLookasideList); 346 } 347 348 static void crDemEntryFree(CR_DEM_ENTRY* pDemEntry) 349 { 350 RTMemCacheFree(g_VBoxCrDemLookasideList, pDemEntry); 351 } 352 353 static void crDemEntryInfoFree(CR_DEM_ENTRY_INFO* pDemEntryInfo) 354 { 355 RTMemCacheFree(g_VBoxCrDemInfoLookasideList, pDemEntryInfo); 356 } 357 358 void crDemEntryRelease(PCR_DISPLAY_ENTRY_MAP pMap, CR_DEM_ENTRY *pDemEntry) 359 { 360 CR_DEM_ENTRY_INFO *pInfo = pDemEntry->pInfo; 361 CRTextureObj *pTobj = pInfo->pTobj; 362 363 --pInfo->cEntries; 364 365 if (!pInfo->cEntries) 366 { 367 CR_STATE_SHAREDOBJ_USAGE_CLEAR(pInfo->pTobj, cr_server.MainContextInfo.pContext); 368 369 crHashtableDelete(pMap->pTexIdToDemInfoMap, pTobj->id, NULL); 370 371 crDemEntryInfoFree(pInfo); 372 } 199 373 200 374 if (!CR_STATE_SHAREDOBJ_USAGE_IS_USED(pTobj)) … … 205 379 /* on the host side, we need to delete an ogl texture object here as well, which crStateDeleteTextureCallback will do 206 380 * in addition to calling crStateDeleteTextureObject to delete a state object */ 207 crHashtableDelete(pShared->textureTable, idTexture, crStateDeleteTextureCallback);381 crHashtableDelete(pShared->textureTable, pTobj->id, crStateDeleteTextureCallback); 208 382 209 383 crStateGlobalSharedRelease(); 210 211 fDeleteEntry = true; 212 } 213 else 214 { 215 /* this is something we would not generally expect */ 216 CRASSERT(!fForceDelete); 217 } 218 219 if (fDeleteEntry) 220 { 221 if (pMap) 222 crHashtableDelete(pMap->pTextureMap, idTexture, crFree); 223 else 224 crFree(pEntry); /* <- when called from crDemTermEntryCb */ 225 226 crStateGlobalSharedRelease(); 227 } 228 } 229 230 void crDemTermEntryCb(void *pvEntry) 231 { 232 crDemEntryRelease(NULL, (PCR_DISPLAY_ENTRY)pvEntry, true); 384 } 385 386 crDemEntryFree(pDemEntry); 387 388 crStateGlobalSharedRelease(); 389 } 390 391 int CrDemInit(PCR_DISPLAY_ENTRY_MAP pMap) 392 { 393 pMap->pTexIdToDemInfoMap = crAllocHashtable(); 394 if (pMap->pTexIdToDemInfoMap) 395 return VINF_SUCCESS; 396 397 crWarning("crAllocHashtable failed"); 398 return VERR_NO_MEMORY; 233 399 } 234 400 235 401 void CrDemTerm(PCR_DISPLAY_ENTRY_MAP pMap) 236 402 { 237 crFreeHashtable(pMap->pTextureMap, crDemTermEntryCb); 403 crFreeHashtable(pMap->pTexIdToDemInfoMap, NULL); 404 pMap->pTexIdToDemInfoMap = NULL; 238 405 } 239 406 240 407 void CrDemEntryRelease(PCR_DISPLAY_ENTRY pEntry) 241 408 { 242 PCR_DISPLAY_ENTRY_MAP pMap = (PCR_DISPLAY_ENTRY_MAP)pEntry->pvUserData1; 243 Assert(pMap); 244 crDemEntryRelease(pMap, pEntry, false); 409 CR_DEM_ENTRY *pDemEntry = PCR_DEM_ENTRY_FROM_ENTRY(pEntry); 410 crDemEntryRelease(pDemEntry->pMap, pDemEntry); 411 } 412 413 int CrDemEntrySaveState(PCR_DISPLAY_ENTRY pEntry, PSSMHANDLE pSSM) 414 { 415 CR_DEM_ENTRY *pDemEntry = PCR_DEM_ENTRY_FROM_ENTRY(pEntry); 416 int rc = SSMR3PutU32(pSSM, pDemEntry->pInfo->pTobj->id); 417 AssertRCReturn(rc, rc); 418 return rc; 419 } 420 421 int CrDemEntryLoadState(PCR_DISPLAY_ENTRY_MAP pMap, PCR_DISPLAY_ENTRY *ppEntry, PSSMHANDLE pSSM) 422 { 423 uint32_t u32; 424 int rc = SSMR3GetU32(pSSM, &u32); 425 AssertRCReturn(rc, rc); 426 427 PCR_DISPLAY_ENTRY pEntry = CrDemEntryAcquire(pMap, u32); 428 if (!pEntry) 429 { 430 crWarning("CrDemEntryAcquire failed"); 431 return VERR_NO_MEMORY; 432 } 433 434 *ppEntry = pEntry; 435 return VINF_SUCCESS; 245 436 } 246 437 247 438 PCR_DISPLAY_ENTRY CrDemEntryAcquire(PCR_DISPLAY_ENTRY_MAP pMap, GLuint idTexture) 248 439 { 249 PCR_DISPLAY_ENTRY pEntry = (PCR_DISPLAY_ENTRY)crHashtableSearch(pMap->pTextureMap, idTexture); 250 if (pEntry) 251 return pEntry; 440 CR_DEM_ENTRY *pDemEntry = NULL; 252 441 253 442 CRSharedState *pShared = crStateGlobalSharedAcquire(); … … 282 471 TextureData.hwid = hwId; 283 472 284 p Entry = (PCR_DISPLAY_ENTRY)crAlloc(sizeof (*pEntry));285 if (!p Entry)286 { 287 crWarning("cr Alloc failed allocating CR_DISPLAY_ENTRY");473 pDemEntry = crDemEntryAlloc(); 474 if (!pDemEntry) 475 { 476 crWarning("crDemEntryAlloc failed allocating CR_DEM_ENTRY"); 288 477 crStateGlobalSharedRelease(); 289 478 return NULL; 290 479 } 291 480 292 CrDpEntryInit(pEntry, &TextureData, pMap, pTobj); 481 CrDpEntryInit(&pDemEntry->Entry, &TextureData); 482 483 CR_DEM_ENTRY_INFO *pInfo = (CR_DEM_ENTRY_INFO*)crHashtableSearch(pMap->pTexIdToDemInfoMap, pTobj->id); 484 if (!pInfo) 485 { 486 pInfo = crDemEntryInfoAlloc(); 487 CRASSERT(pInfo); 488 crHashtableAdd(pMap->pTexIdToDemInfoMap, pTobj->id, pInfo); 489 pInfo->cEntries = 0; 490 pInfo->pTobj = pTobj; 491 } 492 493 ++pInfo->cEntries; 494 pDemEntry->pInfo = pInfo; 495 pDemEntry->pMap = pMap; 293 496 294 497 /* just use main context info's context to hold the texture reference */ 295 498 CR_STATE_SHAREDOBJ_USAGE_SET(pTobj, cr_server.MainContextInfo.pContext); 296 499 297 crHashtableAdd(pMap->pTextureMap, idTexture, pEntry); 298 return pEntry; 299 300 } 301 #if 0 302 void CrDemEntryDestroy(PCR_DISPLAY_ENTRY_MAP pMap, GLuint idTexture) 303 { 304 #ifdef DEBUG 305 { 306 PCR_DISPLAY_ENTRY pEntry = (PCR_DISPLAY_ENTRY)crHashtableSearch(pMap->pTextureMap, idTexture); 307 if (!pEntry) 308 { 309 crWarning("request to delete inexistent entry"); 310 return; 311 } 312 313 Assert(!CrDpEntryIsUsed(pEntry)); 314 } 315 #endif 316 crHashtableDelete(pMap->pTextureMap, idTexture, crFree); 317 } 318 #endif 500 return &pDemEntry->Entry; 501 } 502 319 503 PCR_DISPLAY crServerDisplayGetInitialized(uint32_t idScreen) 320 504 { … … 352 536 } 353 537 538 int crServerDisplaySaveState(PSSMHANDLE pSSM) 539 { 540 int rc; 541 int cDisplays = 0, i; 542 for (i = 0; i < cr_server.screenCount; ++i) 543 { 544 if (ASMBitTest(cr_server.DisplaysInitMap, i) && !CrDpIsEmpty(&cr_server.aDispplays[i])) 545 ++cDisplays; 546 } 547 548 rc = SSMR3PutS32(pSSM, cDisplays); 549 AssertRCReturn(rc, rc); 550 551 for (i = 0; i < cr_server.screenCount; ++i) 552 { 553 if (ASMBitTest(cr_server.DisplaysInitMap, i) && !CrDpIsEmpty(&cr_server.aDispplays[i])) 554 { 555 rc = SSMR3PutS32(pSSM, i); 556 AssertRCReturn(rc, rc); 557 558 rc = CrDpSaveState(&cr_server.aDispplays[i], pSSM); 559 AssertRCReturn(rc, rc); 560 } 561 } 562 563 return VINF_SUCCESS; 564 } 565 566 int crServerDisplayLoadState(PSSMHANDLE pSSM, uint32_t u32Version) 567 { 568 int rc; 569 int s32, i; 570 571 rc = SSMR3GetS32(pSSM, &s32); 572 AssertRCReturn(rc, rc); 573 574 for (i = 0; i < s32; ++i) 575 { 576 int iScreen; 577 578 rc = SSMR3GetS32(pSSM, &iScreen); 579 AssertRCReturn(rc, rc); 580 581 PCR_DISPLAY pDisplay = crServerDisplayGet((uint32_t)iScreen); 582 if (!pDisplay) 583 { 584 crWarning("crServerDisplayGet failed"); 585 return VERR_GENERAL_FAILURE; 586 } 587 588 rc = CrDpLoadState(pDisplay, pSSM, u32Version); 589 AssertRCReturn(rc, rc); 590 } 591 592 return VINF_SUCCESS; 593 } 594 354 595 void crServerDisplayTermAll() 355 596 { -
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_window.c
r47529 r47566 492 492 } 493 493 494 #define CR_DENTRY_FROM_CENTRY(_pCentry) ((CR_DISPLAY_ENTRY*)((uint8_t*)(_pCentry) - RT_OFFSETOF(CR_DISPLAY_ENTRY, CEntry)))495 496 494 static DECLCALLBACK(VBOXVR_SCR_COMPOSITOR_ENTRY*) crServerMuralGetRootVrCEntry(VBOXVR_SCR_COMPOSITOR_ENTRY*pEntry, void *pvContext) 497 495 { … … 706 704 if (mural->fRootVrOn) 707 705 { 708 uint32_t cRects;709 const RTRECT *pRects;710 706 int rc = crServerMuralSynchRootVr(mural); 711 707 if (RT_SUCCESS(rc)) -
trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu.c
r46885 r47566 669 669 const RTRECT *paSrcRegions, *paDstRegions; 670 670 int rc = CrVrScrCompositorEntryRegionsGet(pCompositor, pEntry, &cRegions, &paSrcRegions, &paDstRegions, NULL); 671 uint32_t fFlags = CrVrScrCompositorEntryFlags Get(pCompositor, pEntry);671 uint32_t fFlags = CrVrScrCompositorEntryFlagsCombinedGet(pCompositor, pEntry); 672 672 if (RT_SUCCESS(rc)) 673 673 { … … 700 700 const RTRECT *paSrcRegions, *paDstRegions; 701 701 int rc = CrVrScrCompositorEntryRegionsGet(pCompositor, pEntry, &cRegions, &paSrcRegions, &paDstRegions, NULL); 702 uint32_t fFlags = CrVrScrCompositorEntryFlags Get(pCompositor, pEntry);702 uint32_t fFlags = CrVrScrCompositorEntryFlagsCombinedGet(pCompositor, pEntry); 703 703 if (RT_SUCCESS(rc)) 704 704 { -
trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m
r46885 r47566 1255 1255 const RTRECT *paSrcRegions, *paDstRegions; 1256 1256 int rc = CrVrScrCompositorEntryRegionsGet(pCompositor, pEntry, &cRegions, &paSrcRegions, &paDstRegions, NULL); 1257 uint32_t fFlags = CrVrScrCompositorEntryFlags Get(pCompositor, pEntry);1257 uint32_t fFlags = CrVrScrCompositorEntryFlagsCombinedGet(pCompositor, pEntry); 1258 1258 if (RT_SUCCESS(rc)) 1259 1259 { … … 1379 1379 const RTRECT *paSrcRegions, *paDstRegions; 1380 1380 int rc = CrVrScrCompositorEntryRegionsGet(pCompositor, pEntry, &cRegions, &paSrcRegions, &paDstRegions, NULL); 1381 uint32_t fFlags = CrVrScrCompositorEntryFlags Get(pCompositor, pEntry);1381 uint32_t fFlags = CrVrScrCompositorEntryFlagsCombinedGet(pCompositor, pEntry); 1382 1382 if (RT_SUCCESS(rc)) 1383 1383 {
Note:
See TracChangeset
for help on using the changeset viewer.