- Timestamp:
- Nov 25, 2009 10:19:40 AM (15 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/DisplayImpl.cpp
r24924 r24931 1322 1322 mpVbvaMemory->indexRecordFree = 0; 1323 1323 1324 #ifdef VBOX_WITH_OLD_VBVA_LOCK 1325 mfu32PendingVideoAccelDisable = false; 1326 #endif /* VBOX_WITH_OLD_VBVA_LOCK */ 1327 1324 1328 LogRel(("VBVA: Enabled.\n")); 1325 1329 } … … 2281 2285 } 2282 2286 2287 #ifdef VBOX_WITH_OLD_VBVA_LOCK 2288 int Display::DrawToScreenEMT(Display *pDisplay, BYTE *address, ULONG x, ULONG y, ULONG width, ULONG height) 2289 { 2290 int rc; 2291 pDisplay->vbvaLock(); 2292 rc = pDisplay->mpDrv->pUpPort->pfnDisplayBlt(pDisplay->mpDrv->pUpPort, address, x, y, width, height); 2293 pDisplay->vbvaUnlock(); 2294 return rc; 2295 } 2296 #endif /* VBOX_WITH_OLD_VBVA_LOCK */ 2283 2297 2284 2298 STDMETHODIMP Display::DrawToScreen (BYTE *address, ULONG x, ULONG y, … … 2314 2328 */ 2315 2329 #ifdef VBOX_WITH_OLD_VBVA_LOCK 2316 int rcVBox = 0; 2317 // @todo vbva int rcVBox = VMR3ReqCallWait(pVM, VMCPUID_ANY, (PFNRT)Display::DrawToScreenEMT, 6, 2318 // this, address, x, y, width, height); 2330 int rcVBox = VMR3ReqCallWait(pVM, VMCPUID_ANY, (PFNRT)Display::DrawToScreenEMT, 6, 2331 this, address, x, y, width, height); 2319 2332 #else 2320 2333 int rcVBox = VMR3ReqCallWait(pVM, VMCPUID_ANY, (PFNRT)mpDrv->pUpPort->pfnDisplayBlt, 6, … … 2347 2360 } 2348 2361 2362 #ifdef VBOX_WITH_OLD_VBVA_LOCK 2363 void Display::InvalidateAndUpdateEMT(Display *pDisplay) 2364 { 2365 pDisplay->vbvaLock(); 2366 pDisplay->mpDrv->pUpPort->pfnUpdateDisplayAll(pDisplay->mpDrv->pUpPort); 2367 pDisplay->vbvaUnlock(); 2368 } 2369 #endif /* VBOX_WITH_OLD_VBVA_LOCK */ 2370 2349 2371 /** 2350 2372 * Does a full invalidation of the VM display and instructs the VM … … 2376 2398 /* pdm.h says that this has to be called from the EMT thread */ 2377 2399 #ifdef VBOX_WITH_OLD_VBVA_LOCK 2378 int rcVBox = 0; 2379 // #todo vbva int rcVBox = VMR3ReqCallVoidWait(pVM, VMCPUID_ANY, (PFNRT)Display::InvalidateAndUpdateEMT, 2380 // 1, this); 2400 int rcVBox = VMR3ReqCallVoidWait(pVM, VMCPUID_ANY, (PFNRT)Display::InvalidateAndUpdateEMT, 2401 1, this); 2381 2402 #else 2382 2403 int rcVBox = VMR3ReqCallVoidWait(pVM, VMCPUID_ANY, … … 2709 2730 /* No VBVA do a display update. */ 2710 2731 DISPLAYFBINFO *pFBInfo = &pDisplay->maFramebuffers[VBOX_VIDEO_PRIMARY_SCREEN]; 2711 if (!pFBInfo->pFramebuffer.isNull() )2732 if (!pFBInfo->pFramebuffer.isNull() && pFBInfo->u32ResizeStatus == ResizeStatus_Void) 2712 2733 { 2713 2734 Assert(pDrv->Connector.pu8Data); 2714 Assert(pFBInfo->u32ResizeStatus == ResizeStatus_Void);2735 pDisplay->vbvaLock(); 2715 2736 pDrv->pUpPort->pfnUpdateDisplay(pDrv->pUpPort); 2737 pDisplay->vbvaUnlock(); 2716 2738 } 2717 2739 } -
trunk/src/VBox/Main/include/DisplayImpl.h
r24924 r24931 351 351 352 352 private: 353 static void InvalidateAndUpdateEMT(Display *pDisplay); 354 static int DrawToScreenEMT(Display *pDisplay, BYTE *address, ULONG x, ULONG y, ULONG width, ULONG height); 355 353 356 int videoAccelRefreshProcess(void); 354 357
Note:
See TracChangeset
for help on using the changeset viewer.