小编Hen*_*ise的帖子

为什么在多个.cpp文件中定义的同一类不会导致链接器多个定义错误?

我遇到一种我不理解的奇怪行为。因此,我在两个不同的cpp文件中定义了两个具有相同名称的不同类。我知道这不会在翻译单元的编译过程中引起任何错误,因为他们彼此之间并不了解。但是,链接器将这些文件链接在一起时,是否不应该抛出一些错误?

c++ one-definition-rule

9
推荐指数
1
解决办法
101
查看次数

使用 VkSubpassDependency 还是信号量?

我正在关注这个 vulkan 教程:https ://vulkan-tutorial.com/Drawing_a_triangle/Drawing/Rendering_and_presentation 我目前在 subpass 依赖小节。作者在其中说,因为图像布局转换可能在我们从交换链获取图像之前发生,所以我们需要使用 VkSubpassDependency 如下,以便渲染通道将在片段着色器输出阶段等待。

VkSubpassDependency dependency = {};
dependency.srcSubpass = VK_SUBPASS_EXTERNAL;
dependency.dstSubpass = 0;
dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
dependency.srcAccessMask = 0;
dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
Run Code Online (Sandbox Code Playgroud)

不过作者之前也有这个代码

vkAcquireNextImageKHR(device, swapChain, UINT64_MAX, imageAvailableSemaphore, VK_NULL_HANDLE, &imageIndex);
VkSubmitInfo submitInfo = {};
submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
VkSemaphore waitSemaphores[] = { imageAvailableSemaphore };
VkPipelineStageFlags waitStages[] = { VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT };
submitInfo.waitSemaphoreCount = 1;
submitInfo.pWaitSemaphores = waitSemaphores;
submitInfo.pWaitDstStageMask = waitStages;
submitInfo.commandBufferCount = 1;
submitInfo.pCommandBuffers = &commandBuffers[imageIndex];
VkSemaphore signalSemaphores[] = { renderFinishedSemaphore …
Run Code Online (Sandbox Code Playgroud)

vulkan

2
推荐指数
1
解决办法
456
查看次数

标签 统计

c++ ×1

one-definition-rule ×1

vulkan ×1