Changeset 30215 in vbox
- Timestamp:
- Jun 15, 2010 10:31:34 PM (14 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics
- Files:
-
- 5 edited
-
Display/wddm/VBoxDispD3D.cpp (modified) (6 diffs)
-
Display/wddm/VBoxDispD3D.h (modified) (2 diffs)
-
Miniport/wddm/VBoxVideoIf.h (modified) (2 diffs)
-
Miniport/wddm/VBoxVideoVhwa.cpp (modified) (5 diffs)
-
Miniport/wddm/VBoxVideoWddm.cpp (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp
r30214 r30215 863 863 } 864 864 return NULL; 865 }866 867 static void vboxWddmRectUnited(RECT *pR, const RECT *pR2Unite)868 {869 pR->left = RT_MIN(pR->left, pR2Unite->left);870 pR->top = RT_MIN(pR->top, pR2Unite->top);871 pR->right = RT_MAX(pR->right, pR2Unite->right);872 pR->bottom = RT_MAX(pR->bottom, pR2Unite->bottom);873 865 } 874 866 … … 2382 2374 if (hr == S_OK) 2383 2375 { 2376 Assert(!pAlloc->LockInfo.cLocks); 2377 2384 2378 uintptr_t offset; 2385 2379 if (pData->Flags.AreaValid) … … 2400 2394 { 2401 2395 offset = 0; 2396 } 2397 2398 if (!pData->Flags.ReadOnly) 2399 { 2400 if (pData->Flags.AreaValid) 2401 vboxWddmDirtyRegionAddRect(&pAlloc->DirtyRegion, &pData->Area); 2402 else 2403 { 2404 Assert(!pData->Flags.RangeValid); 2405 Assert(!pData->Flags.BoxValid); 2406 vboxWddmDirtyRegionAddRect(&pAlloc->DirtyRegion, NULL); /* <- NULL means the entire surface */ 2407 } 2402 2408 } 2403 2409 … … 2412 2418 pData->Pitch = pAlloc->SurfDesc.pitch; 2413 2419 pData->SlicePitch = pAlloc->SurfDesc.slicePitch; 2420 2421 Assert(hr == S_OK); 2422 ++pAlloc->LockInfo.cLocks; 2414 2423 } 2415 2424 } … … 2513 2522 } UnlockData; 2514 2523 2524 PVBOXWDDMDISP_ALLOCATION pAlloc = &pRc->aAllocations[pData->SubResourceIndex]; 2525 2515 2526 UnlockData.Unlock.NumAllocations = 1; 2516 2527 UnlockData.Unlock.phAllocations = &UnlockData.hAllocation; 2517 UnlockData.hAllocation = p Rc->aAllocations[pData->SubResourceIndex].hAllocation;2528 UnlockData.hAllocation = pAlloc->hAllocation; 2518 2529 2519 2530 hr = pDevice->RtCallbacks.pfnUnlockCb(pDevice->hDevice, &UnlockData.Unlock); 2520 2531 Assert(hr == S_OK); 2532 if (hr == S_OK) 2533 { 2534 Assert(pAlloc->LockInfo.cLocks); 2535 --pAlloc->LockInfo.cLocks; 2536 Assert(pAlloc->LockInfo.cLocks < UINT32_MAX); 2537 } 2521 2538 } 2522 2539 … … 3567 3584 return S_OK; 3568 3585 } 3586 3587 AssertCompile(sizeof (RECT) == sizeof (D3DDDIRECT)); 3588 AssertCompile(RT_SIZEOFMEMB(RECT, left) == RT_SIZEOFMEMB(D3DDDIRECT, left)); 3589 AssertCompile(RT_SIZEOFMEMB(RECT, right) == RT_SIZEOFMEMB(D3DDDIRECT, right)); 3590 AssertCompile(RT_SIZEOFMEMB(RECT, top) == RT_SIZEOFMEMB(D3DDDIRECT, top)); 3591 AssertCompile(RT_SIZEOFMEMB(RECT, bottom) == RT_SIZEOFMEMB(D3DDDIRECT, bottom)); 3592 AssertCompile(RT_OFFSETOF(RECT, left) == RT_OFFSETOF(D3DDDIRECT, left)); 3593 AssertCompile(RT_OFFSETOF(RECT, right) == RT_OFFSETOF(D3DDDIRECT, right)); 3594 AssertCompile(RT_OFFSETOF(RECT, top) == RT_OFFSETOF(D3DDDIRECT, top)); 3595 AssertCompile(RT_OFFSETOF(RECT, bottom) == RT_OFFSETOF(D3DDDIRECT, bottom)); 3596 3569 3597 static HRESULT APIENTRY vboxWddmDDevCreateOverlay(HANDLE hDevice, D3DDDIARG_CREATEOVERLAY* pData) 3570 3598 { 3571 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3572 AssertBreakpoint(); 3573 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3574 return E_FAIL; 3599 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3600 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; 3601 PVBOXWDDMDISP_RESOURCE pRc = (PVBOXWDDMDISP_RESOURCE)pData->OverlayInfo.hResource; 3602 Assert(pRc); 3603 Assert(pRc->cAllocations > pData->OverlayInfo.SubResourceIndex); 3604 PVBOXWDDMDISP_ALLOCATION pAlloc = &pRc->aAllocations[pData->OverlayInfo.SubResourceIndex]; 3605 HRESULT hr = S_OK; 3606 PVBOXWDDMDISP_OVERLAY pOverlay = (PVBOXWDDMDISP_OVERLAY)RTMemAllocZ(sizeof (VBOXWDDMDISP_OVERLAY)); 3607 Assert(pOverlay); 3608 if (pOverlay) 3609 { 3610 VBOXWDDM_OVERLAY_INFO OurInfo; 3611 OurInfo.OverlayDesc.DstColorKeyLow = pData->OverlayInfo.DstColorKeyLow; 3612 OurInfo.OverlayDesc.DstColorKeyHigh = pData->OverlayInfo.DstColorKeyHigh; 3613 OurInfo.OverlayDesc.SrcColorKeyLow = pData->OverlayInfo.SrcColorKeyLow; 3614 OurInfo.OverlayDesc.SrcColorKeyHigh = pData->OverlayInfo.SrcColorKeyHigh; 3615 OurInfo.OverlayDesc.fFlags = pData->OverlayInfo.Flags.Value; 3616 vboxWddmDirtyRegionClear(&OurInfo.DirtyRegion); 3617 Assert(!pAlloc->LockInfo.cLocks); 3618 vboxWddmDirtyRegionUnite(&OurInfo.DirtyRegion, &pAlloc->DirtyRegion); 3619 D3DDDICB_CREATEOVERLAY OverInfo; 3620 OverInfo.VidPnSourceId = pData->VidPnSourceId; 3621 OverInfo.OverlayInfo.hAllocation = pAlloc->hAllocation; 3622 OverInfo.OverlayInfo.DstRect = *(D3DDDIRECT*)((void*)&pData->OverlayInfo.DstRect); 3623 OverInfo.OverlayInfo.SrcRect = *(D3DDDIRECT*)((void*)&pData->OverlayInfo.SrcRect); 3624 OverInfo.OverlayInfo.pPrivateDriverData = &OurInfo; 3625 OverInfo.OverlayInfo.PrivateDriverDataSize = sizeof (OurInfo); 3626 OverInfo.hKernelOverlay = NULL; /* <-- out */ 3627 hr = pDevice->RtCallbacks.pfnCreateOverlayCb(pDevice->hDevice, &OverInfo); 3628 Assert(hr == S_OK); 3629 if (hr == S_OK) 3630 { 3631 Assert(OverInfo.hKernelOverlay); 3632 pOverlay->hOverlay = OverInfo.hKernelOverlay; 3633 pOverlay->VidPnSourceId = pData->VidPnSourceId; 3634 3635 Assert(!pAlloc->LockInfo.cLocks); 3636 if (!pAlloc->LockInfo.cLocks) 3637 { 3638 /* we have reported the dirty rect, may clear it if no locks are pending currently */ 3639 vboxWddmDirtyRegionClear(&pAlloc->DirtyRegion); 3640 } 3641 3642 pData->hOverlay = pOverlay; 3643 } 3644 else 3645 { 3646 RTMemFree(pOverlay); 3647 } 3648 } 3649 else 3650 hr = E_OUTOFMEMORY; 3651 3652 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3653 return hr; 3575 3654 } 3576 3655 static HRESULT APIENTRY vboxWddmDDevUpdateOverlay(HANDLE hDevice, CONST D3DDDIARG_UPDATEOVERLAY* pData) 3577 3656 { 3578 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3579 AssertBreakpoint(); 3580 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3581 return E_FAIL; 3657 vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3658 PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice; 3659 PVBOXWDDMDISP_RESOURCE pRc = (PVBOXWDDMDISP_RESOURCE)pData->OverlayInfo.hResource; 3660 Assert(pRc); 3661 Assert(pRc->cAllocations > pData->OverlayInfo.SubResourceIndex); 3662 PVBOXWDDMDISP_ALLOCATION pAlloc = &pRc->aAllocations[pData->OverlayInfo.SubResourceIndex]; 3663 HRESULT hr = S_OK; 3664 PVBOXWDDMDISP_OVERLAY pOverlay = (PVBOXWDDMDISP_OVERLAY)pData->hOverlay; 3665 VBOXWDDM_OVERLAY_INFO OurInfo; 3666 OurInfo.OverlayDesc.DstColorKeyLow = pData->OverlayInfo.DstColorKeyLow; 3667 OurInfo.OverlayDesc.DstColorKeyHigh = pData->OverlayInfo.DstColorKeyHigh; 3668 OurInfo.OverlayDesc.SrcColorKeyLow = pData->OverlayInfo.SrcColorKeyLow; 3669 OurInfo.OverlayDesc.SrcColorKeyHigh = pData->OverlayInfo.SrcColorKeyHigh; 3670 OurInfo.OverlayDesc.fFlags = pData->OverlayInfo.Flags.Value; 3671 vboxWddmDirtyRegionClear(&OurInfo.DirtyRegion); 3672 Assert(!pAlloc->LockInfo.cLocks); 3673 vboxWddmDirtyRegionUnite(&OurInfo.DirtyRegion, &pAlloc->DirtyRegion); 3674 D3DDDICB_UPDATEOVERLAY OverInfo; 3675 OverInfo.hKernelOverlay = pOverlay->hOverlay; 3676 OverInfo.OverlayInfo.hAllocation = pAlloc->hAllocation; 3677 OverInfo.OverlayInfo.DstRect = *(D3DDDIRECT*)((void*)&pData->OverlayInfo.DstRect); 3678 OverInfo.OverlayInfo.SrcRect = *(D3DDDIRECT*)((void*)&pData->OverlayInfo.SrcRect); 3679 OverInfo.OverlayInfo.pPrivateDriverData = &OurInfo; 3680 OverInfo.OverlayInfo.PrivateDriverDataSize = sizeof (OurInfo); 3681 hr = pDevice->RtCallbacks.pfnUpdateOverlayCb(pDevice->hDevice, &OverInfo); 3682 Assert(hr == S_OK); 3683 if (hr == S_OK) 3684 { 3685 Assert(!pAlloc->LockInfo.cLocks); 3686 if (!pAlloc->LockInfo.cLocks) 3687 { 3688 /* we have reported the dirty rect, may clear it if no locks are pending currently */ 3689 vboxWddmDirtyRegionClear(&pAlloc->DirtyRegion); 3690 } 3691 } 3692 3693 vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice)); 3694 return hr; 3582 3695 } 3583 3696 static HRESULT APIENTRY vboxWddmDDevFlipOverlay(HANDLE hDevice, CONST D3DDDIARG_FLIPOVERLAY* pData) -
trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.h
r30167 r30215 121 121 IUnknown *pD3DIf; 122 122 VBOXWDDMDISP_LOCKINFO LockInfo; 123 VBOXWDDM_DIRTYREGION DirtyRegion; /* <- dirty region to notify host about */ 123 124 VBOXWDDM_SURFACE_DESC SurfDesc; 124 125 } VBOXWDDMDISP_ALLOCATION, *PVBOXWDDMDISP_ALLOCATION; … … 141 142 } VBOXWDDMDISP_TSS_LOOKUP; 142 143 144 typedef struct VBOXWDDMDISP_OVERLAY 145 { 146 D3DKMT_HANDLE hOverlay; 147 D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId; 148 PVBOXWDDMDISP_RESOURCE *pResource; 149 } VBOXWDDMDISP_OVERLAY, *PVBOXWDDMDISP_OVERLAY; 150 143 151 #define VBOXDISPMODE_IS_3D(_p) (!!((_p)->pD3D9If)) 144 152 -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoIf.h
r29966 r30215 108 108 } VBOXVHWA_INFO; 109 109 110 #define VBOXWDDM_OVERLAY_F_CKEY_DST 0x00000001 111 #define VBOXWDDM_OVERLAY_F_CKEY_DSTRANGE 0x00000002 112 #define VBOXWDDM_OVERLAY_F_CKEY_SRC 0x00000004 113 #define VBOXWDDM_OVERLAY_F_CKEY_SRCRANGE 0x00000008 114 #define VBOXWDDM_OVERLAY_F_BOB 0x00000010 115 #define VBOXWDDM_OVERLAY_F_INTERLEAVED 0x00000020 116 #define VBOXWDDM_OVERLAY_F_MIRROR_LR 0x00000040 117 #define VBOXWDDM_OVERLAY_F_MIRROR_UD 0x00000080 118 #define VBOXWDDM_OVERLAY_F_DEINTERLACED 0x00000100 119 120 typedef struct VBOXWDDM_OVERLAY_DESC 121 { 122 uint32_t fFlags; 123 UINT DstColorKeyLow; 124 UINT DstColorKeyHigh; 125 UINT SrcColorKeyLow; 126 UINT SrcColorKeyHigh; 127 } VBOXWDDM_OVERLAY_DESC, *PVBOXWDDM_OVERLAY_DESC; 128 129 /* the dirty rect info is valid */ 130 #define VBOXWDDM_DIRTYREGION_F_VALID 0x00000001 131 #define VBOXWDDM_DIRTYREGION_F_RECT_VALID 0x00000002 132 133 typedef struct VBOXWDDM_DIRTYREGION 134 { 135 uint32_t fFlags; /* <-- see VBOXWDDM_DIRTYREGION_F_xxx flags above */ 136 RECT Rect; 137 } VBOXWDDM_DIRTYREGION, *PVBOXWDDM_DIRTYREGION; 138 139 typedef struct VBOXWDDM_OVERLAY_INFO 140 { 141 VBOXWDDM_OVERLAY_DESC OverlayDesc; 142 VBOXWDDM_DIRTYREGION DirtyRegion; /* <- the dirty region of the overlay surface */ 143 } VBOXWDDM_OVERLAY_INFO, *PVBOXWDDM_OVERLAY_INFO; 144 145 typedef struct VBOXWDDM_OVERLAYFLIP_INFO 146 { 147 VBOXWDDM_DIRTYREGION DirtyRegion; /* <- the dirty region of the overlay surface */ 148 } VBOXWDDM_OVERLAYFLIP_INFO, *PVBOXWDDM_OVERLAYFLIP_INFO; 149 110 150 /* query info func */ 111 151 typedef struct VBOXWDDM_QI … … 195 235 } 196 236 237 DECLINLINE(void) vboxWddmRectUnite(RECT *pR, const RECT *pR2Unite) 238 { 239 pR->left = RT_MIN(pR->left, pR2Unite->left); 240 pR->top = RT_MIN(pR->top, pR2Unite->top); 241 pR->right = RT_MAX(pR->right, pR2Unite->right); 242 pR->bottom = RT_MAX(pR->bottom, pR2Unite->bottom); 243 } 244 245 DECLINLINE(void) vboxWddmDirtyRegionAddRect(PVBOXWDDM_DIRTYREGION pInfo, const RECT *pRect) 246 { 247 if (!(pInfo->fFlags & VBOXWDDM_DIRTYREGION_F_VALID)) 248 { 249 pInfo->fFlags = VBOXWDDM_DIRTYREGION_F_VALID; 250 if (pRect) 251 { 252 pInfo->fFlags |= VBOXWDDM_DIRTYREGION_F_RECT_VALID; 253 pInfo->Rect = *pRect; 254 } 255 } 256 else if (!!(pInfo->fFlags & VBOXWDDM_DIRTYREGION_F_RECT_VALID)) 257 { 258 if (pRect) 259 vboxWddmRectUnite(&pInfo->Rect, pRect); 260 else 261 pInfo->fFlags &= ~VBOXWDDM_DIRTYREGION_F_RECT_VALID; 262 } 263 } 264 265 DECLINLINE(void) vboxWddmDirtyRegionUnite(PVBOXWDDM_DIRTYREGION pInfo, const PVBOXWDDM_DIRTYREGION pInfo2) 266 { 267 if (pInfo2->fFlags & VBOXWDDM_DIRTYREGION_F_VALID) 268 { 269 if (pInfo2->fFlags & VBOXWDDM_DIRTYREGION_F_RECT_VALID) 270 vboxWddmDirtyRegionAddRect(pInfo, &pInfo2->Rect); 271 else 272 vboxWddmDirtyRegionAddRect(pInfo, NULL); 273 } 274 } 275 276 DECLINLINE(void) vboxWddmDirtyRegionClear(PVBOXWDDM_DIRTYREGION pInfo) 277 { 278 pInfo->fFlags = 0; 279 } 280 197 281 #endif /* #ifndef ___VBoxVideoIf_h___ */ -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVhwa.cpp
r30169 r30215 335 335 static void vboxVHWAInitSrc(PDEVICE_EXTENSION pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID srcId) 336 336 { 337 Assert(srcId < pDevExt->u.primary.cDisplays);337 Assert(srcId < (D3DDDI_VIDEO_PRESENT_SOURCE_ID)pDevExt->u.primary.cDisplays); 338 338 VBOXVHWA_INFO *pSettings = &pDevExt->aSources[srcId].Vhwa.Settings; 339 339 memset (pSettings, 0, sizeof (VBOXVHWA_INFO)); … … 408 408 /* we do not allocate/map anything, just issue a Disable command 409 409 * to ensure all pending commands are flushed */ 410 for ( uint32_t i = 0; i < pDevExt->u.primary.cDisplays; ++i)410 for (int i = 0; i < pDevExt->u.primary.cDisplays; ++i) 411 411 { 412 412 vboxVHWADisable(pDevExt, i); … … 660 660 int vboxVhwaHlpGetSurfInfo(PDEVICE_EXTENSION pDevExt, PVBOXWDDM_ALLOCATION pSurf) 661 661 { 662 for ( uint32_t i = 0; i < pDevExt->u.primary.cDisplays; ++i)662 for (int i = 0; i < pDevExt->u.primary.cDisplays; ++i) 663 663 { 664 664 PVBOXWDDM_SOURCE pSource = &pDevExt->aSources[i]; … … 708 708 int vboxVhwaHlpCheckInit(PDEVICE_EXTENSION pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId) 709 709 { 710 Assert(VidPnSourceId < pDevExt->u.primary.cDisplays);711 if (VidPnSourceId >= pDevExt->u.primary.cDisplays)710 Assert(VidPnSourceId < (D3DDDI_VIDEO_PRESENT_SOURCE_ID)pDevExt->u.primary.cDisplays); 711 if (VidPnSourceId >= (D3DDDI_VIDEO_PRESENT_SOURCE_ID)pDevExt->u.primary.cDisplays) 712 712 return VERR_INVALID_PARAMETER; 713 713 … … 748 748 int vboxVhwaHlpCheckTerm(PDEVICE_EXTENSION pDevExt, D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId) 749 749 { 750 Assert(VidPnSourceId < pDevExt->u.primary.cDisplays);751 if (VidPnSourceId >= pDevExt->u.primary.cDisplays)750 Assert(VidPnSourceId < (D3DDDI_VIDEO_PRESENT_SOURCE_ID)pDevExt->u.primary.cDisplays); 751 if (VidPnSourceId >= (D3DDDI_VIDEO_PRESENT_SOURCE_ID)pDevExt->u.primary.cDisplays) 752 752 return VERR_INVALID_PARAMETER; 753 753 -
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp
r30169 r30215 1042 1042 dfprintf(("==> "__FUNCTION__ ", context(0x%x)\n", MiniportDeviceContext)); 1043 1043 Assert(ChildRelationsSize == (pDevExt->u.primary.cDisplays + 1)*sizeof(DXGK_CHILD_DESCRIPTOR)); 1044 for ( UINTi = 0; i < pDevExt->u.primary.cDisplays; ++i)1044 for (int i = 0; i < pDevExt->u.primary.cDisplays; ++i) 1045 1045 { 1046 1046 ChildRelations[i].ChildDeviceType = TypeVideoOutput; … … 1232 1232 pCaps->MaxOverlays = 0; 1233 1233 #ifdef VBOX_WITH_VIDEOHWACCEL 1234 for ( uint32_t i = 0; i < pContext->u.primary.cDisplays; ++i)1234 for (int i = 0; i < pContext->u.primary.cDisplays; ++i) 1235 1235 { 1236 1236 if ( pContext->aSources[i].Vhwa.Settings.fFlags & VBOXVHWA_F_ENABLED) … … 1323 1323 pQi->cInfos = pContext->u.primary.cDisplays; 1324 1324 #ifdef VBOX_WITH_VIDEOHWACCEL 1325 for ( uint32_t i = 0; i < pContext->u.primary.cDisplays; ++i)1325 for (int i = 0; i < pContext->u.primary.cDisplays; ++i) 1326 1326 { 1327 1327 pQi->aInfos[i] = pContext->aSources[i].Vhwa.Settings; … … 2644 2644 if (Status == STATUS_SUCCESS && bSupported) 2645 2645 { 2646 for ( UINTid = 0; id < pContext->u.primary.cDisplays; ++id)2646 for (int id = 0; id < pContext->u.primary.cDisplays; ++id) 2647 2647 { 2648 2648 D3DKMDT_HVIDPNSOURCEMODESET hNewVidPnSourceModeSet; … … 2675 2675 if (Status == STATUS_SUCCESS && bSupported) 2676 2676 { 2677 for ( UINTid = 0; id < pContext->u.primary.cDisplays; ++id)2677 for (int id = 0; id < pContext->u.primary.cDisplays; ++id) 2678 2678 { 2679 2679 D3DKMDT_HVIDPNTARGETMODESET hNewVidPnTargetModeSet; … … 2785 2785 if (Status == STATUS_SUCCESS) 2786 2786 { 2787 for ( uint32_t i = 0; i < pDevExt->u.primary.cDisplays; ++i)2787 for (int i = 0; i < pDevExt->u.primary.cDisplays; ++i) 2788 2788 { 2789 2789 Status = vboxVidPnCheckAddMonitorModes(pDevExt, i, D3DKMDT_MCO_DRIVER, &Resolution, 1, 0); … … 2902 2902 NTSTATUS Status = STATUS_SUCCESS; 2903 2903 PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)hAdapter; 2904 Assert( pDevExt->u.primary.cDisplays > pSetVidPnSourceAddress->VidPnSourceId);2905 if ( pDevExt->u.primary.cDisplays > pSetVidPnSourceAddress->VidPnSourceId)2904 Assert((UINT)pDevExt->u.primary.cDisplays > pSetVidPnSourceAddress->VidPnSourceId); 2905 if ((UINT)pDevExt->u.primary.cDisplays > pSetVidPnSourceAddress->VidPnSourceId) 2906 2906 { 2907 2907 PVBOXWDDM_SOURCE pSource = &pDevExt->aSources[pSetVidPnSourceAddress->VidPnSourceId]; … … 2970 2970 NTSTATUS Status = STATUS_SUCCESS; 2971 2971 PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)hAdapter; 2972 Assert( pDevExt->u.primary.cDisplays > pSetVidPnSourceVisibility->VidPnSourceId);2973 if ( pDevExt->u.primary.cDisplays > pSetVidPnSourceVisibility->VidPnSourceId)2972 Assert((UINT)pDevExt->u.primary.cDisplays > pSetVidPnSourceVisibility->VidPnSourceId); 2973 if ((UINT)pDevExt->u.primary.cDisplays > pSetVidPnSourceVisibility->VidPnSourceId) 2974 2974 { 2975 2975 PVBOXWDDM_SOURCE pSource = &pDevExt->aSources[pSetVidPnSourceVisibility->VidPnSourceId]; … … 3036 3036 { 3037 3037 /* clear all current primaries */ 3038 for ( UINTi = 0; i < pDevExt->u.primary.cDisplays; ++i)3038 for (int i = 0; i < pDevExt->u.primary.cDisplays; ++i) 3039 3039 { 3040 3040 vboxWddmAssignPrimary(pDevExt, &pDevExt->aSources[i], NULL, i); … … 3183 3183 PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)hAdapter; 3184 3184 3185 Assert( pDevExt->u.primary.cDisplays > pGetScanLine->VidPnTargetId);3185 Assert((UINT)pDevExt->u.primary.cDisplays > pGetScanLine->VidPnTargetId); 3186 3186 VBOXWDDM_TARGET *pTarget = &pDevExt->aTargets[pGetScanLine->VidPnTargetId]; 3187 3187 Assert(pTarget->HeightTotal); … … 3192 3192 { 3193 3193 uint32_t curScanLine = pTarget->ScanLineState; 3194 BOOLEAN bVBlanck;3195 3194 ++pTarget->ScanLineState; 3196 3195 if (pTarget->ScanLineState >= pTarget->HeightTotal) … … 3458 3457 3459 3458 D3DDDI_VIDEO_PRESENT_SOURCE_ID id = pAllocation->SurfDesc.VidPnSourceId; 3460 if (id >= pDevExt->u.primary.cDisplays)3459 if (id >= (D3DDDI_VIDEO_PRESENT_SOURCE_ID)pDevExt->u.primary.cDisplays) 3461 3460 return false; 3462 3461
Note:
See TracChangeset
for help on using the changeset viewer.

