mirror of
https://github.com/opus-tango/IntroductionToVulkan.git
synced 2026-03-20 03:55:26 +00:00
Changed folder structure and refactored CMakeLists.txt file.
This commit is contained in:
@@ -51,15 +51,17 @@ if( CMAKE_BUILD_TYPE STREQUAL "debug" )
|
|||||||
add_definitions(-D_DEBUG)
|
add_definitions(-D_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro( add_executable _number _name )
|
macro( add_executable _type _number _name )
|
||||||
set( TARGET_NAME "${_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_compile_definitions( ${TARGET_NAME} PRIVATE USE_SWAPCHAIN_EXTENSIONS )
|
||||||
target_link_libraries( ${TARGET_NAME} ${PLATFORM_LIBRARY} )
|
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}/" )
|
if( EXISTS "${CMAKE_SOURCE_DIR}/${_type}/${_number}/Data" )
|
||||||
file( COPY "${CMAKE_SOURCE_DIR}/Tutorial${_number}/Data${_number}/" DESTINATION "${CMAKE_SOURCE_DIR}/build/Data${_number}" )
|
file( GLOB DATA_FILES "${CMAKE_SOURCE_DIR}/${_type}/${_number}/Data/*.*" )
|
||||||
|
file( COPY ${DATA_FILES} DESTINATION "${CMAKE_SOURCE_DIR}/build/Data/${_type}/${_number}/" )
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
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( "Header Files" FILES ${TUTORIAL_HEADER_FILES} )
|
||||||
source_group( "Source Files" FILES ${TUTORIAL_SOURCE_FILES} )
|
source_group( "Source Files" FILES ${TUTORIAL_SOURCE_FILES} )
|
||||||
|
|
||||||
_add_executable( "01-The_Beginning"
|
_add_executable( "01-The_Beginning" ${ALL_BASIC_SHARED_FILES}
|
||||||
${ALL_BASIC_SHARED_FILES}
|
Tutorials/01/Tutorial01.h
|
||||||
Tutorial01/Tutorial01.h
|
Tutorials/01/main.cpp
|
||||||
Tutorial01/main.cpp
|
Tutorials/01/Tutorial01.cpp )
|
||||||
Tutorial01/Tutorial01.cpp )
|
|
||||||
target_link_libraries( "01-The_Beginning" ${PLATFORM_LIBRARY} )
|
target_link_libraries( "01-The_Beginning" ${PLATFORM_LIBRARY} )
|
||||||
set_property( TARGET "01-The_Beginning" PROPERTY FOLDER "Tutorials" )
|
set_property( TARGET "01-The_Beginning" PROPERTY FOLDER "Tutorials" )
|
||||||
|
|
||||||
add_executable( "02" "Swapchain"
|
add_executable( "Tutorials" "02" "Swapchain" ${ALL_BASIC_SHARED_FILES} )
|
||||||
${ALL_BASIC_SHARED_FILES}
|
|
||||||
Tutorial02/Tutorial02.h
|
|
||||||
Tutorial02/main.cpp
|
|
||||||
Tutorial02/Tutorial02.cpp )
|
|
||||||
|
|
||||||
add_executable( "03" "First_Triangle"
|
add_executable( "Tutorials" "03" "First_Triangle" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} )
|
||||||
${ALL_BASIC_AND_ADVANCED_SHARED_FILES}
|
|
||||||
Tutorial03/Tutorial03.h
|
|
||||||
Tutorial03/main.cpp
|
|
||||||
Tutorial03/Tutorial03.cpp )
|
|
||||||
|
|
||||||
add_executable( "04" "Vertex_Attributes"
|
add_executable( "Tutorials" "04" "Vertex_Attributes" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} )
|
||||||
${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( "06" "Descriptor_Sets"
|
add_executable( "Tutorials" "05" "Staging_Resources" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} )
|
||||||
${ALL_BASIC_AND_ADVANCED_SHARED_FILES}
|
|
||||||
Tutorial06/Tutorial06.h
|
|
||||||
Tutorial06/main.cpp
|
|
||||||
Tutorial06/Tutorial06.cpp )
|
|
||||||
|
|
||||||
add_executable( "07" "Uniform_Buffers"
|
add_executable( "Tutorials" "06" "Descriptor_Sets" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} )
|
||||||
${ALL_BASIC_AND_ADVANCED_SHARED_FILES}
|
|
||||||
Tutorial07/Tutorial07.h
|
add_executable( "Tutorials" "07" "Uniform_Buffers" ${ALL_BASIC_AND_ADVANCED_SHARED_FILES} )
|
||||||
Tutorial07/main.cpp
|
|
||||||
Tutorial07/Tutorial07.cpp )
|
|
||||||
|
|||||||
@@ -149,8 +149,8 @@ namespace ApiWithoutSecrets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Tutorial03::CreatePipeline() {
|
bool Tutorial03::CreatePipeline() {
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data03/vert.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data/Tutorials/03/vert.spv" );
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data03/frag.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data/Tutorials/03/frag.spv" );
|
||||||
|
|
||||||
if( !vertex_shader_module || !fragment_shader_module ) {
|
if( !vertex_shader_module || !fragment_shader_module ) {
|
||||||
return false;
|
return false;
|
||||||
@@ -146,8 +146,8 @@ namespace ApiWithoutSecrets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Tutorial04::CreatePipeline() {
|
bool Tutorial04::CreatePipeline() {
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data04/vert.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data/Tutorials/04/vert.spv" );
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data04/frag.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data/Tutorials/04/frag.spv" );
|
||||||
|
|
||||||
if( !vertex_shader_module || !fragment_shader_module ) {
|
if( !vertex_shader_module || !fragment_shader_module ) {
|
||||||
return false;
|
return false;
|
||||||
@@ -230,8 +230,8 @@ namespace ApiWithoutSecrets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Tutorial05::CreatePipeline() {
|
bool Tutorial05::CreatePipeline() {
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data05/vert.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data/Tutorials/05/vert.spv" );
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data05/frag.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data/Tutorials/05/frag.spv" );
|
||||||
|
|
||||||
if( !vertex_shader_module || !fragment_shader_module ) {
|
if( !vertex_shader_module || !fragment_shader_module ) {
|
||||||
return false;
|
return false;
|
||||||
|
Before Width: | Height: | Size: 512 KiB After Width: | Height: | Size: 512 KiB |
@@ -181,7 +181,7 @@ namespace ApiWithoutSecrets {
|
|||||||
|
|
||||||
bool Tutorial06::CreateTexture() {
|
bool Tutorial06::CreateTexture() {
|
||||||
int width = 0, height = 0, data_size = 0;
|
int width = 0, height = 0, data_size = 0;
|
||||||
std::vector<char> texture_data = Tools::GetImageData( "Data06/texture.png", 4, &width, &height, nullptr, &data_size );
|
std::vector<char> texture_data = Tools::GetImageData( "Data/Tutorials/06/texture.png", 4, &width, &height, nullptr, &data_size );
|
||||||
if( texture_data.size() == 0 ) {
|
if( texture_data.size() == 0 ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -606,8 +606,8 @@ namespace ApiWithoutSecrets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Tutorial06::CreatePipeline() {
|
bool Tutorial06::CreatePipeline() {
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data06/vert.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data/Tutorials/06/vert.spv" );
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data06/frag.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data/Tutorials/06/frag.spv" );
|
||||||
|
|
||||||
if( !vertex_shader_module || !fragment_shader_module ) {
|
if( !vertex_shader_module || !fragment_shader_module ) {
|
||||||
return false;
|
return false;
|
||||||
|
Before Width: | Height: | Size: 512 KiB After Width: | Height: | Size: 512 KiB |
@@ -181,7 +181,7 @@ namespace ApiWithoutSecrets {
|
|||||||
|
|
||||||
bool Tutorial07::CreateTexture() {
|
bool Tutorial07::CreateTexture() {
|
||||||
int width = 0, height = 0, data_size = 0;
|
int width = 0, height = 0, data_size = 0;
|
||||||
std::vector<char> texture_data = Tools::GetImageData( "Data07/texture.png", 4, &width, &height, nullptr, &data_size );
|
std::vector<char> texture_data = Tools::GetImageData( "Data/Tutorials/07/texture.png", 4, &width, &height, nullptr, &data_size );
|
||||||
if( texture_data.size() == 0 ) {
|
if( texture_data.size() == 0 ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -739,8 +739,8 @@ namespace ApiWithoutSecrets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Tutorial07::CreatePipeline() {
|
bool Tutorial07::CreatePipeline() {
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data07/vert.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> vertex_shader_module = CreateShaderModule( "Data/Tutorials/07/vert.spv" );
|
||||||
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data07/frag.spv" );
|
Tools::AutoDeleter<VkShaderModule, PFN_vkDestroyShaderModule> fragment_shader_module = CreateShaderModule( "Data/Tutorials/07/frag.spv" );
|
||||||
|
|
||||||
if( !vertex_shader_module || !fragment_shader_module ) {
|
if( !vertex_shader_module || !fragment_shader_module ) {
|
||||||
return false;
|
return false;
|
||||||
Reference in New Issue
Block a user