build_instructions.txt
1 2 Instructions to rebuild imgui_impl_sdlgpu3_shaders.h 3 (You don't need to copy this folder if you are using the backend as-is) 4 5 1) Compile the raw shader files to SPIRV: 6 7 glslc -o vertex.spv -c shader.vert 8 glslc -o fragment.spv -c shader.frag 9 10 11 2) Build SDL_shadercross (https://github.com/libsdl-org/SDL_shadercross) 12 13 14 3-A) Compiling for the Vulkan Driver: 15 16 Nothing to do, you just need the previous vertex.spv/fragment.spv, proceed to step 4 17 18 19 3-B) Compiling for the DirectX 12 Driver: 20 21 ./shadercross vertex.spv -s SPIRV -d DXBC -t vertex -e main -o vertex.dxbc 22 ./shadercross fragment.spv -s SPIRV -d DXBC -t fragment -e main -o fragment.dxbc 23 24 Proceed to step 4 25 26 27 3-C) Compiling for Metal (On windows you'll need the Metal Developer Tools for Windows, on linux you might use wine, but I never tested it): 28 29 ./shadercross vertex.spv -s SPIRV -d MSL -t vertex -e main -o vertex.metal 30 ./shadercross fragment.spv -s SPIRV -d MSL -t fragment -e main -o fragment.metal 31 32 xcrun -sdk macosx metal -o vertex.ir -c vertex.metal 33 xcrun -sdk macosx metal -o fragment.ir -c fragment.metal 34 xcrun -sdk macosx metallib -o vertex.metallib -c vertex.ir 35 xcrun -sdk macosx metallib -o fragment.metallib -c fragment.ir 36 37 note: use .metal outputs for updating msl_vertex / msl_fragment variables, and use .metallib outputs for metallib_vertex / metallib_fragment variables 38 39 Proceed to step 4 40 41 42 4) Use a tool like https://notisrac.github.io/FileToCArray/ or misc/fonts/binary_to_compressed_c.cpp in imgui repository to convert the file to a uint8_t array.