VirtualBox

Ignore:
Timestamp:
Mar 9, 2010 10:16:07 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
58561
Message:

wddm: bugfix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVidPn.cpp

    r26794 r27201  
    496496}
    497497
     498NTSTATUS vboxVidPnPopulateVideoSignalInfo(PDEVICE_EXTENSION pDevExt,
     499        D3DKMDT_VIDEO_SIGNAL_INFO *pVsi,
     500        D3DKMDT_2DREGION *pResolution,
     501        ULONG VSync)
     502{
     503    NTSTATUS Status = STATUS_SUCCESS;
     504
     505    pVsi->VideoStandard  = D3DKMDT_VSS_VESA_DMT;
     506    pVsi->ActiveSize = *pResolution;
     507    pVsi->VSyncFreq.Numerator = VSync * 1000;
     508    pVsi->VSyncFreq.Denominator = 1000;
     509    pVsi->TotalSize.cx = pVsi->ActiveSize.cx + VBOXVDPN_C_DISPLAY_HBLANK_SIZE;
     510    pVsi->TotalSize.cy = pVsi->ActiveSize.cy + VBOXVDPN_C_DISPLAY_VBLANK_SIZE;
     511    pVsi->PixelRate = pVsi->TotalSize.cx * pVsi->TotalSize.cy * VSync;
     512    pVsi->HSyncFreq.Numerator = (UINT)((pVsi->PixelRate / pVsi->TotalSize.cy) * 1000);
     513    pVsi->HSyncFreq.Denominator = 1000;
     514    pVsi->ScanLineOrdering = D3DDDI_VSSLO_PROGRESSIVE;
     515
     516    return Status;
     517}
     518
     519NTSTATUS vboxVidPnPopulateMonitorSourceModeInfoFromLegacy(PDEVICE_EXTENSION pDevExt,
     520        D3DKMDT_MONITOR_SOURCE_MODE *pMonitorSourceMode,
     521        D3DKMDT_2DREGION *pResolution,
     522        D3DKMDT_MONITOR_CAPABILITIES_ORIGIN enmOrigin,
     523        BOOLEAN bPreferred)
     524{
     525    NTSTATUS Status = vboxVidPnPopulateVideoSignalInfo(pDevExt, &pMonitorSourceMode->VideoSignalInfo, pResolution, 60 /* ULONG VSync */);
     526    Assert(Status == STATUS_SUCCESS);
     527    if (Status == STATUS_SUCCESS)
     528    {
     529        pMonitorSourceMode->ColorBasis = D3DKMDT_CB_SRGB;
     530        pMonitorSourceMode->ColorCoeffDynamicRanges.FirstChannel = 8;
     531        pMonitorSourceMode->ColorCoeffDynamicRanges.SecondChannel = 8;
     532        pMonitorSourceMode->ColorCoeffDynamicRanges.ThirdChannel = 8;
     533        pMonitorSourceMode->ColorCoeffDynamicRanges.FourthChannel = 0;
     534        pMonitorSourceMode->Origin = enmOrigin;
     535        pMonitorSourceMode->Preference = bPreferred ? D3DKMDT_MP_PREFERRED : D3DKMDT_MP_NOTPREFERRED;
     536    }
     537
     538    return Status;
     539}
     540
    498541NTSTATUS vboxVidPnPopulateTargetModeInfoFromLegacy(PDEVICE_EXTENSION pDevExt,
    499542        D3DKMDT_VIDPN_TARGET_MODE *pNewVidPnTargetModeInfo,
     
    501544        BOOLEAN bPreferred)
    502545{
    503     NTSTATUS Status = STATUS_SUCCESS;
    504 
    505     pNewVidPnTargetModeInfo->VideoSignalInfo.VideoStandard  = D3DKMDT_VSS_VESA_DMT;
    506     pNewVidPnTargetModeInfo->VideoSignalInfo.TotalSize = *pResolution;
    507     pNewVidPnTargetModeInfo->VideoSignalInfo.ActiveSize = pNewVidPnTargetModeInfo->VideoSignalInfo.TotalSize;
    508     pNewVidPnTargetModeInfo->VideoSignalInfo.VSyncFreq.Numerator = 60000;
    509     pNewVidPnTargetModeInfo->VideoSignalInfo.VSyncFreq.Denominator = 1000;
    510     pNewVidPnTargetModeInfo->VideoSignalInfo.HSyncFreq.Numerator = pNewVidPnTargetModeInfo->VideoSignalInfo.ActiveSize.cy * 63; /* 63 is (60 * 1.05)*/
    511     pNewVidPnTargetModeInfo->VideoSignalInfo.HSyncFreq.Denominator = 1;
    512     pNewVidPnTargetModeInfo->VideoSignalInfo.PixelRate = 165000; /* @todo: ? */
    513     pNewVidPnTargetModeInfo->VideoSignalInfo.ScanLineOrdering = D3DDDI_VSSLO_PROGRESSIVE;
    514546    pNewVidPnTargetModeInfo->Preference = bPreferred ? D3DKMDT_MP_PREFERRED : D3DKMDT_MP_NOTPREFERRED;
    515547
    516     return Status;
     548    return vboxVidPnPopulateVideoSignalInfo(pDevExt, &pNewVidPnTargetModeInfo->VideoSignalInfo, pResolution, 60 /* ULONG VSync */);
    517549}
    518550
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette