/ deps / AImGUI / third_party / imgui / backends / sdlgpu3 / build_instructions.txt
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.