gitextract_ofuavp55/ ├── .clang-format ├── .github/ │ └── workflows/ │ └── tests.yml ├── .gitignore ├── CMakeLists.txt ├── README.md ├── build-samples.bat ├── build-samples.sh ├── build-utils.cmake ├── deps/ │ ├── SPIRV-reflect/ │ │ ├── CMakeLists.txt │ │ ├── include/ │ │ │ └── spirv/ │ │ │ └── unified1/ │ │ │ └── spirv.h │ │ ├── spirv_reflect.c │ │ └── spirv_reflect.h │ ├── metal-cpp/ │ │ └── MetalSingleHeader.hpp │ ├── renderdoc/ │ │ └── renderdoc_app.h │ ├── utest/ │ │ └── utest.h │ ├── vma/ │ │ ├── CHANGELOG.md │ │ ├── CMakeLists.txt │ │ ├── LICENSE.txt │ │ ├── README.md │ │ └── src/ │ │ ├── vk_mem_alloc.cpp │ │ └── vk_mem_alloc.h │ └── vulkan-headers/ │ └── vulkan/ │ ├── vk_platform.h │ ├── vulkan.h │ ├── vulkan_core.h │ ├── vulkan_ios.h │ ├── vulkan_macos.h │ ├── vulkan_metal.h │ ├── vulkan_win32.h │ └── vulkan_xcb.h ├── docs/ │ └── logo.xcf ├── include/ │ ├── nicegraf-mtl-handles.h │ ├── nicegraf-util.h │ ├── nicegraf-vk-handles.h │ ├── nicegraf-wrappers.h │ └── nicegraf.h ├── misc/ │ ├── common/ │ │ ├── CMakeLists.txt │ │ ├── check.h │ │ ├── file-utils.cpp │ │ ├── file-utils.h │ │ ├── logging.h │ │ ├── mesh-loader.cpp │ │ ├── mesh-loader.h │ │ ├── shader-loader.cpp │ │ ├── shader-loader.h │ │ ├── targa-loader.cpp │ │ └── targa-loader.h │ └── shaders.cmake ├── samples/ │ ├── 00-template/ │ │ └── sample-impl.cpp │ ├── 01-fullscreen-triangle/ │ │ └── fullscreen-triangle.cpp │ ├── 02-render-to-texture/ │ │ └── render-to-texture.cpp │ ├── 03-uniform-buffers/ │ │ └── uniform-buffers.cpp │ ├── 04-texture-sampling/ │ │ └── texture-sampling.cpp │ ├── 05-cubemap/ │ │ └── cubemap.cpp │ ├── 06-vertex-attribs/ │ │ └── vertex-attribs.cpp │ ├── 07-blinn-phong/ │ │ └── blinn-phong.cpp │ ├── 08-image-arrays/ │ │ └── image-arrays.cpp │ ├── 09-volume-rendering/ │ │ └── volume-rendering.cpp │ ├── 0a-compute-demo/ │ │ └── compute-demo.cpp │ ├── 0a-compute-mandelbrot/ │ │ └── compute-mandelbrot.cpp │ ├── 0b-compute-vertices/ │ │ └── compute-vertices.cpp │ ├── 0c-render-to-multisample-texture/ │ │ └── render-to-multisample-texture.cpp │ ├── common/ │ │ ├── camera-controller.cpp │ │ ├── camera-controller.h │ │ ├── diagnostic-callback.cpp │ │ ├── diagnostic-callback.h │ │ ├── imgui-backend.cpp │ │ ├── imgui-backend.h │ │ ├── main.cpp │ │ ├── platform/ │ │ │ └── macos/ │ │ │ ├── glfw-cocoa-contentview.h │ │ │ └── glfw-cocoa-contentview.mm │ │ ├── sample-interface.h │ │ ├── staging-image.cpp │ │ └── staging-image.h │ └── shaders/ │ ├── blinn-phong.hlsl │ ├── compute-demo.hlsl │ ├── compute-vertices.hlsl │ ├── cubemap.hlsl │ ├── fullscreen-triangle.hlsl │ ├── generic-frag-shader-input.hlsl │ ├── imgui.hlsl │ ├── instancing.hlsl │ ├── polygon.hlsl │ ├── quad.hlsl │ ├── quat.hlsl │ ├── simple-texture.hlsl │ ├── textured-quad.hlsl │ ├── triangle.hlsl │ └── volume-renderer.hlsl ├── source/ │ ├── ngf-common/ │ │ ├── arena.cpp │ │ ├── arena.h │ │ ├── array.h │ │ ├── chunked-list.h │ │ ├── cmdbuf-state.h │ │ ├── create-destroy.cpp │ │ ├── default-arenas.cpp │ │ ├── default-arenas.h │ │ ├── frame-token.h │ │ ├── hashtable.h │ │ ├── internal.cpp │ │ ├── macros.h │ │ ├── silence.h │ │ ├── unique-ptr.h │ │ ├── util.c │ │ ├── util.h │ │ └── value-or-error.h │ ├── ngf-mtl/ │ │ ├── impl.cpp │ │ └── layer.mm │ └── ngf-vk/ │ ├── ca-metal-layer.mm │ ├── impl.cpp │ ├── vk_10.c │ └── vk_10.h └── tests/ ├── arena-alloc-tests.cpp ├── common-tests.cpp └── vk-backend-tests.cpp