Skip to content

blueburncz/GMD3D11

Repository files navigation

GMD3D11

D3D11 functions extension for GameMaker

License Discord

Features

  • 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

Building the DLL

Requires CMake 3.23 at least and Python 3!

Simply run ./build.ps1 from the root directory to build the DLL, copy it into datafiles and generate __d3d11_generated.gml.

Links

Credits