Changeset 50259 in vbox
- Timestamp:
- Jan 28, 2014 2:17:48 PM (11 years ago)
- Location:
- trunk/src/VBox/Devices/Graphics
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA.cpp
r50214 r50259 1037 1037 #else 1038 1038 { 1039 /* reset when VBE is switched off */1040 bool fNeedRest = !(val & VBE_DISPI_ENABLED) && (pThis->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED);1041 1042 1039 if ((val & VBE_DISPI_ENABLED) && 1043 1040 !(pThis->vbe_regs[VBE_DISPI_INDEX_ENABLE] & VBE_DISPI_ENABLED)) { … … 1132 1129 pThis->pDrv->pfnLFBModeChange(pThis->pDrv, (val & VBE_DISPI_ENABLED) != 0); 1133 1130 #ifdef VBOX_WITH_HGSMI 1134 if (fNeedRest) 1135 VBVAReset(pThis); 1131 VBVAPause(pThis, (val & VBE_DISPI_ENABLED) == 0); 1136 1132 #endif /* VBOX_WITH_HGSMI */ 1137 1133 -
trunk/src/VBox/Devices/Graphics/DevVGA.h
r50149 r50259 593 593 int VBVAUpdateDisplay (PVGASTATE pVGAState); 594 594 void VBVAReset (PVGASTATE pVGAState); 595 void VBVAPause (PVGASTATE pVGAState, bool fPause); 595 596 int VBVAGetScreenInfo(PVGASTATE pVGAState, unsigned uScreenId, struct VBVAINFOSCREEN *pScreen, void **ppvVram); 596 597 -
trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
r50149 r50259 82 82 VBVAVIEW aViews[64 /* @todo SchemaDefs::MaxGuestMonitors*/]; 83 83 VBVAMOUSESHAPEINFO mouseShapeInfo; 84 bool fPaused; 84 85 } VBVACONTEXT; 85 86 … … 2321 2322 } 2322 2323 2324 /* When VBVA is paused, then VGA device is allowed to work but 2325 * no HGSMI etc state is changed. 2326 */ 2327 void VBVAPause(PVGASTATE pVGAState, bool fPause) 2328 { 2329 if (!pVGAState || !pVGAState->pHGSMI) 2330 { 2331 return; 2332 } 2333 2334 VBVACONTEXT *pCtx = (VBVACONTEXT *)HGSMIContext(pVGAState->pHGSMI); 2335 2336 if (pCtx) 2337 { 2338 pCtx->fPaused = fPause; 2339 } 2340 } 2341 2323 2342 void VBVAReset (PVGASTATE pVGAState) 2324 2343 { … … 2369 2388 if (pCtx) 2370 2389 { 2371 rc = vbvaFlush (pVGAState, pCtx); 2372 2373 if (RT_SUCCESS (rc)) 2374 { 2375 if (!pCtx->aViews[0].pVBVA) 2376 { 2377 /* VBVA is not enabled for the first view, so VGA device must do updates. */ 2378 rc = VERR_NOT_SUPPORTED; 2390 if (!pCtx->fPaused) 2391 { 2392 rc = vbvaFlush (pVGAState, pCtx); 2393 2394 if (RT_SUCCESS (rc)) 2395 { 2396 if (!pCtx->aViews[0].pVBVA) 2397 { 2398 /* VBVA is not enabled for the first view, so VGA device must do updates. */ 2399 rc = VERR_NOT_SUPPORTED; 2400 } 2379 2401 } 2380 2402 } … … 2413 2435 VBVACONTEXT *pCtx = (VBVACONTEXT *)HGSMIContext (pVGAState->pHGSMI); 2414 2436 pCtx->cViews = pVGAState->cMonitors; 2437 pCtx->fPaused = true; 2415 2438 } 2416 2439 }
Note:
See TracChangeset
for help on using the changeset viewer.