diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml new file mode 100644 index 0000000..d93a679 --- /dev/null +++ b/.github/actions/build/action.yml @@ -0,0 +1,29 @@ +name: Build DragonEngine +description: Runs the commands to build DragonEngine from source and installs it + +inputs: + type: + required: false + description: Whether or not to build shared libs + default: BUILD_SHARED_LIBS:BOOL=ON + config: + required: false + description: The CMake configuration to build (Debug, Release, MinSizeRel, or RelWithDebInfo) + default: Release + install_dir: + required: false + description: The directory to install this into + default: ${{github.workspace}}/install + build_dir: + required: false + description: The directory to build the files into + default: ${{github.workspace}}/build + +runs: + using: 'composite' + steps: + - shell: bash + run: | + cmake . -B ${{ inputs.build_dir }} -D${{ inputs.type }} --install-prefix ${{ inputs.install_dir }} -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE + cmake --build ${{ inputs.build_dir }} --config ${{ inputs.config }} + cmake --install ${{ inputs.build_dir }} --config ${{ inputs.config }} diff --git a/.github/actions/get_deps/action.yml b/.github/actions/get_deps/action.yml new file mode 100644 index 0000000..52bcd01 --- /dev/null +++ b/.github/actions/get_deps/action.yml @@ -0,0 +1,16 @@ +name: Get Dependencies + +runs: + using: 'composite' + + steps: + - if: runner.os == 'Linux' + shell: bash + run: sudo apt update && sudo apt install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libc6-dev && export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH + + - uses: humbletim/setup-vulkan-sdk@72eed4b9dbeac5de168f83da8e30b1d0f8ac7f14 # v1.2.0 + with: + vulkan-query-version: 1.3.204.0 + vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang, SPIRV-Tools + vulkan-use-cache: true + diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index da9d98e..de79b64 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -32,13 +32,10 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: submodules: recursive - - run: sudo apt update && sudo apt install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libc6-dev - - uses: humbletim/setup-vulkan-sdk@72eed4b9dbeac5de168f83da8e30b1d0f8ac7f14 # v1.2.0 + + - uses: ./.github/actions/get_deps + + - uses: ./.github/actions/build with: - vulkan-query-version: latest - vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang - vulkan-use-cache: true - - run: | - cmake . -B build -D${{ matrix.type }} --install-prefix ${{ github.workspace }}/install -DCMAKE_INSTALL_DIR=${{ github.workspace }}/install -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE - cmake --build ${{ github.workspace }}/build --config ${{ matrix.cfg }} - cmake --install ${{ github.workspace }}/build --config ${{ matrix.cfg }} \ No newline at end of file + type: ${{ matrix.type }} + config: ${{ matrix.cfg }} \ No newline at end of file diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 8e6212d..6321830 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -62,17 +62,12 @@ jobs: # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. + - uses: ./.github/actions/get_deps - - run: sudo apt update && sudo apt install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libc6-dev - - uses: humbletim/setup-vulkan-sdk@72eed4b9dbeac5de168f83da8e30b1d0f8ac7f14 # v1.2.0 + - uses: ./.github/actions/build with: - vulkan-query-version: latest - vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang - vulkan-use-cache: true - - run: | - cmake . -B build --install-prefix ${{ github.workspace }}/install -DCMAKE_INSTALL_DIR=${{ github.workspace }}/install -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE - cmake --build ${{ github.workspace }}/build - cmake --install ${{ github.workspace }}/build + type: -DBUILD_SHARED_LIBS:BOOL=OFF + config: Release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@0116bc2df50751f9724a2e35ef1f24d22f90e4e1 # v2.22.3 diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index c7e2f11..0a3be44 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -32,15 +32,20 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: submodules: recursive + - uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0 with: xcode-version: latest-stable + - uses: humbletim/setup-vulkan-sdk@72eed4b9dbeac5de168f83da8e30b1d0f8ac7f14 # v1.2.0 with: - vulkan-query-version: latest - vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang + vulkan-query-version: 1.3.204.0 + vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang, SPIRV-Tools vulkan-use-cache: true - - run: | - cmake . -B build -D${{ matrix.type }} --install-prefix ${{ github.workspace }}/install -DCMAKE_INSTALL_DIR=${{ github.workspace }}/install -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE - cmake --build ${{ github.workspace }}/build --config ${{ matrix.cfg }} - cmake --install ${{ github.workspace }}/build --config ${{ matrix.cfg }} + + - uses: ./.github/actions/get_deps + + - uses: ./.github/actions/build + with: + type: ${{ matrix.type }} + config: ${{ matrix.cfg }} diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index c18ab66..b0a7f33 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -33,13 +33,12 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: submodules: recursive - - run: sudo apt update && sudo apt install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libc6-dev - - uses: humbletim/setup-vulkan-sdk@72eed4b9dbeac5de168f83da8e30b1d0f8ac7f14 # v1.2.0 + + - run: sudo apt update && sudo apt install libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libc6-dev && export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH + + - uses: ./.github/actions/get_deps + + - uses: ./.github/actions/build with: - vulkan-query-version: latest - vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang - vulkan-use-cache: true - - run: | - cmake . -B build -D${{ matrix.type }} --install-prefix ${{ github.workspace }}/install -DCMAKE_INSTALL_DIR=${{ github.workspace }}/install -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE - cmake --build ${{ github.workspace }}/build --config ${{ matrix.cfg }} - cmake --install ${{ github.workspace }}/build --config ${{ matrix.cfg }} \ No newline at end of file + type: ${{ matrix.type }} + config: ${{ matrix.cfg }} \ No newline at end of file diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 21f2305..1606c07 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: - os: [13, 12, 11] + os: [12, 13] type: [ BUILD_SHARED_LIBS=OFF, BUILD_SHARED_LIBS=ON ] cfg: [ Debug, Release ] @@ -33,12 +33,10 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: submodules: recursive - - uses: humbletim/setup-vulkan-sdk@72eed4b9dbeac5de168f83da8e30b1d0f8ac7f14 # v1.2.0 + + - uses: ./.github/actions/get_deps + + - uses: ./.github/actions/build with: - vulkan-query-version: latest - vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang - vulkan-use-cache: true - - run: | - cmake . -B build -D${{ matrix.type }} --install-prefix ${{ github.workspace }}/install -DCMAKE_INSTALL_DIR=${{ github.workspace }}/install -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE - cmake --build ${{ github.workspace }}/build --config ${{ matrix.cfg }} - cmake --install ${{ github.workspace }}/build --config ${{ matrix.cfg }} \ No newline at end of file + type: ${{ matrix.type }} + config: ${{ matrix.cfg }} \ No newline at end of file diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 0c89a09..6280d4a 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -33,12 +33,13 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: submodules: recursive - - uses: humbletim/setup-vulkan-sdk@72eed4b9dbeac5de168f83da8e30b1d0f8ac7f14 # v1.2.0 + + - uses: ./.github/actions/get_deps + with: + install_dir: ${{github.workspace}}\install + build_dir: ${{github.workspace}}\build + + - uses: ./.github/actions/build with: - vulkan-query-version: latest - vulkan-components: Vulkan-Headers, Vulkan-Loader, Glslang - vulkan-use-cache: true - - run: | - cmake . -B build -D${{ matrix.type }} --install-prefix ${{ github.workspace }}/install -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE - cmake --build ${{ github.workspace }}/build --config ${{ matrix.cfg }} - cmake --install ${{ github.workspace }}/build --config ${{ matrix.cfg }} \ No newline at end of file + type: ${{ matrix.type }} + config: ${{ matrix.cfg }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index d3c12e5..b31f4c6 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ compile_commands.json CTestTestfile.cmake _deps build/ +!.github/actions/build/ .vscode/ .vs/ -.DS_Store \ No newline at end of file +.DS_Store +install/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 6bc9f4c..da522a9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,9 @@ [submodule "docs"] path = docs url = ../DragonDocs +[submodule "modules/particle"] + path = modules/particle + url = ../DragonParticle +[submodule "modules/raytrace"] + path = modules/raytrace + url = ../DragonRaytrace diff --git a/CMakeLists.txt b/CMakeLists.txt index f4a5767..6ba80db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,22 +1,23 @@ cmake_minimum_required(VERSION 3.24) -# Vulkan package call has to be separated out since either GLSLC or glslangValidator -# will fufill the shader requirement of the compute engine and the graphics engine -find_package(Vulkan REQUIRED) -find_package(Vulkan COMPONENTS glslc glslangValidator) +find_package(Vulkan REQUIRED OPTIONAL_COMPONENTS glslc glslangValidator) +find_package(Python3 REQUIRED COMPONENTS Interpreter) # Check if the CMP0077 policy is set and if not, set it to NEW set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) string(TIMESTAMP maj "%Y") +math(EXPR maj ${maj}) string(TIMESTAMP min "%m") +math(EXPR min ${min}) string(TIMESTAMP rev "%d") +math(EXPR rev ${rev}) project(DragonEngine VERSION ${maj}.${min}.${rev}.0) set(Dragon_FOUND CACHE BOOL "" ON) if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) - set(FMT_MASTER_PROJECT ON) + set(DragonEngine_MASTER_PROJECT CACHE BOOL ON) message(STATUS "CMake version: ${CMAKE_VERSION}") endif () @@ -27,24 +28,53 @@ if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) message(STATUS "Build started for ${PROJECT_NAME} Version ${PROJECT_VERSION}") endif() -option(Dragon_INSTALL "Toggle to optionally configure the install files for DragonEngine" OFF) -option(Dragon_PACKAGE_BUILD "Toggle to optionally configure the CPack generator files" OFF) +option(Dragon_INSTALL "Toggle to optionally configure the install files for DragonEngine" ON) +option(Dragon_INSTALL_SOURCE "Toggle to optionally install the C++ source files for DragonEngine" ${DragonEngine_MASTER_PROJECT}) +option(Dragon_PACKAGE_BUILD "Toggle to optionally configure the CPack generator files" ON) option(Dragon_BUILD_EXAMPLES "Toggle to optionally build all the examples (dginfo is always built)" ON) -option(Dragon_BUILD_TESTS "Toggle to optionally not build the tests for DragonEngine" OFF) -option(Dragon_BUILD_DOCS "Toggle to optionally build the documentation (has no effect without Doxygen)" OFF) +option(Dragon_BUILD_TESTS "Toggle to optionally not build the tests for DragonEngine" ON) +option(Dragon_BUILD_DOCS "Toggle to optionally build the documentation (has no effect without Doxygen)" ON) option(Dragon_BUILD_DEPENDENCY_DOCS "Toggle to optionally build the documentation for Dragon's source dependencies (VkBootstrap, VMA, etc.)" OFF) option(Dragon_NO_VULKAN "Toggle to build DragonEngine without any Vulkan or VMA support" OFF) message(CHECK_START "Finding Dragon Submodules") unset(missingComponents) +message(CHECK_START "Finding Dragon::Audio") +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/audio/CMakeLists.txt) + set(DragonAudio_FOUND CACHE BOOL "" ON) + message(CHECK_PASS "found sources") + add_subdirectory(modules/audio) +else() + find_package(DragonEngine COMPONENTS Audio QUIET) + if(DragonAudio_FOUND) + message(CHECK_PASS "found binaries") + else() + message(CHECK_FAIL "not found") + endif() +endif() + +message(CHECK_START "Finding Dragon::Compute") +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/compute/CMakeLists.txt) + set(DragonCompute_FOUND CACHE BOOL "" ON) + message(CHECK_PASS "found sources") + add_subdirectory(modules/compute) +else() + find_package(DragonEngine COMPONENTS Compute QUIET) + if(DragonCompute_FOUND) + message(CHECK_PASS "found binaries") + else() + message(CHECK_FAIL "not found") + endif() +endif() + message(CHECK_START "Finding Dragon::Core") if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/core/CMakeLists.txt) set(DragonCore_FOUND CACHE BOOL "" ON) message(CHECK_PASS "found sources") add_subdirectory(modules/core) else() - find_package(DragonCore) + find_package(DragonEngine COMPONENTS Core QUIET) if(DragonCore_FOUND) message(CHECK_PASS "found binaries") else() @@ -52,33 +82,59 @@ else() endif() endif() -if(DragonCore_FOUND) - message(CHECK_START "Finding Dragon::Graphics") - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/graphics/CMakeLists.txt) - set(DragonGraphics_FOUND CACHE BOOL "" ON) - message(CHECK_PASS "found sources") - add_subdirectory(modules/graphics) +message(CHECK_START "Finding Dragon::Graphics") +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/graphics/CMakeLists.txt) + set(DragonGraphics_FOUND CACHE BOOL "" ON) + message(CHECK_PASS "found sources") + add_subdirectory(modules/graphics) +else() + find_package(DragonEngine COMPONENTS Graphics QUIET) + if(DragonGraphics_FOUND) + message(CHECK_PASS "found binaries") + else() + message(CHECK_FAIL "not found") + endif() +endif() + +message(CHECK_START "Finding Dragon::Particle") +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/particle/CMakeLists.txt) + set(DragonParticle_FOUND CACHE BOOL "" ON) + message(CHECK_PASS "found sources") + add_subdirectory(modules/particle) +else() + find_package(DragonEngine COMPONENTS Particle QUIET) + if(DragonParticle_FOUND) + message(CHECK_PASS "found binaries") else() - find_package(DragonGraphics) - if(DragonGraphics_FOUND) - message(CHECK_PASS "found binaries") - else() - message(CHECK_FAIL "not found") - endif() + message(CHECK_FAIL "not found") endif() +endif() - message(CHECK_START "Finding Dragon::Compute") - if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/compute/CMakeLists.txt) - set(DragonCompute_FOUND CACHE BOOL "" ON) - message(CHECK_PASS "found sources") - add_subdirectory(modules/compute) +message(CHECK_START "Finding Dragon::Physics") +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/physics/CMakeLists.txt) + set(DragonPhysics_FOUND CACHE BOOL "" ON) + message(CHECK_PASS "found sources") + add_subdirectory(modules/physics) +else() + find_package(DragonEngine COMPONENTS Physics QUIET) + if(DragonPhysics_FOUND) + message(CHECK_PASS "found binaries") else() - find_package(DragonCompute) - if(DragonCompute_FOUND) - message(CHECK_PASS "found binaries") - else() - message(CHECK_FAIL "not found") - endif() + message(CHECK_FAIL "not found") + endif() +endif() + +message(CHECK_START "Finding Dragon::Raytrace") +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/modules/raytrace/CMakeLists.txt) + set(DragonRaytrace_FOUND CACHE BOOL "" ON) + message(CHECK_PASS "found sources") + add_subdirectory(modules/raytrace) +else() + find_package(DragonEngine COMPONENTS Raytrace QUIET) + if(DragonRaytrace_FOUND) + message(CHECK_PASS "found binaries") + else() + message(CHECK_FAIL "not found") endif() endif() @@ -102,9 +158,5 @@ if(Dragon_BUILD_DOCS) endif() if(Dragon_INSTALL) - include(GNUInstallDirs) include(cmake/install.cmake) - if(Dragon_PACKAGE_BUILD) - include(cmake/package.cmake) - endif() endif() \ No newline at end of file diff --git a/cmake/DragonEngineConfig.cmake.in b/cmake/DragonEngineConfig.cmake.in new file mode 100644 index 0000000..d6581af --- /dev/null +++ b/cmake/DragonEngineConfig.cmake.in @@ -0,0 +1,24 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) + +set(DragonEngine_VERSION @DragonEngine_VERSION@) + +find_dependency(Vulkan) +find_dependency(GLFW) +find_dependency(fmt) + +set(_supported_comps Audio Compute Core Graphics Particle Physics Raytrace) + +include(${CMAKE_CURRENT_LIST_DIR}/DragonEngine_CoreTargets.cmake) + +foreach(comp ${DragonEngine_FIND_COMPONENTS}) + if(NOT ";${_supported_comps};" MATCHES ";${_comp};") + set(DragonEngine_FOUND False) + set(DragonEngine_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}") + endif() + + include(${CMAKE_CURRENT_LIST_DIR}/DragonEngine_${comp}Targets.cmake) +endforeach() + +unset(_supported_comps) \ No newline at end of file diff --git a/cmake/install.cmake b/cmake/install.cmake index e69de29..8d593b5 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -0,0 +1,9 @@ +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) + +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DragonEngineConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake/DragonEngineConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/dragon +) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cmake/DragonEngineConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/dragon) \ No newline at end of file diff --git a/docs b/docs index 8847036..35b4114 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 884703691e14df5ae35752609aca8a5de01db068 +Subproject commit 35b41141d21ef75a851fc9095cfb893f4d3d99bb diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 3a882af..f7a1eb8 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,2 +1,11 @@ add_executable(dgwindowtest window_test.cpp) -target_link_libraries(dgwindowtest PUBLIC Dragon::Core Dragon::Graphics) \ No newline at end of file +target_link_libraries(dgwindowtest PUBLIC Dragon::Core Dragon::Graphics) + +if(Dragon_INSTALL) + include(GNUInstallDirs) + install(TARGETS dgwindowtest + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + ) +endif() \ No newline at end of file diff --git a/examples/audio_wav.cpp b/examples/audio_wav.cpp new file mode 100644 index 0000000..e69de29 diff --git a/examples/window_test.cpp b/examples/window_test.cpp index b442b45..dee8a5e 100644 --- a/examples/window_test.cpp +++ b/examples/window_test.cpp @@ -5,22 +5,25 @@ using namespace Dragon; -int main(void) { - EngineCreateInfo createInfo; - createInfo.appName = "Window Test"; +const std::vector vertices = { + {{0.0f, -0.5f}, {1.0f, 0.0f, 0.0f, 1.0f}}, + {{0.5f, 0.5f}, {0.0f, 1.0f, 0.0f, 1.0f}}, + {{-0.5f, 0.5f}, {0.0f, 0.0f, 1.0f, 1.0f}} +}; - Engine* engine = new Engine(); - Graphics::Engine* graphicsEngine = new Graphics::Engine(); - engine->addSubmodule(dynamic_cast(graphicsEngine)); +int main(void) { try { - engine->init(createInfo); - - // Initial window created by default - Graphics::Window* window = graphicsEngine->getWindow(0); + EngineCreateInfo createInfo; + createInfo.appName = "Window Test"; - window->setWindowSize(800, 400); - window->setWindowTitle("Window Test"); + Engine* engine = new Engine(); + Graphics::Engine* graphicsEngine = new Graphics::Engine(); + engine->addSubmodule(dynamic_cast(graphicsEngine)); + Graphics::Window* window = graphicsEngine->createWindow(800, 400, "Window Test"); + + engine->init(createInfo); + while(graphicsEngine->areWindowsOpen()) { engine->update(); } diff --git a/modules/audio b/modules/audio index d21c8d8..b2b20f5 160000 --- a/modules/audio +++ b/modules/audio @@ -1 +1 @@ -Subproject commit d21c8d889e6eb374685b2fce6687139d823984f4 +Subproject commit b2b20f513d2c9727323d627d9be8dd2f00f31299 diff --git a/modules/core b/modules/core index 868bfad..0e5b735 160000 --- a/modules/core +++ b/modules/core @@ -1 +1 @@ -Subproject commit 868bfad50d722b3773d83fc09054759a94ef2204 +Subproject commit 0e5b73523681ce7a07cffefbbd1bcca1837f04b2 diff --git a/modules/graphics b/modules/graphics index 218a5b7..4703a63 160000 --- a/modules/graphics +++ b/modules/graphics @@ -1 +1 @@ -Subproject commit 218a5b77d32e0f9776a03640eeef54a508ccd49a +Subproject commit 4703a630e42c8c08d9d6e8823d910b553d96ba6f diff --git a/modules/particle b/modules/particle new file mode 160000 index 0000000..efd0029 --- /dev/null +++ b/modules/particle @@ -0,0 +1 @@ +Subproject commit efd00298fa67c62f0c981fda845071668293106d diff --git a/modules/raytrace b/modules/raytrace new file mode 160000 index 0000000..a3fcbf5 --- /dev/null +++ b/modules/raytrace @@ -0,0 +1 @@ +Subproject commit a3fcbf5b3887f3c9752e06c4215a952a5fcfc2c0 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..e69de29