Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Commit 40f5a89

Browse files
committed
Small code refactoring.
1 parent e903d62 commit 40f5a89

File tree

11 files changed

+66
-62
lines changed

11 files changed

+66
-62
lines changed

Project/CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ if( USE_PLATFORM STREQUAL "VK_USE_PLATFORM_WIN32_KHR" )
3939
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT" )
4040
set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd" )
4141
set( PLATFORM_LIBRARY "" )
42+
add_definitions( -DNOMINMAX )
4243
elseif( USE_PLATFORM STREQUAL "VK_USE_PLATFORM_XCB_KHR" )
4344
add_definitions( -std=c++11 )
4445
set( PLATFORM_LIBRARY dl xcb )
@@ -108,11 +109,9 @@ set( PROJECT_HEADER_FILES REGULAR_EXPRESSION
108109
set( PROJECT_SOURCE_FILES REGULAR_EXPRESSION
109110
"(Tutorial|Benchmark)[0-9]+[.]cpp" )
110111

111-
source_group( "Header Files\\Common" FILES ${BASIC_SHARED_HEADER_FILES} )
112-
source_group( "Source Files\\Common" FILES ${BASIC_SHARED_SOURCE_FILES} )
112+
source_group( "Header Files\\Common" FILES ${BASIC_SHARED_HEADER_FILES} ${ADVANCED_SHARED_HEADER_FILES} )
113+
source_group( "Source Files\\Common" FILES ${BASIC_SHARED_SOURCE_FILES} ${ADVANCED_SHARED_SOURCE_FILES} )
113114
source_group( "Header Files\\External" FILES ${EXTERNAL_HEADER_FILES} )
114-
source_group( "Header Files\\Common" FILES ${ADVANCED_SHARED_HEADER_FILES} )
115-
source_group( "Source Files\\Common" FILES ${ADVANCED_SHARED_SOURCE_FILES} )
116115
source_group( "Header Files" FILES ${PROJECT_HEADER_FILES} )
117116
source_group( "Source Files" FILES ${PROJECT_SOURCE_FILES} )
118117

Project/Common/OperatingSystem.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,15 @@ namespace ApiWithoutSecrets {
120120
TranslateMessage( &message );
121121
DispatchMessage( &message );
122122
} else {
123-
// Draw
123+
// Resize
124124
if( resize ) {
125125
resize = false;
126126
if( !project.OnWindowSizeChanged() ) {
127127
result = false;
128128
break;
129129
}
130130
}
131+
// Draw
131132
if( project.ReadyToDraw() ) {
132133
if( !project.Draw() ) {
133134
result = false;

Project/Common/VulkanCommon.cpp

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ namespace ApiWithoutSecrets {
6262
}
6363

6464
bool VulkanCommon::OnWindowSizeChanged() {
65+
if( Vulkan.Device != VK_NULL_HANDLE ) {
66+
vkDeviceWaitIdle( Vulkan.Device );
67+
}
68+
6569
ChildClear();
6670

6771
if( CreateSwapChain() ) {
@@ -90,7 +94,7 @@ namespace ApiWithoutSecrets {
9094
return Vulkan.PresentQueue;
9195
}
9296

93-
const SwapChainParameters VulkanCommon::GetSwapChain() const {
97+
const SwapChainParameters& VulkanCommon::GetSwapChain() const {
9498
return Vulkan.SwapChain;
9599
}
96100

@@ -147,7 +151,7 @@ namespace ApiWithoutSecrets {
147151
}
148152

149153
std::vector<VkExtensionProperties> available_extensions( extensions_count );
150-
if( vkEnumerateInstanceExtensionProperties( nullptr, &extensions_count, &available_extensions[0] ) != VK_SUCCESS ) {
154+
if( vkEnumerateInstanceExtensionProperties( nullptr, &extensions_count, available_extensions.data() ) != VK_SUCCESS ) {
151155
std::cout << "Error occurred during instance extensions enumeration!" << std::endl;
152156
return false;
153157
}
@@ -188,7 +192,7 @@ namespace ApiWithoutSecrets {
188192
0, // uint32_t enabledLayerCount
189193
nullptr, // const char * const *ppEnabledLayerNames
190194
static_cast<uint32_t>(extensions.size()), // uint32_t enabledExtensionCount
191-
&extensions[0] // const char * const *ppEnabledExtensionNames
195+
extensions.data() // const char * const *ppEnabledExtensionNames
192196
};
193197

194198
if( vkCreateInstance( &instance_create_info, nullptr, &Vulkan.Instance ) != VK_SUCCESS ) {
@@ -264,7 +268,7 @@ namespace ApiWithoutSecrets {
264268
}
265269

266270
std::vector<VkPhysicalDevice> physical_devices( num_devices );
267-
if( vkEnumeratePhysicalDevices( Vulkan.Instance, &num_devices, &physical_devices[0] ) != VK_SUCCESS ) {
271+
if( vkEnumeratePhysicalDevices( Vulkan.Instance, &num_devices, physical_devices.data() ) != VK_SUCCESS ) {
268272
std::cout << "Error occurred during physical devices enumeration!" << std::endl;
269273
return false;
270274
}
@@ -292,7 +296,7 @@ namespace ApiWithoutSecrets {
292296
0, // VkDeviceQueueCreateFlags flags
293297
selected_graphics_queue_family_index, // uint32_t queueFamilyIndex
294298
static_cast<uint32_t>(queue_priorities.size()), // uint32_t queueCount
295-
&queue_priorities[0] // const float *pQueuePriorities
299+
queue_priorities.data() // const float *pQueuePriorities
296300
} );
297301

298302
if( selected_graphics_queue_family_index != selected_present_queue_family_index ) {
@@ -302,7 +306,7 @@ namespace ApiWithoutSecrets {
302306
0, // VkDeviceQueueCreateFlags flags
303307
selected_present_queue_family_index, // uint32_t queueFamilyIndex
304308
static_cast<uint32_t>(queue_priorities.size()), // uint32_t queueCount
305-
&queue_priorities[0] // const float *pQueuePriorities
309+
queue_priorities.data() // const float *pQueuePriorities
306310
} );
307311
}
308312

@@ -315,11 +319,11 @@ namespace ApiWithoutSecrets {
315319
nullptr, // const void *pNext
316320
0, // VkDeviceCreateFlags flags
317321
static_cast<uint32_t>(queue_create_infos.size()), // uint32_t queueCreateInfoCount
318-
&queue_create_infos[0], // const VkDeviceQueueCreateInfo *pQueueCreateInfos
322+
queue_create_infos.data(), // const VkDeviceQueueCreateInfo *pQueueCreateInfos
319323
0, // uint32_t enabledLayerCount
320324
nullptr, // const char * const *ppEnabledLayerNames
321325
static_cast<uint32_t>(extensions.size()), // uint32_t enabledExtensionCount
322-
&extensions[0], // const char * const *ppEnabledExtensionNames
326+
extensions.data(), // const char * const *ppEnabledExtensionNames
323327
nullptr // const VkPhysicalDeviceFeatures *pEnabledFeatures
324328
};
325329

@@ -342,7 +346,7 @@ namespace ApiWithoutSecrets {
342346
}
343347

344348
std::vector<VkExtensionProperties> available_extensions( extensions_count );
345-
if( vkEnumerateDeviceExtensionProperties( physical_device, nullptr, &extensions_count, &available_extensions[0] ) != VK_SUCCESS ) {
349+
if( vkEnumerateDeviceExtensionProperties( physical_device, nullptr, &extensions_count, available_extensions.data() ) != VK_SUCCESS ) {
346350
std::cout << "Error occurred during physical device " << physical_device << " extensions enumeration!" << std::endl;
347351
return false;
348352
}
@@ -382,7 +386,7 @@ namespace ApiWithoutSecrets {
382386
std::vector<VkQueueFamilyProperties> queue_family_properties( queue_families_count );
383387
std::vector<VkBool32> queue_present_support( queue_families_count );
384388

385-
vkGetPhysicalDeviceQueueFamilyProperties( physical_device, &queue_families_count, &queue_family_properties[0] );
389+
vkGetPhysicalDeviceQueueFamilyProperties( physical_device, &queue_families_count, queue_family_properties.data() );
386390

387391
uint32_t graphics_queue_family_index = UINT32_MAX;
388392
uint32_t present_queue_family_index = UINT32_MAX;
@@ -473,7 +477,7 @@ namespace ApiWithoutSecrets {
473477
}
474478

475479
std::vector<VkSurfaceFormatKHR> surface_formats( formats_count );
476-
if( vkGetPhysicalDeviceSurfaceFormatsKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &formats_count, &surface_formats[0] ) != VK_SUCCESS ) {
480+
if( vkGetPhysicalDeviceSurfaceFormatsKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &formats_count, surface_formats.data() ) != VK_SUCCESS ) {
477481
std::cout << "Error occurred during presentation surface formats enumeration!" << std::endl;
478482
return false;
479483
}
@@ -486,7 +490,7 @@ namespace ApiWithoutSecrets {
486490
}
487491

488492
std::vector<VkPresentModeKHR> present_modes( present_modes_count );
489-
if( vkGetPhysicalDeviceSurfacePresentModesKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &present_modes_count, &present_modes[0] ) != VK_SUCCESS ) {
493+
if( vkGetPhysicalDeviceSurfacePresentModesKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &present_modes_count, present_modes.data() ) != VK_SUCCESS ) {
490494
std::cout << "Error occurred during presentation surface present modes enumeration!" << std::endl;
491495
return false;
492496
}
@@ -551,7 +555,7 @@ namespace ApiWithoutSecrets {
551555
Vulkan.SwapChain.Images.resize( image_count );
552556

553557
std::vector<VkImage> images( image_count );
554-
if( vkGetSwapchainImagesKHR( Vulkan.Device, Vulkan.SwapChain.Handle, &image_count, &images[0] ) != VK_SUCCESS ) {
558+
if( vkGetSwapchainImagesKHR( Vulkan.Device, Vulkan.SwapChain.Handle, &image_count, images.data() ) != VK_SUCCESS ) {
555559
std::cout << "Could not get swap chain images!" << std::endl;
556560
return false;
557561
}

Project/Common/VulkanCommon.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ namespace ApiWithoutSecrets {
154154
const QueueParameters GetGraphicsQueue() const;
155155
const QueueParameters GetPresentQueue() const;
156156

157-
const SwapChainParameters GetSwapChain() const;
157+
const SwapChainParameters& GetSwapChain() const;
158158

159159
private:
160160
OS::LibraryHandle VulkanLibrary;

Project/Tutorials/01/Tutorial01.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ namespace ApiWithoutSecrets {
155155
}
156156

157157
std::vector<VkPhysicalDevice> physical_devices( num_devices );
158-
if( vkEnumeratePhysicalDevices( Vulkan.Instance, &num_devices, &physical_devices[0] ) != VK_SUCCESS ) {
158+
if( vkEnumeratePhysicalDevices( Vulkan.Instance, &num_devices, physical_devices.data() ) != VK_SUCCESS ) {
159159
std::cout << "Error occurred during physical devices enumeration!" << std::endl;
160160
return false;
161161
}
@@ -181,7 +181,7 @@ namespace ApiWithoutSecrets {
181181
0, // VkDeviceQueueCreateFlags flags
182182
selected_queue_family_index, // uint32_t queueFamilyIndex
183183
static_cast<uint32_t>(queue_priorities.size()), // uint32_t queueCount
184-
&queue_priorities[0] // const float *pQueuePriorities
184+
queue_priorities.data() // const float *pQueuePriorities
185185
};
186186

187187
VkDeviceCreateInfo device_create_info = {
@@ -231,7 +231,7 @@ namespace ApiWithoutSecrets {
231231
}
232232

233233
std::vector<VkQueueFamilyProperties> queue_family_properties( queue_families_count );
234-
vkGetPhysicalDeviceQueueFamilyProperties( physical_device, &queue_families_count, &queue_family_properties[0] );
234+
vkGetPhysicalDeviceQueueFamilyProperties( physical_device, &queue_families_count, queue_family_properties.data() );
235235
for( uint32_t i = 0; i < queue_families_count; ++i ) {
236236
if( (queue_family_properties[i].queueCount > 0) &&
237237
(queue_family_properties[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) ) {

Project/Tutorials/02/Tutorial02.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ namespace ApiWithoutSecrets {
114114
}
115115

116116
std::vector<VkExtensionProperties> available_extensions( extensions_count );
117-
if( vkEnumerateInstanceExtensionProperties( nullptr, &extensions_count, &available_extensions[0] ) != VK_SUCCESS ) {
117+
if( vkEnumerateInstanceExtensionProperties( nullptr, &extensions_count, available_extensions.data() ) != VK_SUCCESS ) {
118118
std::cout << "Error occurred during instance extensions enumeration!" << std::endl;
119119
return false;
120120
}
@@ -155,7 +155,7 @@ namespace ApiWithoutSecrets {
155155
0, // uint32_t enabledLayerCount
156156
nullptr, // const char * const *ppEnabledLayerNames
157157
static_cast<uint32_t>(extensions.size()), // uint32_t enabledExtensionCount
158-
&extensions[0] // const char * const *ppEnabledExtensionNames
158+
extensions.data() // const char * const *ppEnabledExtensionNames
159159
};
160160

161161
if( vkCreateInstance( &instance_create_info, nullptr, &Vulkan.Instance ) != VK_SUCCESS ) {
@@ -240,7 +240,7 @@ namespace ApiWithoutSecrets {
240240
}
241241

242242
std::vector<VkPhysicalDevice> physical_devices( num_devices );
243-
if( vkEnumeratePhysicalDevices( Vulkan.Instance, &num_devices, &physical_devices[0] ) != VK_SUCCESS ) {
243+
if( vkEnumeratePhysicalDevices( Vulkan.Instance, &num_devices, physical_devices.data() ) != VK_SUCCESS ) {
244244
std::cout << "Error occurred during physical devices enumeration!" << std::endl;
245245
return false;
246246
}
@@ -268,7 +268,7 @@ namespace ApiWithoutSecrets {
268268
0, // VkDeviceQueueCreateFlags flags
269269
selected_graphics_queue_family_index, // uint32_t queueFamilyIndex
270270
static_cast<uint32_t>(queue_priorities.size()), // uint32_t queueCount
271-
&queue_priorities[0] // const float *pQueuePriorities
271+
queue_priorities.data() // const float *pQueuePriorities
272272
} );
273273

274274
if( selected_graphics_queue_family_index != selected_present_queue_family_index ) {
@@ -278,7 +278,7 @@ namespace ApiWithoutSecrets {
278278
0, // VkDeviceQueueCreateFlags flags
279279
selected_present_queue_family_index, // uint32_t queueFamilyIndex
280280
static_cast<uint32_t>(queue_priorities.size()), // uint32_t queueCount
281-
&queue_priorities[0] // const float *pQueuePriorities
281+
queue_priorities.data() // const float *pQueuePriorities
282282
} );
283283
}
284284

@@ -291,11 +291,11 @@ namespace ApiWithoutSecrets {
291291
nullptr, // const void *pNext
292292
0, // VkDeviceCreateFlags flags
293293
static_cast<uint32_t>(queue_create_infos.size()), // uint32_t queueCreateInfoCount
294-
&queue_create_infos[0], // const VkDeviceQueueCreateInfo *pQueueCreateInfos
294+
queue_create_infos.data(), // const VkDeviceQueueCreateInfo *pQueueCreateInfos
295295
0, // uint32_t enabledLayerCount
296296
nullptr, // const char * const *ppEnabledLayerNames
297297
static_cast<uint32_t>(extensions.size()), // uint32_t enabledExtensionCount
298-
&extensions[0], // const char * const *ppEnabledExtensionNames
298+
extensions.data(), // const char * const *ppEnabledExtensionNames
299299
nullptr // const VkPhysicalDeviceFeatures *pEnabledFeatures
300300
};
301301

@@ -318,7 +318,7 @@ namespace ApiWithoutSecrets {
318318
}
319319

320320
std::vector<VkExtensionProperties> available_extensions( extensions_count );
321-
if( vkEnumerateDeviceExtensionProperties( physical_device, nullptr, &extensions_count, &available_extensions[0] ) != VK_SUCCESS ) {
321+
if( vkEnumerateDeviceExtensionProperties( physical_device, nullptr, &extensions_count, available_extensions.data() ) != VK_SUCCESS ) {
322322
std::cout << "Error occurred during physical device " << physical_device << " extensions enumeration!" << std::endl;
323323
return false;
324324
}
@@ -358,7 +358,7 @@ namespace ApiWithoutSecrets {
358358
std::vector<VkQueueFamilyProperties> queue_family_properties( queue_families_count );
359359
std::vector<VkBool32> queue_present_support( queue_families_count );
360360

361-
vkGetPhysicalDeviceQueueFamilyProperties( physical_device, &queue_families_count, &queue_family_properties[0] );
361+
vkGetPhysicalDeviceQueueFamilyProperties( physical_device, &queue_families_count, queue_family_properties.data() );
362362

363363
uint32_t graphics_queue_family_index = UINT32_MAX;
364364
uint32_t present_queue_family_index = UINT32_MAX;
@@ -457,7 +457,7 @@ namespace ApiWithoutSecrets {
457457
}
458458

459459
std::vector<VkSurfaceFormatKHR> surface_formats( formats_count );
460-
if( vkGetPhysicalDeviceSurfaceFormatsKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &formats_count, &surface_formats[0] ) != VK_SUCCESS ) {
460+
if( vkGetPhysicalDeviceSurfaceFormatsKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &formats_count, surface_formats.data() ) != VK_SUCCESS ) {
461461
std::cout << "Error occurred during presentation surface formats enumeration!" << std::endl;
462462
return false;
463463
}
@@ -470,7 +470,7 @@ namespace ApiWithoutSecrets {
470470
}
471471

472472
std::vector<VkPresentModeKHR> present_modes( present_modes_count );
473-
if( vkGetPhysicalDeviceSurfacePresentModesKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &present_modes_count, &present_modes[0] ) != VK_SUCCESS ) {
473+
if( vkGetPhysicalDeviceSurfacePresentModesKHR( Vulkan.PhysicalDevice, Vulkan.PresentationSurface, &present_modes_count, present_modes.data() ) != VK_SUCCESS ) {
474474
std::cout << "Error occurred during presentation surface present modes enumeration!" << std::endl;
475475
return false;
476476
}
@@ -677,7 +677,7 @@ namespace ApiWithoutSecrets {
677677
VK_COMMAND_BUFFER_LEVEL_PRIMARY, // VkCommandBufferLevel level
678678
image_count // uint32_t bufferCount
679679
};
680-
if( vkAllocateCommandBuffers( Vulkan.Device, &cmd_buffer_allocate_info, &Vulkan.PresentQueueCmdBuffers[0] ) != VK_SUCCESS ) {
680+
if( vkAllocateCommandBuffers( Vulkan.Device, &cmd_buffer_allocate_info, Vulkan.PresentQueueCmdBuffers.data() ) != VK_SUCCESS ) {
681681
std::cout << "Could not allocate command buffers!" << std::endl;
682682
return false;
683683
}
@@ -693,7 +693,7 @@ namespace ApiWithoutSecrets {
693693
uint32_t image_count = static_cast<uint32_t>(Vulkan.PresentQueueCmdBuffers.size());
694694

695695
std::vector<VkImage> swap_chain_images( image_count );
696-
if( vkGetSwapchainImagesKHR( Vulkan.Device, Vulkan.SwapChain, &image_count, &swap_chain_images[0] ) != VK_SUCCESS ) {
696+
if( vkGetSwapchainImagesKHR( Vulkan.Device, Vulkan.SwapChain, &image_count, swap_chain_images.data() ) != VK_SUCCESS ) {
697697
std::cout << "Could not get swap chain images!" << std::endl;
698698
return false;
699699
}
@@ -764,7 +764,7 @@ namespace ApiWithoutSecrets {
764764
vkDeviceWaitIdle( Vulkan.Device );
765765

766766
if( (Vulkan.PresentQueueCmdBuffers.size() > 0) && (Vulkan.PresentQueueCmdBuffers[0] != VK_NULL_HANDLE) ) {
767-
vkFreeCommandBuffers( Vulkan.Device, Vulkan.PresentQueueCmdPool, static_cast<uint32_t>(Vulkan.PresentQueueCmdBuffers.size()), &Vulkan.PresentQueueCmdBuffers[0] );
767+
vkFreeCommandBuffers( Vulkan.Device, Vulkan.PresentQueueCmdPool, static_cast<uint32_t>(Vulkan.PresentQueueCmdBuffers.size()), Vulkan.PresentQueueCmdBuffers.data() );
768768
Vulkan.PresentQueueCmdBuffers.clear();
769769
}
770770

0 commit comments

Comments
 (0)