Added skeletal animations and other fixes

This commit is contained in:
2026-03-16 12:57:53 +01:00
parent 2cc18b3329
commit 28c6703892
51 changed files with 1964 additions and 602 deletions

View File

@@ -4,6 +4,7 @@ set(SRC_FILES
"src/App.cpp"
"src/Event.cpp"
"src/Components/Animator.cpp"
"src/Components/MeshRendererComponent.cpp"
"src/Components/Rotator.cpp"
"src/Components/Spinner.cpp"
@@ -11,6 +12,8 @@ set(SRC_FILES
"src/Graphics/BindlessSetManager.cpp"
"src/Graphics/Camera.cpp"
"src/Graphics/ComputePipeline.cpp"
"src/Graphics/Frustum.cpp"
"src/Graphics/GfxDevice.cpp"
"src/Graphics/ImageCache.cpp"
"src/Graphics/ImageLoader.cpp"
@@ -29,6 +32,7 @@ set(SRC_FILES
"src/Graphics/Pipelines/MeshPipeline.cpp"
"src/Graphics/Pipelines/SkyboxPipeline.cpp"
"src/Graphics/Pipelines/SkinningPipeline.cpp"
"src/Input/InputManager.cpp"
@@ -69,6 +73,7 @@ target_link_libraries(destrum
spdlog::spdlog
stb::image
tinygltf
assimp
PRIVATE
freetype::freetype
@@ -105,14 +110,14 @@ target_compile_definitions(destrum
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")
add_custom_command(TARGET destrum POST_BUILD
COMMAND ${CMAKE_COMMAND} -E rm -rf "${OUTPUT_ENGINE_ASSETS_DIR}"
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/assets"
COMMAND ${CMAKE_COMMAND} -E create_symlink "${ASSETS_RUNTIME_DIR}" "${OUTPUT_ENGINE_ASSETS_DIR}"
VERBATIM
)
#set(OUTPUT_ENGINE_ASSETS_DIR "${CMAKE_BINARY_DIR}/assets/engine")
#
#add_custom_command(TARGET destrum POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E rm -rf "${OUTPUT_ENGINE_ASSETS_DIR}"
# COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/assets"
# COMMAND ${CMAKE_COMMAND} -E create_symlink "${ASSETS_RUNTIME_DIR}" "${OUTPUT_ENGINE_ASSETS_DIR}"
# VERBATIM
#)
add_custom_target(_internal_clean_engine_assets
COMMAND TheChef
@@ -127,3 +132,17 @@ add_custom_target(_internal_cook_engine_assets ALL
--output "${ASSETS_RUNTIME_DIR}"
DEPENDS TheChef
)
function(destrum_cook_engine_assets GAME_TARGET GAME_OUTPUT_DIR)
# This resolves to destrum's own directory at function DEFINITION time
set(_engine_src "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/assets_src")
set(_engine_runtime "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/assets_runtime")
set(_output_engine "${GAME_OUTPUT_DIR}/assets/engine")
add_custom_command(TARGET ${GAME_TARGET} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory "${GAME_OUTPUT_DIR}/assets"
COMMAND ${CMAKE_COMMAND} -E rm -rf "${_output_engine}"
COMMAND ${CMAKE_COMMAND} -E create_symlink "${_engine_runtime}" "${_output_engine}"
VERBATIM
)
endfunction()