Lines Matching refs:pModes

25 int VBoxVModesInit(VBOX_VMODES *pModes, uint32_t cTargets)
33 pModes->cTargets = cTargets;
36 int rc = CrSaInit(&pModes->aTargets[i], 16);
43 CrSaCleanup(&pModes->aTargets[j]);
52 void VBoxVModesCleanup(VBOX_VMODES *pModes)
54 for (uint32_t i = 0; i < pModes->cTargets; ++i)
56 CrSaCleanup(&pModes->aTargets[i]);
60 int VBoxVModesAdd(VBOX_VMODES *pModes, uint32_t u32Target, uint64_t u64)
62 if (u32Target >= pModes->cTargets)
68 return CrSaAdd(&pModes->aTargets[u32Target], u64);
71 int VBoxVModesRemove(VBOX_VMODES *pModes, uint32_t u32Target, uint64_t u64)
73 if (u32Target >= pModes->cTargets)
79 return CrSaRemove(&pModes->aTargets[u32Target], u64);
82 static void vboxWddmVModesInit(VBOXWDDM_VMODES *pModes, uint32_t cTargets)
84 VBoxVModesInit(&pModes->Modes, cTargets);
85 memset(pModes->aTransientResolutions, 0, cTargets * sizeof (pModes->aTransientResolutions[0]));
86 memset(pModes->aPendingRemoveCurResolutions, 0, cTargets * sizeof (pModes->aPendingRemoveCurResolutions[0]));
89 static void vboxWddmVModesCleanup(VBOXWDDM_VMODES *pModes)
91 VBoxVModesCleanup(&pModes->Modes);
92 memset(pModes->aTransientResolutions, 0, sizeof (pModes->aTransientResolutions));
93 memset(pModes->aPendingRemoveCurResolutions, 0, sizeof (pModes->aPendingRemoveCurResolutions));
97 static void vboxWddmVModesClone(const VBOXWDDM_VMODES *pModes, VBOXWDDM_VMODES *pDst)
99 VBoxVModesClone(&pModes->Modes, pDst->Modes);
100 memcpy(pDst->aTransientResolutions, pModes->aTransientResolutions, pModes->Modes.cTargets * sizeof (pModes->aTransientResolutions[0]));
101 memcpy(pDst->aPendingRemoveCurResolutions, pModes->aPendingRemoveCurResolutions, pModes->Modes.cTargets * sizeof (pModes->aPendingRemoveCurResolutions[0]));
124 int vboxWddmVModesRemove(PVBOXMP_DEVEXT pExt, VBOXWDDM_VMODES *pModes, uint32_t u32Target, const RTRECTSIZE *pResolution)
132 if (u32Target >= pModes->Modes.cTargets)
138 if (CR_RSIZE2U64(*pResolution) == pModes->aTransientResolutions[u32Target])
139 pModes->aTransientResolutions[u32Target] = 0;
143 if (CR_RSIZE2U64(*pResolution) == pModes->aPendingRemoveCurResolutions[u32Target])
146 if (pModes->aPendingRemoveCurResolutions[u32Target])
148 VBoxVModesRemove(&pModes->Modes, u32Target, pModes->aPendingRemoveCurResolutions[u32Target]);
149 pModes->aPendingRemoveCurResolutions[u32Target] = 0;
152 pModes->aPendingRemoveCurResolutions[u32Target] = CR_RSIZE2U64(*pResolution);
155 else if (CR_RSIZE2U64(*pResolution) == pModes->aPendingRemoveCurResolutions[u32Target])
156 pModes->aPendingRemoveCurResolutions[u32Target] = 0;
158 int rc = VBoxVModesRemove(&pModes->Modes, u32Target, CR_RSIZE2U64(*pResolution));
207 int vboxWddmVModesAdd(PVBOXMP_DEVEXT pExt, VBOXWDDM_VMODES *pModes, uint32_t u32Target, const RTRECTSIZE *pResolution, BOOLEAN fTransient)
215 if (u32Target >= pModes->Modes.cTargets)
246 if (pModes->aTransientResolutions[u32Target] == CR_RSIZE2U64(*pResolution))
249 pModes->aTransientResolutions[u32Target] = 0;
255 if (pModes->aPendingRemoveCurResolutions[u32Target] == CR_RSIZE2U64(*pResolution))
258 pModes->aPendingRemoveCurResolutions[u32Target] = 0;
264 rc = VBoxVModesAdd(&pModes->Modes, u32Target, CR_RSIZE2U64(*pResolution));
277 if (pModes->aTransientResolutions[u32Target])
280 RTRECTSIZE size = CR_U642RSIZE(pModes->aTransientResolutions[u32Target]);
281 int tmpRc = vboxWddmVModesRemove(pExt, pModes, u32Target, &size);
288 Assert(!pModes->aTransientResolutions[u32Target]);
290 pModes->aTransientResolutions[u32Target] = CR_RSIZE2U64(*pResolution);
297 int voxWddmVModesInitForTarget(PVBOXMP_DEVEXT pExt, VBOXWDDM_VMODES *pModes, uint32_t u32Target)
301 vboxWddmVModesAdd(pExt, pModes, u32Target, &g_VBoxBuiltinResolutions[i], FALSE);
306 vboxWddmVModesAdd(pExt, pModes, u32Target, &pExt->aTargets[u32Target].Size, TRUE);
354 vboxWddmVModesAdd(pExt, pModes, u32Target, &Resolution, TRUE);
382 vboxWddmVModesAdd(pExt, pModes, u32Target, &Resolution, FALSE);
395 VBOXWDDM_VMODES *pModes = &g_VBoxWddmVModes;
396 vboxWddmVModesCleanup(pModes);
401 VBOXWDDM_VMODES *pModes = &g_VBoxWddmVModes;
403 vboxWddmVModesInit(pModes, VBoxCommonFromDeviceExt(pExt)->cDisplays);
409 rc = voxWddmVModesInitForTarget(pExt, pModes, (uint32_t)i);