This commit is contained in:
HP
2026-06-07 12:34:07 +08:00
parent b093796e61
commit c177114bf3
123 changed files with 932 additions and 1008 deletions
+39 -118
View File
@@ -6,96 +6,50 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
option(USE_FRAMEBUFFER "Use Linux framebuffer instead of SDL2" OFF)
<<<<<<< HEAD
set(ENGINE_SOURCES
src/Asset/ObjLoader.cpp
src/Asset/SpriteAssetLoader.cpp
src/Core/DepthBuffer.cpp
src/Core/FrameBuffer.cpp
src/Core/Renderer.cpp
game/src/app/TomGameApp.cpp
game/src/components/SpriteAnimator.cpp
game/src/audio/VoiceEffect.cpp
game/src/audio/VoicePlayer.cpp
game/src/audio/VoiceRecorder.cpp
game/src/hardware/AudioInput.cpp
game/src/hardware/AudioOutput.cpp
game/src/hardware/ButtonInput.cpp
game/src/systems/AnimationSystem.cpp
src/Rasterizer/Rasterizer.cpp
src/Rasterizer/SpriteRasterizer.cpp
src/Rasterizer/TriangleRasterizer.cpp
src/Scene/Camera.cpp
src/Shading/BlinnPhongShader.cpp
=======
set(SOURCES
src/Apps/Demo/main.cpp
src/Gfx/Asset/ObjLoader.cpp
src/Gfx/Core/DepthBuffer.cpp
src/Gfx/Core/FrameBuffer.cpp
src/Gfx/Core/Renderer.cpp
src/Gfx/Draw2D/DrawContext.cpp
src/Gfx/Rasterizer/Rasterizer.cpp
src/Gfx/Rasterizer/TriangleRasterizer.cpp
src/Gfx/Scene/Camera.cpp
src/Gfx/Shading/BlinnPhongShader.cpp
>>>>>>> 777ff96602c52c86f03d612bb4213de746f580a5
set(CORE_SOURCES
src/Core/Asset/ObjLoader.cpp
src/Core/Asset/SpriteAssetLoader.cpp
src/Core/Core/DepthBuffer.cpp
src/Core/Core/FrameBuffer.cpp
src/Core/Core/Renderer.cpp
src/Core/Draw2D/DrawContext.cpp
src/Core/Rasterizer/Rasterizer.cpp
src/Core/Rasterizer/TriangleRasterizer.cpp
src/Core/Scene/Camera.cpp
src/Core/Shading/BlinnPhongShader.cpp
)
set(ENGINE_INCLUDE_DIRS
src/Platform
src/Asset
src/Core
src/Math
src/Rasterizer
src/RenderData
src/Scene
src/Shading
game/src/app
game/src/audio
game/src/components
game/src/hardware
game/src/systems
set(CORE_INCLUDE_DIRS
src/Core/Platform
src/Core/Asset
src/Core/Core
src/Core/Draw2D
src/Core/Math
src/Core/Rasterizer
src/Core/RenderData
src/Core/Scene
src/Core/Shading
assets/font
assets/sprite
)
set(SOURCES
src/main.cpp
${ENGINE_SOURCES}
src/Apps/Game/Main.cpp
${CORE_SOURCES}
)
if(USE_FRAMEBUFFER)
list(APPEND SOURCES src/Gfx/Platform/FBDisplay.cpp)
list(APPEND SOURCES src/Core/Platform/FBDisplay.cpp)
else()
list(APPEND SOURCES src/Gfx/Platform/SDLDisplay.cpp)
list(APPEND SOURCES src/Core/Platform/SDLDisplay.cpp)
endif()
add_executable(IMX6U-Game ${SOURCES})
<<<<<<< HEAD
target_include_directories(IMX6U-Game PRIVATE ${ENGINE_INCLUDE_DIRS})
=======
target_include_directories(IMX6U-Game PRIVATE
src/Gfx/Platform
src/Gfx/Asset
src/Gfx/Core
src/Gfx/Draw2D
src/Gfx/Math
src/Gfx/Rasterizer
src/Gfx/RenderData
src/Gfx/Scene
src/Gfx/Shading
assets/font
assets/sprite
)
>>>>>>> 777ff96602c52c86f03d612bb4213de746f580a5
target_include_directories(IMX6U-Game PRIVATE ${CORE_INCLUDE_DIRS})
if(USE_FRAMEBUFFER)
target_compile_definitions(IMX6U-Game PRIVATE USE_FRAMEBUFFER)
else()
target_include_directories(IMX6U-Game PRIVATE
libs/Win/SDL2/include
)
if(WIN32)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(SDL2_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libs/Win/SDL2/lib/x64")
@@ -109,6 +63,7 @@ else()
set(SDL2_IMAGE_DLL "${CMAKE_CURRENT_SOURCE_DIR}/libs/Win/SDL_image/lib/x86/SDL2_image.dll")
endif()
target_include_directories(IMX6U-Game PRIVATE libs/Win/SDL2/include)
target_link_directories(IMX6U-Game PRIVATE ${SDL2_LIB_DIR})
target_link_libraries(IMX6U-Game PRIVATE SDL2main SDL2)
@@ -119,14 +74,9 @@ else()
)
else()
find_package(SDL2 REQUIRED)
find_package(SDL2_image QUIET)
target_link_libraries(IMX6U-Game PRIVATE SDL2::SDL2)
endif()
find_package(SDL2_image QUIET)
endif()
if(UNIX)
target_link_libraries(IMX6U-Game PRIVATE asound)
endif()
if(MSVC)
@@ -135,46 +85,16 @@ if(MSVC)
endif()
if(NOT USE_FRAMEBUFFER)
set(SPRITE_ANIMATION_TEST_SOURCES
game/tests/manual/SpriteAnimationTest.cpp
${ENGINE_SOURCES}
src/Platform/SDLDisplay.cpp
)
if(WIN32)
add_executable(SpriteAnimationTest ${SPRITE_ANIMATION_TEST_SOURCES})
target_include_directories(SpriteAnimationTest PRIVATE
${ENGINE_INCLUDE_DIRS}
libs/Win/SDL2/include
)
target_link_directories(SpriteAnimationTest PRIVATE ${SDL2_LIB_DIR})
target_link_libraries(SpriteAnimationTest PRIVATE SDL2main SDL2)
add_custom_command(TARGET SpriteAnimationTest POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${SDL2_DLL}"
"$<TARGET_FILE_DIR:SpriteAnimationTest>"
)
else()
add_executable(SpriteAnimationTest ${SPRITE_ANIMATION_TEST_SOURCES})
target_include_directories(SpriteAnimationTest PRIVATE ${ENGINE_INCLUDE_DIRS})
target_link_libraries(SpriteAnimationTest PRIVATE SDL2::SDL2 asound)
endif()
if(MSVC AND TARGET SpriteAnimationTest)
target_compile_options(SpriteAnimationTest PRIVATE /utf-8 /W3)
endif()
set(SPRITE_ASSET_TOOL_SOURCES
game/tools/asset_pipeline/SpriteAssetTool.cpp
src/Asset/SpriteAssetLoader.cpp
src/Apps/Game/tools/asset_pipeline/SpriteAssetTool.cpp
src/Core/Asset/SpriteAssetLoader.cpp
)
if(WIN32)
add_executable(SpriteAssetTool ${SPRITE_ASSET_TOOL_SOURCES})
target_include_directories(SpriteAssetTool PRIVATE
src/Asset
src/RenderData
src/Core/Asset
src/Core/RenderData
libs/Win/SDL2/include
libs/Win/SDL_image/include
)
@@ -194,8 +114,8 @@ if(NOT USE_FRAMEBUFFER)
elseif(SDL2_image_FOUND)
add_executable(SpriteAssetTool ${SPRITE_ASSET_TOOL_SOURCES})
target_include_directories(SpriteAssetTool PRIVATE
src/Asset
src/RenderData
src/Core/Asset
src/Core/RenderData
)
target_link_libraries(SpriteAssetTool PRIVATE SDL2::SDL2 SDL2_image::SDL2_image)
else()
@@ -206,9 +126,10 @@ if(NOT USE_FRAMEBUFFER)
add_custom_target(ConvertTomSprites
COMMAND $<TARGET_FILE:SpriteAssetTool>
--batch
"${CMAKE_CURRENT_SOURCE_DIR}/game/assets/raw"
"${CMAKE_CURRENT_SOURCE_DIR}/game/assets/sprites"
"src/Apps/Game/assets/raw"
"src/Apps/Game/assets/sprites"
--preset tom-800x480
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS SpriteAssetTool
COMMENT "Converting PNG assets to board-ready .sprite files"
VERBATIM