-
Notifications
You must be signed in to change notification settings - Fork 51
Open
Description
Looking and some of the code files, I noticed that they're sometimes very hard to read as they lack consistent identation and line break styles.
E.g. in the compute shader chapter we have stuff like this:
vk::ImageMemoryBarrier2 barrier = {
.srcStageMask = src_stage_mask,
.srcAccessMask = src_access_mask,
.dstStageMask = dst_stage_mask,
.dstAccessMask = dst_access_mask,
.oldLayout = old_layout,
.newLayout = new_layout,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.image = swapChainImages[imageIndex],
.subresourceRange = {
.aspectMask = vk::ImageAspectFlagBits::eColor,
.baseMipLevel = 0,
.levelCount = 1,
.baseArrayLayer = 0,
.layerCount = 1
}
};Properly aligned in indented. Easy on the eyes.
But just a few lines later we have this:
const vk::SubmitInfo submitInfo{ .waitSemaphoreCount = 1, .pWaitSemaphores = &*presentCompleteSemaphore[semaphoreIndex],
.pWaitDstStageMask = &waitDestinationStageMask, .commandBufferCount = 1, .pCommandBuffers = &*commandBuffers[currentFrame],
.signalSemaphoreCount = 1, .pSignalSemaphores = &*renderFinishedSemaphore[imageIndex] };Odd identation, no line breaks, almost unreadable.
And a few lines down:
vk::raii::ShaderModule shaderModule{ device, createInfo };
No line breaks, no designated initializers.
Another example:
GLFWwindow * window = nullptr;
vk::raii::Context context;
vk::raii::Instance instance = nullptr;
vk::raii::DebugUtilsMessengerEXT debugMessenger = nullptr;
vk::raii::SurfaceKHR surface = nullptr;
vk::raii::PhysicalDevice physicalDevice = nullptr;
vk::raii::Device device = nullptr;
uint32_t queueIndex = ~0;
vk::raii::Queue queue = nullptr;
vk::raii::SwapchainKHR swapChain = nullptr;
std::vector<vk::Image> swapChainImages;
vk::SurfaceFormatKHR swapChainImageFormat;
vk::Extent2D swapChainExtent;
std::vector<vk::raii::ImageView> swapChainImageViews;This mixes two very different styles, which makes readability suffer.
Same for line breaks and curly braces. Sometimes they're on the same line, sometimes not:
if (enableValidationLayers) {
requiredLayers.assign(validationLayers.begin(), validationLayers.end());
}
// Check if the required layers are supported by the Vulkan implementation.
auto layerProperties = context.enumerateInstanceLayerProperties();
for (auto const& requiredLayer : requiredLayers)
{
if (std::ranges::none_of(layerProperties,
[requiredLayer](auto const& layerProperty)
{ return strcmp(layerProperty.layerName, requiredLayer) == 0; }))
{
throw std::runtime_error("Required layer not supported: " + std::string(requiredLayer));
}
}In general, some of the code files are very hard to read due to a lack of consistent code style.
Metadata
Metadata
Assignees
Labels
No labels