feat: add basic format for models

This commit is contained in:
2026-10-11 11:07:43 +02:00
parent 170af2a4e9
commit fa98bf08e8
9 changed files with 739 additions and 42 deletions
+33 -10
View File
@@ -1,5 +1,35 @@
add_subdirectory(third_party)
# CPU side asset types and the cooked model format, shared with TheChef (no Vulkan / SDL dependencies)
add_library(destrum_assets
"src/Assets/ModelFile.cpp"
)
add_library(destrum::assets ALIAS destrum_assets)
set_target_properties(destrum_assets PROPERTIES
CXX_STANDARD 20
CXX_EXTENSIONS OFF
)
target_include_directories(destrum_assets PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include")
target_link_libraries(destrum_assets
PUBLIC
glm::glm
assimp
spdlog::spdlog
)
target_compile_definitions(destrum_assets
PUBLIC
GLM_FORCE_CTOR_INIT
GLM_FORCE_XYZW_ONLY
GLM_FORCE_EXPLICIT_CTOR
GLM_FORCE_DEPTH_ZERO_TO_ONE
GLM_ENABLE_EXPERIMENTAL
)
set(SRC_FILES
"src/App.cpp"
"src/Event.cpp"
@@ -100,6 +130,8 @@ target_include_directories(destrum PRIVATE
target_link_libraries(destrum
PUBLIC
destrum_assets
volk::volk_headers
vk-bootstrap::vk-bootstrap
GPUOpen::VulkanMemoryAllocator
@@ -137,15 +169,6 @@ else ()
target_link_libraries(destrum PUBLIC SDL2::SDL2-static)
endif ()
target_compile_definitions(destrum
PUBLIC
GLM_FORCE_CTOR_INIT
GLM_FORCE_XYZW_ONLY
GLM_FORCE_EXPLICIT_CTOR
GLM_FORCE_DEPTH_ZERO_TO_ONE
GLM_ENABLE_EXPERIMENTAL
)
set(ASSETS_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_src")
set(ASSETS_RUNTIME_DIR "${CMAKE_CURRENT_LIST_DIR}/assets_runtime")
#set(OUTPUT_ENGINE_ASSETS_DIR "${CMAKE_BINARY_DIR}/assets/engine")
@@ -229,7 +252,7 @@ function(destrum_cook_engine_assets GAME_TARGET GAME_OUTPUT_DIR)
install(DIRECTORY "${_engine_runtime}/" DESTINATION "bin/assets/engine")
endfunction()
install(TARGETS destrum
install(TARGETS destrum destrum_assets
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin)