diff --git a/include/9on12Adapter.h b/include/9on12Adapter.h index 02dea7a..ab1d7a7 100644 --- a/include/9on12Adapter.h +++ b/include/9on12Adapter.h @@ -50,5 +50,6 @@ namespace D3D9on12 const D3D9ON12_PRIVATE_CALLBACKS m_privateCallbacks; const bool m_bSupportsNewPresent; + const bool m_bSupportsShaderSigning; }; }; diff --git a/interface/d3d9on12ddi.h b/interface/d3d9on12ddi.h index 5ec50cb..3b4f904 100644 --- a/interface/d3d9on12ddi.h +++ b/interface/d3d9on12ddi.h @@ -40,10 +40,12 @@ typedef struct _D3D9ON12_PRESENTCB_ARGS typedef HRESULT(CALLBACK* PFND3D9ON12_PRESENTCB)(_In_ HANDLE, _In_ D3D9ON12_PRESENTCB_ARGS*); +typedef HRESULT(CALLBACK* PFND3D9ON12_SIGNDXBCCB)(_Inout_ BYTE* pData, _In_ UINT32 byteCount); typedef struct _D3D9ON12_PRIVATE_CALLBACKS { PFND3D9ON12_PRESENTCB pfnPresentCB; + PFND3D9ON12_SIGNDXBCCB pfnSignDxbcCB; } D3D9ON12_PRIVATE_CALLBACKS; typedef struct _D3D9ON12_CREATE_DEVICE_ARGS2 diff --git a/src/9on12Adapter.cpp b/src/9on12Adapter.cpp index 578d693..2ddcad6 100644 --- a/src/9on12Adapter.cpp +++ b/src/9on12Adapter.cpp @@ -207,7 +207,8 @@ namespace D3D9on12 m_AdapterCallbacks( *OpenAdapter.pAdapterCallbacks ), m_pDevice(nullptr), m_privateCallbacks(pArgs->D3D9On12InterfaceVersion >= 2 ? *pArgs->pPrivateCallbacks : D3D9ON12_PRIVATE_CALLBACKS()), - m_bSupportsNewPresent(pArgs->D3D9On12InterfaceVersion >= 2 ? m_privateCallbacks.pfnPresentCB != nullptr : false) + m_bSupportsNewPresent(pArgs->D3D9On12InterfaceVersion >= 2 ? m_privateCallbacks.pfnPresentCB != nullptr : false), + m_bSupportsShaderSigning(pArgs->D3D9On12InterfaceVersion >= 2 ? m_privateCallbacks.pfnSignDxbcCB != nullptr : false) { if (RegistryConstants::g_cBreakOnLoad) {