Skip to content

Commit 5a7e535

Browse files
committed
Add Comments System
1 parent cf625d3 commit 5a7e535

File tree

175 files changed

+4825
-1905
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

175 files changed

+4825
-1905
lines changed

CMakeLists.txt

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
cmake_minimum_required(VERSION 3.30)
1+
cmake_minimum_required(VERSION 4.0.0)
22

33
#################################################################################
4-
#### Set up the vcpkg toolchain, which must be done before the project() function.
4+
#### Set up the vcpkg toolchain, which must be done before the project() function.
55
# You can also set it up by default through the CMakePresets.json file
66
# requires the VCPKG_ROOT environment variable
77
# The TO_CMAKE_PATH here is used to convert back slashes to forward slashes
@@ -12,29 +12,30 @@ set(CMAKE_TOOLCHAIN_FILE "${VCPKG_CMAKE_PATH}/scripts/buildsystems/vcpkg.cmake")
1212
project(HelloVulkan LANGUAGES CXX)
1313

1414
set(CMAKE_CXX_STANDARD 20)
15+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1516

16-
#################################################################################
17-
#### Search for Vulkan package.
18-
# CMake provides FindVulkan support, but requires the VULKAN_SDK environment variable
19-
# Setting by default during Vulkan SDK installation, such as E: \ Vulkan \ 1.4.309.0
20-
find_package(Vulkan REQUIRED)
21-
#################################################################################
2217

23-
#################################################################################
24-
#### add_executable
25-
# Import third-party libraries through vcpkg
18+
include(cmake/VulkanHppModule.cmake)
19+
2620
find_package(glfw3 CONFIG REQUIRED)
2721
find_package(glm CONFIG REQUIRED)
22+
find_package(Stb REQUIRED)
23+
find_package(tinyobjloader CONFIG REQUIRED)
2824

