Changeset 25052 in vbox
- Timestamp:
- Nov 27, 2009 3:01:37 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
-
include/VBox/VBoxVideo.h (modified) (1 diff)
-
include/VBox/pdmifs.h (modified) (2 diffs)
-
src/VBox/Additions/WINNT/Graphics/Display/dd.c (modified) (2 diffs)
-
src/VBox/Additions/WINNT/Graphics/Display/drv.c (modified) (3 diffs)
-
src/VBox/Additions/WINNT/Graphics/Display/enable.c (modified) (1 diff)
-
src/VBox/Additions/WINNT/Graphics/Display/vbox.c (modified) (3 diffs)
-
src/VBox/Devices/Graphics/DevVGA_VBVA.cpp (modified) (3 diffs)
-
src/VBox/Main/DisplayImpl.cpp (modified) (4 diffs)
-
src/VBox/Main/include/DisplayImpl.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxVideo.h
r25047 r25052 758 758 #pragma pack(1) 759 759 760 typedef struct _VBVABUFFER760 typedef struct VBVAHOSTFLAGS 761 761 { 762 762 uint32_t u32HostEvents; 763 763 uint32_t u32SupportedOrders; 764 } VBVAHOSTFLAGS; 765 766 typedef struct _VBVABUFFER 767 { 768 VBVAHOSTFLAGS hostFlags; 764 769 765 770 /* The offset where the data start in the buffer. */ -
trunk/include/VBox/pdmifs.h
r24373 r25052 438 438 typedef struct VBVAINFOSCREEN *PVBVAINFOSCREEN; 439 439 typedef struct VBVAINFOVIEW *PVBVAINFOVIEW; 440 typedef struct VBVAHOSTFLAGS *PVBVAHOSTFLAGS; 440 441 441 442 /** Pointer to a display connector interface. */ … … 555 556 * @thread The emulation thread. 556 557 */ 557 DECLR3CALLBACKMEMBER(int, pfnVBVAEnable,(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId ));558 DECLR3CALLBACKMEMBER(int, pfnVBVAEnable,(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, PVBVAHOSTFLAGS pHostFlags)); 558 559 559 560 /** -
trunk/src/VBox/Additions/WINNT/Graphics/Display/dd.c
r25047 r25052 1192 1192 vbvaReportDirtyRect (pDev, &pDesc->UpdatedMemRegion.Rect); 1193 1193 1194 if ( pDev->pVBVA-> u32HostEvents1194 if ( pDev->pVBVA->hostFlags.u32HostEvents 1195 1195 & VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET) 1196 1196 { 1197 1197 vrdpReset (pDev); 1198 1198 1199 pDev->pVBVA-> u32HostEvents &=1199 pDev->pVBVA->hostFlags.u32HostEvents &= 1200 1200 ~VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET; 1201 1201 } 1202 1202 1203 if (pDev->pVBVA-> u32HostEvents1203 if (pDev->pVBVA->hostFlags.u32HostEvents 1204 1204 & VBVA_F_MODE_VRDP) 1205 1205 { … … 1284 1284 vbvaReportDirtyRect (pDev, &pDev->ddLock.rArea); 1285 1285 1286 if ( pDev->pVBVA-> u32HostEvents1286 if ( pDev->pVBVA->hostFlags.u32HostEvents 1287 1287 & VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET) 1288 1288 { 1289 1289 vrdpReset (pDev); 1290 1290 1291 pDev->pVBVA-> u32HostEvents &=1291 pDev->pVBVA->hostFlags.u32HostEvents &= 1292 1292 ~VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET; 1293 1293 } 1294 1294 1295 if (pDev->pVBVA-> u32HostEvents1295 if (pDev->pVBVA->hostFlags.u32HostEvents 1296 1296 & VBVA_F_MODE_VRDP) 1297 1297 { -
trunk/src/VBox/Additions/WINNT/Graphics/Display/drv.c
r17704 r25052 144 144 vbva##__fn __a; \ 145 145 \ 146 if ( ppdev->pVBVA-> u32HostEvents\146 if ( ppdev->pVBVA->hostFlags.u32HostEvents \ 147 147 & VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET) \ 148 148 { \ 149 149 vrdpReset (ppdev); \ 150 150 \ 151 ppdev->pVBVA-> u32HostEvents &=\151 ppdev->pVBVA->hostFlags.u32HostEvents &= \ 152 152 ~VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET; \ 153 153 } \ 154 154 \ 155 if (ppdev->pVBVA-> u32HostEvents\155 if (ppdev->pVBVA->hostFlags.u32HostEvents \ 156 156 & VBVA_F_MODE_VRDP) \ 157 157 { \ … … 366 366 367 367 if ( ppdev->pVBVA 368 && (ppdev->pVBVA-> u32HostEvents & VBVA_F_MODE_ENABLED))368 && (ppdev->pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_ENABLED)) 369 369 #endif /* VBOX_WITH_HGSMI */ 370 370 { … … 793 793 #else 794 794 if ( ppdev->pVBVA 795 && (ppdev->pVBVA-> u32HostEvents & VBVA_F_MODE_ENABLED))795 && (ppdev->pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_ENABLED)) 796 796 { 797 if (ppdev->pVBVA-> u32HostEvents797 if (ppdev->pVBVA->hostFlags.u32HostEvents 798 798 & VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET) 799 799 { 800 800 vrdpReset (ppdev); 801 801 802 ppdev->pVBVA-> u32HostEvents &=802 ppdev->pVBVA->hostFlags.u32HostEvents &= 803 803 ~VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET; 804 804 } 805 805 806 if (ppdev->pVBVA-> u32HostEvents806 if (ppdev->pVBVA->hostFlags.u32HostEvents 807 807 & VBVA_F_MODE_VRDP) 808 808 { -
trunk/src/VBox/Additions/WINNT/Graphics/Display/enable.c
r22868 r25052 146 146 if (ppdev && ppdev->pVBVA) 147 147 { 148 if (ppdev->pVBVA-> u32HostEvents & VBVA_F_MODE_VRDP)148 if (ppdev->pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_VRDP) 149 149 { 150 150 ret = 1; 151 151 } 152 DISPDBG((0, "VBOXESC_ISVRDPACTIVE -> %d (%x)\n", ret, ppdev->pVBVA-> u32HostEvents));152 DISPDBG((0, "VBOXESC_ISVRDPACTIVE -> %d (%x)\n", ret, ppdev->pVBVA->hostFlags.u32HostEvents)); 153 153 } 154 154 else -
trunk/src/VBox/Additions/WINNT/Graphics/Display/vbox.c
r22592 r25052 405 405 DISPDBG((1, "VBoxDisp::vboxVbvaEnable screen %p vbva off 0x%x\n", ppdev->pjScreen, ppdev->layout.offVBVABuffer)); 406 406 407 pVBVA-> u32HostEvents = 0;408 pVBVA-> u32SupportedOrders = 0;407 pVBVA->hostFlags.u32HostEvents = 0; 408 pVBVA->hostFlags.u32SupportedOrders = 0; 409 409 pVBVA->off32Data = 0; 410 410 pVBVA->off32Free = 0; … … 451 451 452 452 if ( ppdev->pVBVA 453 && (ppdev->pVBVA-> u32HostEvents & VBVA_F_MODE_ENABLED))453 && (ppdev->pVBVA->hostFlags.u32HostEvents & VBVA_F_MODE_ENABLED)) 454 454 { 455 455 uint32_t indexRecordNext; … … 659 659 } 660 660 661 if (pVBVA-> u32SupportedOrders & (1 << code))661 if (pVBVA->hostFlags.u32SupportedOrders & (1 << code)) 662 662 { 663 663 return TRUE; -
trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
r24940 r25052 485 485 if (pVGAState->pDrv->pfnVBVAEnable) 486 486 { 487 rc = pVGAState->pDrv->pfnVBVAEnable (pVGAState->pDrv, uScreenId); 487 pVBVA->hostFlags.u32HostEvents = 0; 488 pVBVA->hostFlags.u32SupportedOrders = 0; 489 490 rc = pVGAState->pDrv->pfnVBVAEnable (pVGAState->pDrv, uScreenId, &pVBVA->hostFlags); 488 491 } 489 492 else … … 494 497 if (RT_SUCCESS (rc)) 495 498 { 496 /* Setup flags. */ 497 pVBVA->u32HostEvents = VBVA_F_MODE_ENABLED | 498 VBVA_F_MODE_VRDP | 499 VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET; 500 501 pVBVA->u32SupportedOrders = ~0; 499 /* pVBVA->hostFlags has been set up by pfnVBVAEnable. */ 500 LogFlowFunc(("u32HostEvents 0x%08X, u32SupportedOrders %0x%08X\n", 501 pVBVA->hostFlags.u32HostEvents, pVBVA->hostFlags.u32SupportedOrders)); 502 502 503 503 pCtx->aViews[uScreenId].partialRecord.pu8 = NULL; … … 520 520 if (pView->pVBVA) 521 521 { 522 pView->pVBVA-> u32HostEvents = 0;523 pView->pVBVA-> u32SupportedOrders = 0;522 pView->pVBVA->hostFlags.u32HostEvents = 0; 523 pView->pVBVA->hostFlags.u32SupportedOrders = 0; 524 524 525 525 pView->partialRecord.pu8 = NULL; -
trunk/src/VBox/Main/DisplayImpl.cpp
r25036 r25052 1180 1180 } 1181 1181 } 1182 1183 #ifdef VBOX_WITH_HGSMI 1184 for (uScreenId = 0; uScreenId < cFBInfos; uScreenId++) 1185 { 1186 LogFlowFunc(("HGSMI[%d]: %p\n", uScreenId, paFBInfos[uScreenId].pVBVAHostFlags)); 1187 if (paFBInfos[uScreenId].pVBVAHostFlags) 1188 { 1189 uint32_t fu32HostEvents = VBOX_VIDEO_INFO_HOST_EVENTS_F_VRDP_RESET; 1190 1191 if (fVideoAccelEnabled) 1192 { 1193 fu32HostEvents |= VBVA_F_MODE_ENABLED; 1194 1195 if (fVideoAccelVRDP) 1196 { 1197 fu32HostEvents |= VBVA_F_MODE_VRDP; 1198 } 1199 } 1200 1201 paFBInfos[uScreenId].pVBVAHostFlags->u32HostEvents |= fu32HostEvents; 1202 paFBInfos[uScreenId].pVBVAHostFlags->u32SupportedOrders = fu32SupportedOrders; 1203 } 1204 } 1205 #endif /* VBOX_WITH_HGSMI */ 1182 1206 } 1183 1207 … … 1339 1363 void Display::VideoAccelVRDP (bool fEnable) 1340 1364 { 1365 LogFlowFunc(("fEnable = %d\n", fEnable)); 1366 1341 1367 #ifdef VBOX_WITH_OLD_VBVA_LOCK 1342 1368 vbvaLock(); … … 3123 3149 3124 3150 #ifdef VBOX_WITH_HGSMI 3125 DECLCALLBACK(int) Display::displayVBVAEnable(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId )3151 DECLCALLBACK(int) Display::displayVBVAEnable(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, PVBVAHOSTFLAGS pHostFlags) 3126 3152 { 3127 3153 LogFlowFunc(("uScreenId %d\n", uScreenId)); … … 3131 3157 3132 3158 pThis->maFramebuffers[uScreenId].fVBVAEnabled = true; 3159 pThis->maFramebuffers[uScreenId].pVBVAHostFlags = pHostFlags; 3160 3161 vbvaSetMemoryFlags(NULL, true, pThis->mfVideoAccelVRDP, pThis->mfu32SupportedOrders, pThis->maFramebuffers, pThis->mcMonitors); 3133 3162 3134 3163 return VINF_SUCCESS; -
trunk/src/VBox/Main/include/DisplayImpl.h
r24931 r25052 89 89 int32_t yBottom; 90 90 } vbvaSkippedRect; 91 PVBVAHOSTFLAGS pVBVAHostFlags; 91 92 #endif /* VBOX_WITH_HGSMI */ 92 93 } DISPLAYFBINFO; … … 286 287 287 288 #ifdef VBOX_WITH_HGSMI 288 static DECLCALLBACK(int) displayVBVAEnable(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId );289 static DECLCALLBACK(int) displayVBVAEnable(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, PVBVAHOSTFLAGS pHostFlags); 289 290 static DECLCALLBACK(void) displayVBVADisable(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId); 290 291 static DECLCALLBACK(void) displayVBVAUpdateBegin(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId);
Note:
See TracChangeset
for help on using the changeset viewer.

