D3D11 functions extension for GameMaker
- Shaders
- Compile from file (optimization level 3)
- Save and load compiled shaders
- Hook into
ID3D11DeviceContext::Draw
calls to swap out used vertex and pixel shaders with custom ones - Geometry shaders
- Tessellation shaders (🛑 TODO)
- Compute shaders (🚧 WIP)
- Buffers
- Vertex buffers (🛑 TODO)
- Index buffers (🛑 TODO)
- Constant buffers
- Structured buffers (with SRV and UAV)
- Raw buffers (🛑 TODO)
- Staging buffers (🛑 TODO)
- Textures
-
texture_set_stage_vs()
- vertex texture fetching of native GM textures (sprite_get_texture()
,surface_get_texture()
) - Samplers (🛑 TODO)
- Texture2D (🛑 TODO)
- Texture3D (🛑 TODO)
- Texture arrays (🛑 TODO)
-
- Occlusion queries (🛑 TODO)
- Timestamps (🛑 TODO)
-
vertex_submit_instanced()
- instanced rendering of native GM vertex buffers
Simply run ./build.ps1
from the root directory to build the DLL, copy it into datafiles
and generate
__d3d11_generated.gml
.
- https://github.com/ParinovYT/cVmtHook-x64 - x64 VMT hook
- https://polyhaven.com/a/rubber_duck_toy - model used in instanced rendering example