Skip to content

blueburncz/GMD3D11

Repository files navigation

GMD3D11

D3D11 functions extension for GameMaker

License Discord

Status: Community Project 💙

This is a community-developed project, released under CC0 1.0 Universal (Public Domain). It is no longer actively maintained by the original author. Feel free to fork, modify, or experiment.

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
    • Vertex
    • Pixel
    • Geometry
    • Tessellation
    • Compute
  • Vertex formats
  • Buffers
    • Vertex
    • Index
    • Constant
    • Structured (read-only)
    • Compute (read/write structured)
    • Append/consume
    • Indirect args
    • Raw
    • Upload (CPU -> GPU)
    • Readback (GPU -> CPU)
  • Textures
    • texture_set_stage_vs() - vertex texture fetching of native GM textures (sprite_get_texture(), surface_get_texture())
    • Samplers
    • 2D
    • 3D
    • Arrays
  • Occlusion queries
  • Timestamps
  • 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