29-
# Add executable program targets
30-
add_executable(${PROJECT_NAME} src/main.cpp)
25+
file(GLOB_RECURSE MODULE_SOURCES src/*.cppm)
3126

32-
target_link_libraries(${PROJECT_NAME} PRIVATE Vulkan::Vulkan )
33-
target_link_libraries(${PROJECT_NAME} PRIVATE glm::glm )
34-
target_link_libraries(${PROJECT_NAME} PRIVATE glfw )
35-
#################################################################################
27+
# Add executable program targets
28+
add_executable( main src/main.cpp )
29+
target_sources( main PRIVATE
30+
FILE_SET CXX_MODULES
31+
FILES ${MODULE_SOURCES}
32+
)
33+
34+
target_link_libraries(main PRIVATE VulkanHppModule )
35+
target_link_libraries(main PRIVATE glm::glm)
36+
target_link_libraries(main PRIVATE glfw )
37+
target_include_directories(main PRIVATE ${Stb_INCLUDE_DIR})
38+
target_link_libraries(main PRIVATE tinyobjloader::tinyobjloader)
3639

37-
#################################################################################
38-
#### shaders
3940
add_subdirectory(shaders)
40-
#################################################################################
41+

CMakePresets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": 6,
2+
"version": 10,
33
"configurePresets": [
44
{
55
"name": "ninja-base",

cmake/VulkanHppModule.cmake

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# VulkanHppModule.cmake
2+
if(NOT TARGET VulkanHppModule)
3+
4+
find_package(Vulkan REQUIRED)
5+
message("Vulkan SDK version : ${Vulkan_VERSION}")
6+
if(${Vulkan_VERSION} VERSION_LESS "1.4.0")
7+
message(FATAL_ERROR "Vulkan SDK too old (required ≥ 1.4.0)")
8+
endif()
9+
10+
add_library( VulkanHppModule )
11+
12+
target_sources(VulkanHppModule PUBLIC
13+
FILE_SET CXX_MODULES
14+
BASE_DIRS ${Vulkan_INCLUDE_DIR}
15+
FILES ${Vulkan_INCLUDE_DIR}/vulkan/vulkan.cppm
16+
)
17+
target_link_libraries( VulkanHppModule PRIVATE Vulkan::Vulkan )
18+
target_link_libraries( VulkanHppModule PUBLIC Vulkan::Headers )
19+
20+
target_compile_definitions(VulkanHppModule PUBLIC
21+
VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1
22+
)
23+
endif()

docs/codes/00/01_env/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.30)
1+
cmake_minimum_required(VERSION 4.0.0)
22

33
#################################################################################
44
#### Set up the vcpkg toolchain, which must be done before the project() function.

docs/codes/00/01_env/CMakePresets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": 6,
2+
"version": 10,
33
"configurePresets": [
44
{
55
"name": "ninja-base",

docs/codes/01/00_base/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.30)
1+
cmake_minimum_required(VERSION 4.0.0)
22

33
#################################################################################
44
#### Set up the vcpkg toolchain, which must be done before the project() function.

docs/codes/01/01_instance/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class HelloTriangleApplication {
6565
1, // applicationVersion
6666
"No Engine", // pEngineName
6767
1, // engineVersion
68-
VK_API_VERSION_1_4 // apiVersion
68+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
6969
);
7070

7171
vk::InstanceCreateInfo createInfo(
@@ -78,7 +78,7 @@ class HelloTriangleApplication {
7878
glfwExtensions = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);
7979
std::vector<const char*> requiredExtensions( glfwExtensions, glfwExtensions + glfwExtensionCount );
8080

81-
requiredExtensions.emplace_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
81+
requiredExtensions.emplace_back(vk::KHRPortabilityEnumerationExtensionName);
8282

8383
createInfo.setPEnabledExtensionNames( requiredExtensions );
8484
createInfo.flags |= vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR;

docs/codes/01/01_instance/main.diff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ index 28b69ae..334c6ed 100644
3838
+ 1, // applicationVersion
3939
+ "No Engine", // pEngineName
4040
+ 1, // engineVersion
41-
+ VK_API_VERSION_1_4 // apiVersion
41+
+ vk::makeApiVersion(0, 1, 4, 0) // apiVersion
4242
+ );
4343
+
4444
+ vk::InstanceCreateInfo createInfo(
@@ -51,7 +51,7 @@ index 28b69ae..334c6ed 100644
5151
+ glfwExtensions = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);
5252
+ std::vector<const char*> requiredExtensions( glfwExtensions, glfwExtensions + glfwExtensionCount );
5353
+
54-
+ requiredExtensions.emplace_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
54+
+ requiredExtensions.emplace_back(vk::KHRPortabilityEnumerationExtensionName);
5555

5656
-
5757
+ createInfo.setPEnabledExtensionNames( requiredExtensions );

docs/codes/01/02_validation/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ class HelloTriangleApplication {
8181
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
8282

8383
if (enableValidationLayers) {
84-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
84+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
8585
}
86-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
86+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
8787

8888
return extensions;
8989
}
@@ -97,7 +97,7 @@ class HelloTriangleApplication {
9797
1, // applicationVersion
9898
"No Engine", // pEngineName
9999
1, // engineVersion
100-
VK_API_VERSION_1_4 // apiVersion
100+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
101101
);
102102

103103
vk::InstanceCreateInfo createInfo(

docs/codes/01/02_validation/main.diff

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ index 334c6ed..a61fb67 100644
5858
+ std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
5959
+
6060
+ if (enableValidationLayers) {
61-
+ extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
61+
+ extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
6262
+ }
63-
+ extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
63+
+ extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
6464
+
6565
+ return extensions;
6666
+ }
@@ -81,7 +81,7 @@ index 334c6ed..a61fb67 100644
8181
- glfwExtensions = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);
8282
- std::vector<const char*> requiredExtensions( glfwExtensions, glfwExtensions + glfwExtensionCount );
8383
-
84-
- requiredExtensions.emplace_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
84+
- requiredExtensions.emplace_back(vk::KHRPortabilityEnumerationExtensionName);
8585
-
8686
+ std::vector<const char*> requiredExtensions = getRequiredExtensions();
8787
+ // special setter

docs/codes/01/03_physicaldevice/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ class HelloTriangleApplication {
8484
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
8585

8686
if (enableValidationLayers) {
87-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
87+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
8888
}
89-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
89+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
9090

9191
return extensions;
9292
}
@@ -100,7 +100,7 @@ class HelloTriangleApplication {
100100
1, // applicationVersion
101101
"No Engine", // pEngineName
102102
1, // engineVersion
103-
VK_API_VERSION_1_4 // apiVersion
103+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
104104
);
105105

106106
vk::InstanceCreateInfo createInfo(

docs/codes/01/04_device/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ class HelloTriangleApplication {
8787
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
8888

8989
if (enableValidationLayers) {
90-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
90+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
9191
}
92-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
92+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
9393

9494
return extensions;
9595
}
@@ -103,7 +103,7 @@ class HelloTriangleApplication {
103103
1, // applicationVersion
104104
"No Engine", // pEngineName
105105
1, // engineVersion
106-
VK_API_VERSION_1_4 // apiVersion
106+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
107107
);
108108

109109
vk::InstanceCreateInfo createInfo(

docs/codes/01/10_surface/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ class HelloTriangleApplication {
9090
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
9191

9292
if (enableValidationLayers) {
93-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
93+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
9494
}
95-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
95+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
9696

9797
return extensions;
9898
}
@@ -106,7 +106,7 @@ class HelloTriangleApplication {
106106
1, // applicationVersion
107107
"No Engine", // pEngineName
108108
1, // engineVersion
109-
VK_API_VERSION_1_4 // apiVersion
109+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
110110
);
111111

112112
vk::InstanceCreateInfo createInfo(

docs/codes/01/11_swapchain/main.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class HelloTriangleApplication {
3131
"VK_LAYER_KHRONOS_validation"
3232
};
3333
inline static const std::vector<const char*> deviceExtensions {
34-
VK_KHR_SWAPCHAIN_EXTENSION_NAME
34+
vk::KHRSwapchainExtensionName
3535
};
3636

3737
#ifdef NDEBUG
@@ -100,9 +100,9 @@ class HelloTriangleApplication {
100100
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
101101

102102
if (enableValidationLayers) {
103-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
103+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
104104
}
105-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
105+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
106106

107107
return extensions;
108108
}
@@ -116,7 +116,7 @@ class HelloTriangleApplication {
116116
1, // applicationVersion
117117
"No Engine", // pEngineName
118118
1, // engineVersion
119-
VK_API_VERSION_1_4 // apiVersion
119+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
120120
);
121121

122122
vk::InstanceCreateInfo createInfo(

docs/codes/01/11_swapchain/main.diff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ index e592d98..88b5efb 100644
1616
"VK_LAYER_KHRONOS_validation"
1717
};
1818
+ inline static const std::vector<const char*> deviceExtensions {
19-
+ VK_KHR_SWAPCHAIN_EXTENSION_NAME
19+
+ vk::KHRSwapchainExtensionName
2020
+ };
2121

2222
#ifdef NDEBUG

docs/codes/01/12_imageview/main.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class HelloTriangleApplication {
3131
"VK_LAYER_KHRONOS_validation"
3232
};
3333
inline static const std::vector<const char*> deviceExtensions {
34-
VK_KHR_SWAPCHAIN_EXTENSION_NAME
34+
vk::KHRSwapchainExtensionName
3535
};
3636

3737
#ifdef NDEBUG
@@ -102,9 +102,9 @@ class HelloTriangleApplication {
102102
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
103103

104104
if (enableValidationLayers) {
105-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
105+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
106106
}
107-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
107+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
108108

109109
return extensions;
110110
}
@@ -118,7 +118,7 @@ class HelloTriangleApplication {
118118
1, // applicationVersion
119119
"No Engine", // pEngineName
120120
1, // engineVersion
121-
VK_API_VERSION_1_4 // apiVersion
121+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
122122
);
123123

124124
vk::InstanceCreateInfo createInfo(

docs/codes/01/20_pipeline/main.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class HelloTriangleApplication {
3131
"VK_LAYER_KHRONOS_validation"
3232
};
3333
inline static const std::vector<const char*> deviceExtensions {
34-
VK_KHR_SWAPCHAIN_EXTENSION_NAME
34+
vk::KHRSwapchainExtensionName
3535
};
3636

3737
#ifdef NDEBUG
@@ -103,9 +103,9 @@ class HelloTriangleApplication {
103103
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
104104

105105
if (enableValidationLayers) {
106-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
106+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
107107
}
108-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
108+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
109109

110110
return extensions;
111111
}
@@ -119,7 +119,7 @@ class HelloTriangleApplication {
119119
1, // applicationVersion
120120
"No Engine", // pEngineName
121121
1, // engineVersion
122-
VK_API_VERSION_1_4 // apiVersion
122+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
123123
);
124124

125125
vk::InstanceCreateInfo createInfo(

docs/codes/01/21_shader/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.30)
1+
cmake_minimum_required(VERSION 4.0.0)
22

33
#################################################################################
44
#### Set up the vcpkg toolchain, which must be done before the project() function.

docs/codes/01/21_shader/main.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class HelloTriangleApplication {
3232
"VK_LAYER_KHRONOS_validation"
3333
};
3434
inline static const std::vector<const char*> deviceExtensions {
35-
VK_KHR_SWAPCHAIN_EXTENSION_NAME
35+
vk::KHRSwapchainExtensionName
3636
};
3737

3838
#ifdef NDEBUG
@@ -104,9 +104,9 @@ class HelloTriangleApplication {
104104
std::vector<const char*> extensions(glfwExtensions, glfwExtensions + glfwExtensionCount);
105105

106106
if (enableValidationLayers) {
107-
extensions.emplace_back( VK_EXT_DEBUG_UTILS_EXTENSION_NAME );
107+
extensions.emplace_back( vk::EXTDebugUtilsExtensionName );
108108
}
109-
extensions.emplace_back( VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME );
109+
extensions.emplace_back( vk::KHRPortabilityEnumerationExtensionName );
110110

111111
return extensions;
112112
}
@@ -120,7 +120,7 @@ class HelloTriangleApplication {
120120
1, // applicationVersion
121121
"No Engine", // pEngineName
122122
1, // engineVersion
123-
VK_API_VERSION_1_4 // apiVersion
123+
vk::makeApiVersion(0, 1, 4, 0) // apiVersion
124124
);
125125

126126
vk::InstanceCreateInfo createInfo(

docs/codes/01/21_shader/shaders/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.30)
1+
cmake_minimum_required(VERSION 4.0.0)
22

33
find_package(Vulkan REQUIRED)
44

0 commit comments

Comments
 (0)