Lines Matching defs:pFb

42 void CrFbInit(CR_FRAMEBUFFER *pFb, uint32_t idFb)
49 memset(pFb, 0, sizeof (*pFb));
50 pFb->ScreenInfo.u16Flags = VBVA_SCREEN_F_DISABLED;
51 pFb->ScreenInfo.u32ViewIndex = idFb;
52 CrVrScrCompositorInit(&pFb->Compositor, &Rect);
53 RTListInit(&pFb->EntriesList);
54 CrHTableCreate(&pFb->SlotTable, 0);
58 bool CrFbIsEnabled(CR_FRAMEBUFFER *pFb)
60 return !(pFb->ScreenInfo.u16Flags & VBVA_SCREEN_F_DISABLED);
64 const struct VBOXVR_SCR_COMPOSITOR* CrFbGetCompositor(CR_FRAMEBUFFER *pFb)
66 return &pFb->Compositor;
84 int CrFbUpdateBegin(CR_FRAMEBUFFER *pFb)
86 ++pFb->cUpdating;
88 if (pFb->cUpdating == 1)
90 if (pFb->pDisplay)
91 pFb->pDisplay->UpdateBegin(pFb);
97 void CrFbUpdateEnd(CR_FRAMEBUFFER *pFb)
99 if (!pFb->cUpdating)
105 --pFb->cUpdating;
107 if (!pFb->cUpdating)
109 if (pFb->pDisplay)
110 pFb->pDisplay->UpdateEnd(pFb);
114 bool CrFbIsUpdating(const CR_FRAMEBUFFER *pFb)
116 return !!pFb->cUpdating;
802 int CrFbResize(CR_FRAMEBUFFER *pFb, const struct VBVAINFOSCREEN * pScreen, void *pvVRAM)
804 if (!pFb->cUpdating)
811 if (CrFbIsEnabled(pFb))
813 rc = CrFbRegionsClear(pFb);
826 rc = CrVrScrCompositorRectSet(&pFb->Compositor, &Rect, NULL);
833 pFb->ScreenInfo = *pScreen;
834 pFb->pvVram = pvVRAM ? pvVRAM : g_pvVRamBase + pScreen->u32StartOffset;
836 if (pFb->pDisplay)
837 pFb->pDisplay->FramebufferChanged(pFb);
842 void CrFbTerm(CR_FRAMEBUFFER *pFb)
844 if (pFb->cUpdating)
849 uint32_t idFb = pFb->ScreenInfo.u32ViewIndex;
851 CrVrScrCompositorClear(&pFb->Compositor);
852 CrHTableDestroy(&pFb->SlotTable);
854 Assert(RTListIsEmpty(&pFb->EntriesList));
855 Assert(!pFb->cEntries);
857 memset(pFb, 0, sizeof (*pFb));
859 pFb->ScreenInfo.u16Flags = VBVA_SCREEN_F_DISABLED;
860 pFb->ScreenInfo.u32ViewIndex = idFb;
863 ICrFbDisplay* CrFbDisplayGet(CR_FRAMEBUFFER *pFb)
865 return pFb->pDisplay;
868 int CrFbDisplaySet(CR_FRAMEBUFFER *pFb, ICrFbDisplay *pDisplay)
870 if (pFb->cUpdating)
876 if (pFb->pDisplay == pDisplay)
879 pFb->pDisplay = pDisplay;
1053 static void crFbEntryMarkDestroyed(CR_FRAMEBUFFER *pFb, CR_FRAMEBUFFER_ENTRY* pEntry)
1058 if (pFb->pDisplay)
1059 pFb->pDisplay->EntryDestroyed(pFb, pEntry);
1067 static void crFbEntryDestroy(CR_FRAMEBUFFER *pFb, CR_FRAMEBUFFER_ENTRY* pEntry)
1069 crFbEntryMarkDestroyed(pFb, pEntry);
1072 Assert(pFb->cEntries);
1074 --pFb->cEntries;
1083 DECLINLINE(uint32_t) crFbEntryRelease(CR_FRAMEBUFFER *pFb, CR_FRAMEBUFFER_ENTRY* pEntry)
1087 crFbEntryDestroy(pFb, pEntry);
1093 CR_FRAMEBUFFER *pFb = PCR_FRAMEBUFFER_FROM_COMPOSITOR(pCompositor);
1101 crFbEntryMarkDestroyed(pFb, pFbReplacingEntry);
1110 if (pFb->pDisplay)
1111 pFb->pDisplay->EntryReplaced(pFb, pFbReplacingEntry, pFbEntry);
1128 if (pFb->pDisplay)
1129 pFb->pDisplay->EntryRemoved(pFb, pFbEntry);
1137 crFbEntryRelease(pFb, pFbEntry);
1140 static CR_FRAMEBUFFER_ENTRY* crFbEntryCreate(CR_FRAMEBUFFER *pFb, CR_TEXDATA* pTex, const RTRECT *pRect, uint32_t fFlags)
1155 RTListAppend(&pFb->EntriesList, &pEntry->Node);
1156 ++pFb->cEntries;
1161 int CrFbEntryCreateForTexData(CR_FRAMEBUFFER *pFb, struct CR_TEXDATA *pTex, uint32_t fFlags, HCR_FRAMEBUFFER_ENTRY *phEntry)
1168 CR_FRAMEBUFFER_ENTRY* pEntry = crFbEntryCreate(pFb, pTex, &Rect, fFlags);
1179 int CrFbEntryTexDataUpdate(CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY pEntry, struct CR_TEXDATA *pTex)
1181 if (!pFb->cUpdating)
1192 if (pFb->pDisplay)
1193 pFb->pDisplay->EntryTexChanged(pFb, pEntry);
1204 int CrFbEntryCreateForTexId(CR_FRAMEBUFFER *pFb, GLuint idTexture, uint32_t fFlags, HCR_FRAMEBUFFER_ENTRY *phEntry)
1214 int rc = CrFbEntryCreateForTexData(pFb, pTex, fFlags, phEntry);
1225 void CrFbEntryAddRef(CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry)
1230 void CrFbEntryRelease(CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry)
1232 crFbEntryRelease(pFb, hEntry);
1291 int CrFbEntryRegionsAdd(CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry, const RTPOINT *pPos, uint32_t cRegions, const RTRECT *paRegions, bool fPosRelated)
1293 if (!pFb->cUpdating)
1318 int rc = CrVrScrCompositorEntryRegionsAdd(&pFb->Compositor, hEntry ? &hEntry->Entry : NULL, pPos, cRegions, paRegions, fPosRelated, &pReplacedScrEntry, &fChangeFlags);
1329 if (pFb->pDisplay)
1330 pFb->pDisplay->EntryCreated(pFb, hEntry);
1344 if (pFb->pDisplay)
1345 pFb->pDisplay->EntryAdded(pFb, hEntry);
1348 if (pFb->pDisplay)
1349 pFb->pDisplay->RegionsChanged(pFb);
1369 if (pFb->pDisplay)
1370 pFb->pDisplay->EntryTexChanged(pFb, hEntry);
1384 int CrFbEntryRegionsSet(CR_FRAMEBUFFER *pFb, HCR_FRAMEBUFFER_ENTRY hEntry, const RTPOINT *pPos, uint32_t cRegions, const RTRECT *paRegions, bool fPosRelated)
1386 if (!pFb->cUpdating)
1410 int rc = CrVrScrCompositorEntryRegionsSet(&pFb->Compositor, pNewEntry, pPos, cRegions, paRegions, fPosRelated, &fChanged);
1423 if (pFb->pDisplay)
1424 pFb->pDisplay->EntryCreated(pFb, hEntry);
1430 if (pFb->pDisplay)
1431 pFb->pDisplay->EntryAdded(pFb, hEntry);
1435 if (pFb->pDisplay)
1436 pFb->pDisplay->RegionsChanged(pFb);
1443 if (pFb->pDisplay)
1444 pFb->pDisplay->EntryTexChanged(pFb, hEntry);
1482 CRHTABLE_HANDLE CrFbDDataAllocSlot(CR_FRAMEBUFFER *pFb)
1484 return CrHTablePut(&pFb->SlotTable, (void*)1);
1487 void CrFbDDataReleaseSlot(CR_FRAMEBUFFER *pFb, CRHTABLE_HANDLE hSlot, PFNCR_FRAMEBUFFER_SLOT_RELEASE_CB pfnReleaseCb, void *pvContext)
1490 RTListForEachSafe(&pFb->EntriesList, hEntry, hNext, CR_FRAMEBUFFER_ENTRY, Node)
1495 pfnReleaseCb(pFb, hEntry, pvContext);
1501 CrHTableRemove(&pFb->SlotTable, hSlot);
2768 int CrFbEntrySaveState(CR_FRAMEBUFFER *pFb, CR_FRAMEBUFFER_ENTRY *hEntry, PSSMHANDLE pSSM)
2794 rc = CrVrScrCompositorEntryRegionsGet(&pFb->Compositor, pEntry, &u32, NULL, NULL, &pRect);
2808 int CrFbSaveState(CR_FRAMEBUFFER *pFb, PSSMHANDLE pSSM)
2811 CrVrScrCompositorConstIterInit(&pFb->Compositor, &Iter);
2826 CrVrScrCompositorConstIterInit(&pFb->Compositor, &Iter);
2835 rc = CrFbEntrySaveState(pFb, hEntry, pSSM);
2911 int CrFbEntryLoadState(CR_FRAMEBUFFER *pFb, PSSMHANDLE pSSM, uint32_t version)
2924 rc = CrFbEntryCreateForTexId(pFb, texture, fFlags, &hEntry);
2958 rc = CrFbEntryRegionsSet(pFb, hEntry, &Point, cRects, pRects, false);
2964 CrFbEntryRelease(pFb, hEntry);
2969 int CrFbLoadState(CR_FRAMEBUFFER *pFb, PSSMHANDLE pSSM, uint32_t version)
2978 rc = CrFbUpdateBegin(pFb);
2983 rc = CrFbEntryLoadState(pFb, pSSM, version);
2987 CrFbUpdateEnd(pFb);
3035 CR_FRAMEBUFFER *pFb = CrPMgrFbGet(iScreen);
3036 Assert(pFb);
3102 rc = CrPMgrResize(&Screen, cr_server.fCrCmdEnabled ? NULL : CrFbGetVRAM(pFb), aEmptyTargetMap);
3105 rc = CrFbLoadState(pFb, pSSM, version);
3113 rc = CrPMgrResize(&Screen, cr_server.fCrCmdEnabled ? NULL : CrFbGetVRAM(pFb), aTargetMap);
3118 rc = CrFbLoadState(pFb, pSSM, version);