diff --git a/.gitignore b/.gitignore index e3d76fa..1c91954 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .vs/ bin/ bin-obj/ +build/ # VS Files **.vcxproj** @@ -25,4 +26,4 @@ Makefile **.ini !**/default_gui_layout.ini -CMake/ \ No newline at end of file +CMake/ diff --git a/.gitmodules b/.gitmodules index 28d057a..74f85a1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -15,4 +15,4 @@ url = https://github.com/skypjack/entt [submodule "Dependencies/ShaderConductor"] path = Dependencies/ShaderConductor - url = https://github.com/microsoft/shaderconductor + url = https://github.com/Light3039/shaderconductor diff --git a/CMake/.gitkeep b/CMake/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ef5b52..98d21fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,11 @@ -cmake_minimum_required(VERSION 3.21.2) +cmake_minimum_required(VERSION 3.14) project(Light VERSION 1.0.0) +set(CMAKE_CXX_STANDARD 14) +set(SPIRV_CROSS_ENABLE_TESTS OFF) +set(INSTALL_GTEST OFF) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error") add_subdirectory(Dependencies/ShaderConductor) # <-- this project should not use "cxx_standard 17" # directories @@ -14,8 +18,13 @@ set(ENGINE_DIR ${CMAKE_BINARY_DIR}/../Engine/) set(DEPENDENCIES_DIR ${CMAKE_BINARY_DIR}/../Dependencies/) # projects -set(CMAKE_CXX_STANDARD 17) -add_compile_definitions(LIGHT_PLATFORM_WINDOWS) +set(CMAKE_CXX_STANDARD 20) + +if(WIN32) + add_compile_definitions(LIGHT_PLATFORM_WINDOWS) +elseif(UNIX) + add_compile_definitions(LIGHT_PLATFORM_LINUX) +endif() add_subdirectory(${ENGINE_DIR}/) add_subdirectory(${MIRROR_DIR}/) @@ -42,4 +51,4 @@ target_link_libraries(Mirror Engine) if(MSVC) set_property(DIRECTORY ${CMAE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Mirror) -endif() \ No newline at end of file +endif() diff --git a/Dependencies/GLAD/CMakeLists.txt b/Dependencies/GLAD/CMakeLists.txt index 419599b..f09b378 100644 --- a/Dependencies/GLAD/CMakeLists.txt +++ b/Dependencies/GLAD/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.21.2) +cmake_minimum_required(VERSION 3.14) if (CMAKE_COMPILER_IS_GNUCC) add_compile_options(-w) @@ -15,4 +15,4 @@ file(GLOB_RECURSE GLAD_HEADERS true ABSOLUTE ${CMAKE_CURRENT_SOURCE_DIR}/include include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/) -add_library(glad STATIC ${GLAD_SOURCES} ${GLAD_HEADERS}) \ No newline at end of file +add_library(glad STATIC ${GLAD_SOURCES} ${GLAD_HEADERS}) diff --git a/Dependencies/ShaderConductor b/Dependencies/ShaderConductor index 30a77c7..9420a9b 160000 --- a/Dependencies/ShaderConductor +++ b/Dependencies/ShaderConductor @@ -1 +1 @@ -Subproject commit 30a77c78d24fa08f4fe5fc4428f10dbfc92717a6 +Subproject commit 9420a9b06a059e7def5e5da15e357281f4382015 diff --git a/Dependencies/stb_image/CMakeLists.txt b/Dependencies/stb_image/CMakeLists.txt index 251aad5..31367c4 100644 --- a/Dependencies/stb_image/CMakeLists.txt +++ b/Dependencies/stb_image/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.21.2) +cmake_minimum_required(VERSION 3.14) if (CMAKE_COMPILER_IS_GNUCC) add_compile_options(-w) @@ -10,4 +10,4 @@ endif() file(GLOB STB_IMAGES_FILES true ABSOLUTE ${CMAKE_CURRENT_SOURCE_DIR}/*) -add_library(stb_image STATIC ${STB_IMAGES_FILES}) \ No newline at end of file +add_library(stb_image STATIC ${STB_IMAGES_FILES}) diff --git a/Engine/CMakeLists.txt b/Engine/CMakeLists.txt index d5cdc0a..85b6836 100644 --- a/Engine/CMakeLists.txt +++ b/Engine/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.21.2) +cmake_minimum_required(VERSION 3.14) if (CMAKE_COMPILER_IS_GNUCC) add_compile_options(-w) @@ -62,8 +62,10 @@ endif() message(BINARY DIRECTORY IS IN ${CMAKE_BINARY_DIR}) -add_custom_command( - TARGET Engine - POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_BINARY_DIR}/Dependencies/ShaderConductor/Bin/Debug/ShaderConductor.dll - ${CMAKE_BINARY_DIR}/bin/Debug) \ No newline at end of file +if(WIN32) + add_custom_command( + TARGET Engine + POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_BINARY_DIR}/Dependencies/ShaderConductor/Bin/Debug/ShaderConductor.dll + ${CMAKE_BINARY_DIR}/bin/Debug) +endif() \ No newline at end of file diff --git a/Engine/src/Engine/Core/Application.h b/Engine/src/Engine/Core/Application.h index bebe61f..55a4ae1 100644 --- a/Engine/src/Engine/Core/Application.h +++ b/Engine/src/Engine/Core/Application.h @@ -35,7 +35,6 @@ namespace Light { void GameLoop(); // To be defined in client project - friend Application* CreateApplication(); protected: Application(); @@ -46,4 +45,6 @@ namespace Light { void LogDebugData(); }; + Application* CreateApplication(); + } \ No newline at end of file diff --git a/Engine/src/Engine/Math/Random.cpp b/Engine/src/Engine/Math/Random.cpp index aa68abd..1358905 100644 --- a/Engine/src/Engine/Math/Random.cpp +++ b/Engine/src/Engine/Math/Random.cpp @@ -5,7 +5,7 @@ namespace Light { namespace Math { - float Math::Rand(int min, int max, int decimals /* = 0 */) + float Rand(int min, int max, int decimals /* = 0 */) { const int dec = std::pow(10, decimals); min *= dec; @@ -14,7 +14,7 @@ namespace Light { namespace Math { return (min + (rand() % (max)-min)) / (float)dec; } - glm::vec2 Math::RandVec2(int min, int max, int decimals /* = 0 */) + glm::vec2 RandVec2(int min, int max, int decimals /* = 0 */) { const int dec = std::pow(10, decimals); min *= dec; @@ -26,7 +26,7 @@ namespace Light { namespace Math { return glm::vec2(r1, r2); } - glm::vec3 Math::RandVec3(int min, int max, int decimals /* = 0 */) + glm::vec3 RandVec3(int min, int max, int decimals /* = 0 */) { const int dec = std::pow(10, decimals); min *= dec; diff --git a/Mirror/CMakeLists.txt b/Mirror/CMakeLists.txt index e9feab4..24865d9 100644 --- a/Mirror/CMakeLists.txt +++ b/Mirror/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.21.2) +cmake_minimum_required(VERSION 3.14) if (CMAKE_COMPILER_IS_GNUCC) add_compile_options(-w) @@ -26,4 +26,4 @@ ${DEPENDENCIES_DIR}stb_image/ file(GLOB_RECURSE MIRROR_FILES true ABSOLUTE ${CMAKE_CURRENT_SOURCE_DIR}/src/* ${CMAKE_CURRENT_SOURCE_DIR}/res/*) source_group(TREE ${MIRROR_DIR} FILES ${MIRROR_FILES}) -add_executable(Mirror ${MIRROR_FILES}) \ No newline at end of file +add_executable(Mirror ${MIRROR_FILES}) diff --git a/Mirror/src/EditorLayer.cpp b/Mirror/src/EditorLayer.cpp index a3eba51..6d1fdbe 100644 --- a/Mirror/src/EditorLayer.cpp +++ b/Mirror/src/EditorLayer.cpp @@ -84,7 +84,7 @@ namespace Light { const glm::vec4 tint = glm::vec4(Math::RandVec3(0, 1, 2), 1.0f); - auto& entity = m_Scene->CreateEntity("quad" + std::to_string(i), { translation, scale, rotation }); + auto entity = m_Scene->CreateEntity("quad" + std::to_string(i), { translation, scale, rotation }); entity.AddComponent(texture, tint); } }