WIP: Metal shader backend para macOS

- Shaders MSL portados desde GLSL (vertex + fragment)
- Estructura básica de MetalShader class
- Device, command queue, pipeline y buffers creados
- CMakeLists.txt actualizado con Metal frameworks
- assets.txt incluye shaders .metal como opcionales

PENDIENTE:
- Implementar render() loop completo
- Obtener MTLTexture desde SDL_Texture
- Crear sampler state
- Testing en macOS real

Ver METAL_BACKEND_NOTES.md para detalles de implementación.
This commit is contained in:
2025-10-02 21:05:28 +02:00
parent ff7aef827c
commit d6ffbda00d
8 changed files with 762 additions and 1 deletions
+13
View File
@@ -120,6 +120,14 @@ set(RENDERING_SOURCES
source/rendering/opengl/opengl_shader.cpp
)
# Añadir backend de Metal en macOS
if(APPLE)
list(APPEND RENDERING_SOURCES
source/rendering/metal/metal_shader.mm
)
message(STATUS "Metal backend habilitado para macOS")
endif()
# Configuración de SDL3
find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
message(STATUS "SDL3 encontrado: ${SDL3_INCLUDE_DIRS}")
@@ -159,6 +167,11 @@ elseif(APPLE)
target_compile_definitions(${PROJECT_NAME} PRIVATE MACOS_BUILD)
target_compile_options(${PROJECT_NAME} PRIVATE -Wno-deprecated)
set(CMAKE_OSX_ARCHITECTURES "arm64")
# Enlazar frameworks de Metal
target_link_libraries(${PROJECT_NAME} PRIVATE
"-framework Metal"
"-framework QuartzCore"
)
elseif(UNIX AND NOT APPLE)
target_compile_definitions(${PROJECT_NAME} PRIVATE LINUX_BUILD)
endif()