VirtualBox

Changeset 70051 in vbox


Ignore:
Timestamp:
Dec 10, 2017 8:02:31 PM (7 years ago)
Author:
vboxsync
Message:

WDDM: minor changes to make the code more generic

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxD3DIf.h

    r69976 r70051  
    130130#endif
    131131
    132     HRESULT hr = VBoxD3DIfDeviceCreateDummy(pDevice);
     132    HRESULT hr = pDevice->pfnCreateDirect3DDevice(pDevice);
    133133    Assert(hr == S_OK); NOREF(hr);
    134134    Assert(pDevice->pDevice9If);
     
    136136}
    137137
    138 #define VBOXDISPMODE_IS_3D(_p) (!!((_p)->D3D.pD3D9If))
     138#define VBOXDISPMODE_IS_3D(_p) ((_p)->f3D)
    139139#ifdef VBOXDISP_EARLYCREATEDEVICE
    140140#define VBOXDISP_D3DEV(_p) (_p)->pDevice9If
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3D.cpp

    r69976 r70051  
    6161    void postProcess()
    6262    {
    63         if (m_pDevice->pDevice9If)
     63        if (m_pDevice->pDevice9If && m_pDevice->pAdapter->D3D.D3D.pfnVBoxWineExD3DDev9Finish)
    6464            m_pDevice->pAdapter->D3D.D3D.pfnVBoxWineExD3DDev9Finish((IDirect3DDevice9Ex *)m_pDevice->pDevice9If);
    6565    }
     
    58815881         * Release may not work in case of some leaking, which will leave the crOgl context refering the destroyed VBOXUHGSMI */
    58825882        if (pDevice->pDevice9If)
    5883             pDevice->pAdapter->D3D.D3D.pfnVBoxWineExD3DDev9Term((IDirect3DDevice9Ex *)pDevice->pDevice9If);
     5883        {
     5884            if (pDevice->pAdapter->D3D.D3D.pfnVBoxWineExD3DDev9Term)
     5885                pDevice->pAdapter->D3D.D3D.pfnVBoxWineExD3DDev9Term((IDirect3DDevice9Ex *)pDevice->pDevice9If);
     5886        }
    58845887    }
    58855888
     
    63026305    {
    63036306        pDevice->cRTs = pAdapter->D3D.cMaxSimRTs;
     6307        pDevice->pfnCreateDirect3DDevice = VBoxD3DIfDeviceCreateDummy;
    63046308        pDevice->hDevice = pCreateData->hDevice;
    63056309        pDevice->pAdapter = pAdapter;
     
    67046708                }
    67056709            } while (0);
     6710
     6711            /* Flag indicating that the adapter instance is running in 3D mode. */
     6712            pAdapter->f3D = (pAdapter->D3D.pD3D9If != NULL);
    67066713        }
    67076714#ifdef VBOX_WITH_VIDEOHWACCEL
  • trunk/src/VBox/Additions/WINNT/Graphics/Video/disp/wddm/VBoxDispD3D.h

    r69500 r70051  
    7979    VBOXWDDMDISP_FORMATS Formats;
    8080    uint32_t u32VBox3DCaps;
     81    bool f3D;
    8182#ifdef VBOX_WDDMDISP_WITH_PROFILE
    8283    VBoxDispProfileFpsCounter ProfileDdiFps;
     
    180181} VBOXWDDMDISP_SWAPCHAIN, *PVBOXWDDMDISP_SWAPCHAIN;
    181182
     183typedef HRESULT FNVBOXWDDMCREATEDIRECT3DDEVICE(PVBOXWDDMDISP_DEVICE pDevice);
     184typedef FNVBOXWDDMCREATEDIRECT3DDEVICE *PFNVBOXWDDMCREATEDIRECT3DDEVICE;
     185
    182186typedef struct VBOXWDDMDISP_DEVICE
    183187{
    184188    HANDLE hDevice;
    185189    PVBOXWDDMDISP_ADAPTER pAdapter;
     190    PFNVBOXWDDMCREATEDIRECT3DDEVICE pfnCreateDirect3DDevice;
    186191    IDirect3DDevice9 *pDevice9If;
    187192    RTLISTANCHOR SwapchainList;
Note: See TracChangeset for help on using the changeset viewer.

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