我有一個用HLSL編寫的着色器,我不希望用戶能夠訪問它。有一種方法可以從一段內存中編譯。問題是,下面的功能,以使用.fx
文件作爲輸入接受一個LPCSTR
:硬編碼HLSL着色器
HRESULT D3DXCreateEffectFromFile(
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPCTSTR pSrcFile,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ DWORD Flags,
_In_ LPD3DXEFFECTPOOL pPool,
_Out_ LPD3DXEFFECT *ppEffect,
_Out_ LPD3DXBUFFER *ppCompilationErrors
);
我需要的東西沿着空隙線條更*或至少某種方式從內存塊進行編譯。除了將數據保存到文件,編譯和刪除文件之外,有沒有辦法做到這一點?
wchar_t* shaderCode = L"//Poorly formatted shader code goes here";
我希望能夠從上面的內存部分從字面上編譯。如何才能做到這一點?
什麼是你的開發環境? (Microsoft Visual Studio提供資源文件) –
確實,Microsoft Visual Studio確實如此。我要去看看,謝謝! –