Shroud
Universal library for discovering common render engines functions. Supports DirectX9 (D3D9), DirectX10 (D3D10), DirectX11 (D3D11), DirectX12 (D3D12), OpenGL, Vulkan. Currently only supports Windows, but OpenGL and Vulkan are candidates for making cross platform.
Purpose
Provide access to common render engine functions so that they can be hooked/augmented. For instance the DirectX9 EndScene hook, DirectX11 Present Hook, and OpenGL wglSwapBuffers hook.
Support
- DirectX9
- DirectX10
- DirectX11
- DirectX12
- OpenGL
- Vulkan
How to use
In your cargo.toml specify the shroud dependency and the render engines you would like access to as feature flags
For example targeting a DirectX9 Host/Game
[]
= { = "0.1.1", = ["directx9"] }
And targeting a DirectX12 Host/Game..
[]
= { = "0.1.1", = ["directx12"] }
Injected Demos / Use Case
The example code compiled as a dll and injected provides the results you see in the below demos.
// use shroud::directx::directx9;
// use shroud::directx::directx10;
// use shroud::directx::directx11;
// use shroud::opengl;
// use shroud::vulkan;
use directx12;
use ;
use AllocConsole;
use DLL_PROCESS_ATTACH;
unsafe extern "system"
// Dll Entry Function, immediately spawn thread and do our business else where
pub unsafe extern "system"
OpenGL
DirectX9
DirectX10
Todo...