diff --git a/Project/CMakeLists.txt b/Project/CMakeLists.txt index 75ea99a..5e1020b 100644 --- a/Project/CMakeLists.txt +++ b/Project/CMakeLists.txt @@ -51,15 +51,17 @@ if( CMAKE_BUILD_TYPE STREQUAL "debug" ) add_definitions(-D_DEBUG) endif() -macro( add_executable _number _name ) +macro( add_executable _type _number _name ) set( TARGET_NAME "${_number}-${_name}" ) - _add_executable( ${TARGET_NAME} ${ARGN} ) + file( GLOB PROJECT_FILES "${CMAKE_CURRENT_LIST_DIR}/${_type}/${_number}/*.*" ) + _add_executable( ${TARGET_NAME} ${ARGN} ${PROJECT_FILES} ) target_compile_definitions( ${TARGET_NAME} PRIVATE USE_SWAPCHAIN_EXTENSIONS ) target_link_libraries( ${TARGET_NAME} ${PLATFORM_LIBRARY} ) - set_property( TARGET ${TARGET_NAME} PROPERTY FOLDER "Tutorials" ) + set_property( TARGET ${TARGET_NAME} PROPERTY FOLDER "${_type}" ) - if( EXISTS "${CMAKE_SOURCE_DIR}/Tutorial${_number}/Data${_number}/" ) - file( COPY "${CMAKE_SOURCE_DIR}/Tutorial${_number}/Data${_number}/" DESTINATION "${CMAKE_SOURCE_DIR}/build/Data${_number}" ) + if( EXISTS "${CMAKE_SOURCE_DIR}/${_type}/${_number}/Data" ) + file( GLOB DATA_FILES "${CMAKE_SOURCE_DIR}/${_type}/${_number}/Data/*.*" ) + file( COPY ${DATA_FILES} DESTINATION "${CMAKE_SOURCE_DIR}/build/Data/${_type}/${_number}/" ) endif() endmacro() @@ -114,46 +116,21 @@ source_group( "Source Files\\Common" FILES ${ADVANCED_SHARED_SOURCE_FILES} ) source_group( "Header Files" FILES ${TUTORIAL_HEADER_FILES} ) source_group( "Source Files" FILES ${TUTORIAL_SOURCE_FILES} ) -_add_executable( "01-The_Beginning" - ${ALL_BASIC_SHARED_FILES} - Tutorial01/Tutorial01.h - Tutorial01/main.cpp - Tutorial01/Tutorial01.cpp ) +_add_executable( "01-The_Beginning" ${ALL_BASIC_SHARED_FILES} + Tutorials/01/Tutorial01.h + Tutorials/01/main.cpp + Tutorials/01/Tutorial01.cpp ) target_link_libraries( "01-The_Beginning" ${PLATFORM_LIBRARY} ) set_property( TARGET "01-The_Beginning" PROPERTY FOLDER "Tutorials" ) -add_executable( "02" "Swapchain" - ${ALL_BASIC_SHARED_FILES} - Tutorial02/Tutorial02.h - Tutorial02/main.cpp - Tutorial02/Tutorial02.cpp ) +add_executable( "Tutorials" "02" "Swapchain" ${ALL_BASIC_SHARED_FILES} ) -add_executable( "03" "First_Triangle" - ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} - Tutorial03/Tutorial03.h - Tutorial03/main.cpp - Tutorial03/Tutorial03.cpp ) +add_executable( "Tutorials" "03" "First_Triangle" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} ) -add_executable( "04" "Vertex_Attributes" - ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} - Tutorial04/Tutorial04.h - Tutorial04/main.cpp - Tutorial04/Tutorial04.cpp ) - -add_executable( "05" "Staging_Resources" - ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} - Tutorial05/Tutorial05.h - Tutorial05/main.cpp - Tutorial05/Tutorial05.cpp ) +add_executable( "Tutorials" "04" "Vertex_Attributes" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} ) -add_executable( "06" "Descriptor_Sets" - ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} - Tutorial06/Tutorial06.h - Tutorial06/main.cpp - Tutorial06/Tutorial06.cpp ) +add_executable( "Tutorials" "05" "Staging_Resources" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} ) -add_executable( "07" "Uniform_Buffers" - ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} - Tutorial07/Tutorial07.h - Tutorial07/main.cpp - Tutorial07/Tutorial07.cpp ) \ No newline at end of file +add_executable( "Tutorials" "06" "Descriptor_Sets" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} ) + +add_executable( "Tutorials" "07" "Uniform_Buffers" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} ) diff --git a/Project/Tutorial01/Tutorial01.cpp b/Project/Tutorials/01/Tutorial01.cpp similarity index 100% rename from Project/Tutorial01/Tutorial01.cpp rename to Project/Tutorials/01/Tutorial01.cpp diff --git a/Project/Tutorial01/Tutorial01.h b/Project/Tutorials/01/Tutorial01.h similarity index 100% rename from Project/Tutorial01/Tutorial01.h rename to Project/Tutorials/01/Tutorial01.h diff --git a/Project/Tutorial01/main.cpp b/Project/Tutorials/01/main.cpp similarity index 100% rename from Project/Tutorial01/main.cpp rename to Project/Tutorials/01/main.cpp diff --git a/Project/Tutorial02/Tutorial02.cpp b/Project/Tutorials/02/Tutorial02.cpp similarity index 100% rename from Project/Tutorial02/Tutorial02.cpp rename to Project/Tutorials/02/Tutorial02.cpp diff --git a/Project/Tutorial02/Tutorial02.h b/Project/Tutorials/02/Tutorial02.h similarity index 100% rename from Project/Tutorial02/Tutorial02.h rename to Project/Tutorials/02/Tutorial02.h diff --git a/Project/Tutorial02/main.cpp b/Project/Tutorials/02/main.cpp similarity index 100% rename from Project/Tutorial02/main.cpp rename to Project/Tutorials/02/main.cpp diff --git a/Project/Tutorial03/Data03/frag.spv b/Project/Tutorials/03/Data/frag.spv similarity index 100% rename from Project/Tutorial03/Data03/frag.spv rename to Project/Tutorials/03/Data/frag.spv diff --git a/Project/Tutorial03/Data03/frag.spv.txt b/Project/Tutorials/03/Data/frag.spv.txt similarity index 100% rename from Project/Tutorial03/Data03/frag.spv.txt rename to Project/Tutorials/03/Data/frag.spv.txt diff --git a/Project/Tutorial03/Data03/shader.frag b/Project/Tutorials/03/Data/shader.frag similarity index 100% rename from Project/Tutorial03/Data03/shader.frag rename to Project/Tutorials/03/Data/shader.frag diff --git a/Project/Tutorial03/Data03/shader.vert b/Project/Tutorials/03/Data/shader.vert similarity index 100% rename from Project/Tutorial03/Data03/shader.vert rename to Project/Tutorials/03/Data/shader.vert diff --git a/Project/Tutorial03/Data03/vert.spv b/Project/Tutorials/03/Data/vert.spv similarity index 100% rename from Project/Tutorial03/Data03/vert.spv rename to Project/Tutorials/03/Data/vert.spv diff --git a/Project/Tutorial03/Data03/vert.spv.txt b/Project/Tutorials/03/Data/vert.spv.txt similarity index 100% rename from Project/Tutorial03/Data03/vert.spv.txt rename to Project/Tutorials/03/Data/vert.spv.txt diff --git a/Project/Tutorial03/Tutorial03.cpp b/Project/Tutorials/03/Tutorial03.cpp similarity index 99% rename from Project/Tutorial03/Tutorial03.cpp rename to Project/Tutorials/03/Tutorial03.cpp index 559100d..c4b8d61 100644 --- a/Project/Tutorial03/Tutorial03.cpp +++ b/Project/Tutorials/03/Tutorial03.cpp @@ -149,8 +149,8 @@ namespace ApiWithoutSecrets { } bool Tutorial03::CreatePipeline() { - Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data03/vert.spv" ); - Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data03/frag.spv" ); + Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data/Tutorials/03/vert.spv" ); + Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data/Tutorials/03/frag.spv" ); if( !vertex_shader_module || !fragment_shader_module ) { return false; diff --git a/Project/Tutorial03/Tutorial03.h b/Project/Tutorials/03/Tutorial03.h similarity index 100% rename from Project/Tutorial03/Tutorial03.h rename to Project/Tutorials/03/Tutorial03.h diff --git a/Project/Tutorial03/main.cpp b/Project/Tutorials/03/main.cpp similarity index 100% rename from Project/Tutorial03/main.cpp rename to Project/Tutorials/03/main.cpp diff --git a/Project/Tutorial04/Data04/frag.spv b/Project/Tutorials/04/Data/frag.spv similarity index 100% rename from Project/Tutorial04/Data04/frag.spv rename to Project/Tutorials/04/Data/frag.spv diff --git a/Project/Tutorial04/Data04/frag.spv.txt b/Project/Tutorials/04/Data/frag.spv.txt similarity index 100% rename from Project/Tutorial04/Data04/frag.spv.txt rename to Project/Tutorials/04/Data/frag.spv.txt diff --git a/Project/Tutorial04/Data04/shader.frag b/Project/Tutorials/04/Data/shader.frag similarity index 100% rename from Project/Tutorial04/Data04/shader.frag rename to Project/Tutorials/04/Data/shader.frag diff --git a/Project/Tutorial04/Data04/shader.vert b/Project/Tutorials/04/Data/shader.vert similarity index 100% rename from Project/Tutorial04/Data04/shader.vert rename to Project/Tutorials/04/Data/shader.vert diff --git a/Project/Tutorial04/Data04/vert.spv b/Project/Tutorials/04/Data/vert.spv similarity index 100% rename from Project/Tutorial04/Data04/vert.spv rename to Project/Tutorials/04/Data/vert.spv diff --git a/Project/Tutorial04/Data04/vert.spv.txt b/Project/Tutorials/04/Data/vert.spv.txt similarity index 100% rename from Project/Tutorial04/Data04/vert.spv.txt rename to Project/Tutorials/04/Data/vert.spv.txt diff --git a/Project/Tutorial04/Tutorial04.cpp b/Project/Tutorials/04/Tutorial04.cpp similarity index 99% rename from Project/Tutorial04/Tutorial04.cpp rename to Project/Tutorials/04/Tutorial04.cpp index 2c6c1db..a2584a8 100644 --- a/Project/Tutorial04/Tutorial04.cpp +++ b/Project/Tutorials/04/Tutorial04.cpp @@ -146,8 +146,8 @@ namespace ApiWithoutSecrets { } bool Tutorial04::CreatePipeline() { - Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data04/vert.spv" ); - Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data04/frag.spv" ); + Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data/Tutorials/04/vert.spv" ); + Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data/Tutorials/04/frag.spv" ); if( !vertex_shader_module || !fragment_shader_module ) { return false; diff --git a/Project/Tutorial04/Tutorial04.h b/Project/Tutorials/04/Tutorial04.h similarity index 100% rename from Project/Tutorial04/Tutorial04.h rename to Project/Tutorials/04/Tutorial04.h diff --git a/Project/Tutorial04/main.cpp b/Project/Tutorials/04/main.cpp similarity index 100% rename from Project/Tutorial04/main.cpp rename to Project/Tutorials/04/main.cpp diff --git a/Project/Tutorial05/Data05/frag.spv b/Project/Tutorials/05/Data/frag.spv similarity index 100% rename from Project/Tutorial05/Data05/frag.spv rename to Project/Tutorials/05/Data/frag.spv diff --git a/Project/Tutorial05/Data05/frag.spv.txt b/Project/Tutorials/05/Data/frag.spv.txt similarity index 100% rename from Project/Tutorial05/Data05/frag.spv.txt rename to Project/Tutorials/05/Data/frag.spv.txt diff --git a/Project/Tutorial05/Data05/shader.frag b/Project/Tutorials/05/Data/shader.frag similarity index 100% rename from Project/Tutorial05/Data05/shader.frag rename to Project/Tutorials/05/Data/shader.frag diff --git a/Project/Tutorial05/Data05/shader.vert b/Project/Tutorials/05/Data/shader.vert similarity index 100% rename from Project/Tutorial05/Data05/shader.vert rename to Project/Tutorials/05/Data/shader.vert diff --git a/Project/Tutorial05/Data05/vert.spv b/Project/Tutorials/05/Data/vert.spv similarity index 100% rename from Project/Tutorial05/Data05/vert.spv rename to Project/Tutorials/05/Data/vert.spv diff --git a/Project/Tutorial05/Data05/vert.spv.txt b/Project/Tutorials/05/Data/vert.spv.txt similarity index 100% rename from Project/Tutorial05/Data05/vert.spv.txt rename to Project/Tutorials/05/Data/vert.spv.txt diff --git a/Project/Tutorial05/Tutorial05.cpp b/Project/Tutorials/05/Tutorial05.cpp similarity index 99% rename from Project/Tutorial05/Tutorial05.cpp rename to Project/Tutorials/05/Tutorial05.cpp index e131369..2f9e59b 100644 --- a/Project/Tutorial05/Tutorial05.cpp +++ b/Project/Tutorials/05/Tutorial05.cpp @@ -230,8 +230,8 @@ namespace ApiWithoutSecrets { } bool Tutorial05::CreatePipeline() { - Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data05/vert.spv" ); - Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data05/frag.spv" ); + Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data/Tutorials/05/vert.spv" ); + Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data/Tutorials/05/frag.spv" ); if( !vertex_shader_module || !fragment_shader_module ) { return false; diff --git a/Project/Tutorial05/Tutorial05.h b/Project/Tutorials/05/Tutorial05.h similarity index 100% rename from Project/Tutorial05/Tutorial05.h rename to Project/Tutorials/05/Tutorial05.h diff --git a/Project/Tutorial05/main.cpp b/Project/Tutorials/05/main.cpp similarity index 100% rename from Project/Tutorial05/main.cpp rename to Project/Tutorials/05/main.cpp diff --git a/Project/Tutorial06/Data06/frag.spv b/Project/Tutorials/06/Data/frag.spv similarity index 100% rename from Project/Tutorial06/Data06/frag.spv rename to Project/Tutorials/06/Data/frag.spv diff --git a/Project/Tutorial06/Data06/frag.spv.txt b/Project/Tutorials/06/Data/frag.spv.txt similarity index 100% rename from Project/Tutorial06/Data06/frag.spv.txt rename to Project/Tutorials/06/Data/frag.spv.txt diff --git a/Project/Tutorial06/Data06/shader.frag b/Project/Tutorials/06/Data/shader.frag similarity index 100% rename from Project/Tutorial06/Data06/shader.frag rename to Project/Tutorials/06/Data/shader.frag diff --git a/Project/Tutorial06/Data06/shader.vert b/Project/Tutorials/06/Data/shader.vert similarity index 100% rename from Project/Tutorial06/Data06/shader.vert rename to Project/Tutorials/06/Data/shader.vert diff --git a/Project/Tutorial06/Data06/texture.png b/Project/Tutorials/06/Data/texture.png similarity index 100% rename from Project/Tutorial06/Data06/texture.png rename to Project/Tutorials/06/Data/texture.png diff --git a/Project/Tutorial06/Data06/vert.spv b/Project/Tutorials/06/Data/vert.spv similarity index 100% rename from Project/Tutorial06/Data06/vert.spv rename to Project/Tutorials/06/Data/vert.spv diff --git a/Project/Tutorial06/Data06/vert.spv.txt b/Project/Tutorials/06/Data/vert.spv.txt similarity index 100% rename from Project/Tutorial06/Data06/vert.spv.txt rename to Project/Tutorials/06/Data/vert.spv.txt diff --git a/Project/Tutorial06/Tutorial06.cpp b/Project/Tutorials/06/Tutorial06.cpp similarity index 99% rename from Project/Tutorial06/Tutorial06.cpp rename to Project/Tutorials/06/Tutorial06.cpp index ee0d284..0a99b04 100644 --- a/Project/Tutorial06/Tutorial06.cpp +++ b/Project/Tutorials/06/Tutorial06.cpp @@ -181,7 +181,7 @@ namespace ApiWithoutSecrets { bool Tutorial06::CreateTexture() { int width = 0, height = 0, data_size = 0; - std::vector texture_data = Tools::GetImageData( "Data06/texture.png", 4, &width, &height, nullptr, &data_size ); + std::vector texture_data = Tools::GetImageData( "Data/Tutorials/06/texture.png", 4, &width, &height, nullptr, &data_size ); if( texture_data.size() == 0 ) { return false; } @@ -606,8 +606,8 @@ namespace ApiWithoutSecrets { } bool Tutorial06::CreatePipeline() { - Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data06/vert.spv" ); - Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data06/frag.spv" ); + Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data/Tutorials/06/vert.spv" ); + Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data/Tutorials/06/frag.spv" ); if( !vertex_shader_module || !fragment_shader_module ) { return false; diff --git a/Project/Tutorial06/Tutorial06.h b/Project/Tutorials/06/Tutorial06.h similarity index 100% rename from Project/Tutorial06/Tutorial06.h rename to Project/Tutorials/06/Tutorial06.h diff --git a/Project/Tutorial06/main.cpp b/Project/Tutorials/06/main.cpp similarity index 100% rename from Project/Tutorial06/main.cpp rename to Project/Tutorials/06/main.cpp diff --git a/Project/Tutorial07/Data07/frag.spv b/Project/Tutorials/07/Data/frag.spv similarity index 100% rename from Project/Tutorial07/Data07/frag.spv rename to Project/Tutorials/07/Data/frag.spv diff --git a/Project/Tutorial07/Data07/frag.spv.txt b/Project/Tutorials/07/Data/frag.spv.txt similarity index 100% rename from Project/Tutorial07/Data07/frag.spv.txt rename to Project/Tutorials/07/Data/frag.spv.txt diff --git a/Project/Tutorial07/Data07/shader.frag b/Project/Tutorials/07/Data/shader.frag similarity index 100% rename from Project/Tutorial07/Data07/shader.frag rename to Project/Tutorials/07/Data/shader.frag diff --git a/Project/Tutorial07/Data07/shader.vert b/Project/Tutorials/07/Data/shader.vert similarity index 100% rename from Project/Tutorial07/Data07/shader.vert rename to Project/Tutorials/07/Data/shader.vert diff --git a/Project/Tutorial07/Data07/texture.png b/Project/Tutorials/07/Data/texture.png similarity index 100% rename from Project/Tutorial07/Data07/texture.png rename to Project/Tutorials/07/Data/texture.png diff --git a/Project/Tutorial07/Data07/vert.spv b/Project/Tutorials/07/Data/vert.spv similarity index 100% rename from Project/Tutorial07/Data07/vert.spv rename to Project/Tutorials/07/Data/vert.spv diff --git a/Project/Tutorial07/Data07/vert.spv.txt b/Project/Tutorials/07/Data/vert.spv.txt similarity index 100% rename from Project/Tutorial07/Data07/vert.spv.txt rename to Project/Tutorials/07/Data/vert.spv.txt diff --git a/Project/Tutorial07/Tutorial07.cpp b/Project/Tutorials/07/Tutorial07.cpp similarity index 99% rename from Project/Tutorial07/Tutorial07.cpp rename to Project/Tutorials/07/Tutorial07.cpp index 3cd94b7..7154776 100644 --- a/Project/Tutorial07/Tutorial07.cpp +++ b/Project/Tutorials/07/Tutorial07.cpp @@ -181,7 +181,7 @@ namespace ApiWithoutSecrets { bool Tutorial07::CreateTexture() { int width = 0, height = 0, data_size = 0; - std::vector texture_data = Tools::GetImageData( "Data07/texture.png", 4, &width, &height, nullptr, &data_size ); + std::vector texture_data = Tools::GetImageData( "Data/Tutorials/07/texture.png", 4, &width, &height, nullptr, &data_size ); if( texture_data.size() == 0 ) { return false; } @@ -739,8 +739,8 @@ namespace ApiWithoutSecrets { } bool Tutorial07::CreatePipeline() { - Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data07/vert.spv" ); - Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data07/frag.spv" ); + Tools::AutoDeleter vertex_shader_module = CreateShaderModule( "Data/Tutorials/07/vert.spv" ); + Tools::AutoDeleter fragment_shader_module = CreateShaderModule( "Data/Tutorials/07/frag.spv" ); if( !vertex_shader_module || !fragment_shader_module ) { return false; diff --git a/Project/Tutorial07/Tutorial07.h b/Project/Tutorials/07/Tutorial07.h similarity index 100% rename from Project/Tutorial07/Tutorial07.h rename to Project/Tutorials/07/Tutorial07.h diff --git a/Project/Tutorial07/main.cpp b/Project/Tutorials/07/main.cpp similarity index 100% rename from Project/Tutorial07/main.cpp rename to Project/Tutorials/07/main.cpp