feat(gpu): afegir suport SPIRV (Vulkan) per Linux/Windows

- Nou: shaders/sprite.vert|frag, postfx.vert|frag, ball.vert (GLSL)
- Nou: cmake/spv_to_header.cmake — converteix .spv → uint8_t C header
- CMakeLists.txt: bloc non-Apple troba glslc, compila GLSL → SPIRV en
  build-time i genera headers embeguts a build/generated_shaders/
- gpu_context.cpp: MSL|METALLIB en Apple, SPIRV en la resta
- gpu_pipeline.cpp: createShaderSPIRV() + branques #ifdef __APPLE__
  per sprite/ball/postfx pipelines
- Corregeix crash a engine.cpp:821 (Windows/Linux) causat per pipelines
  null quan init() fallava en no trobar suport MSL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-20 09:47:36 +01:00
parent 5c0d0479ad
commit 6ffe7594ab
9 changed files with 201 additions and 5 deletions

9
shaders/sprite.frag Normal file
View File

@@ -0,0 +1,9 @@
#version 450
layout(location=0) in vec2 v_uv;
layout(location=1) in vec4 v_col;
layout(location=0) out vec4 out_color;
layout(set=2, binding=0) uniform sampler2D tex;
void main() {
vec4 t = texture(tex, v_uv);
out_color = vec4(t.rgb * v_col.rgb, t.a * v_col.a);
}