草庐IT

Vulkan-hpp

全部标签

c++ - Bazel 和自动生成的 cpp/hpp 文件

我开始使用Bazel作为我的C++项目构建系统。但是我遇到了以下问题:我在一个自动生成file.hppfile.cpp(文学编程)的场景中。要重现我的问题,可以简单地使用这个最小的生成器:--file.sh--#!/bin/shecho"intfoo();">>file.hppecho"#include\"myLib/file.hpp\"\n\nintfoo(){return2017;}">>file.cpp我的项目仓库是:(WORKSPACE是一个空文件)├──myLib│  ├──BUILD│  └──file.sh└──WORKSPACE构建文件是genrule(name="ta

c++ - 如何从实现(.cpp 文件)中提取声明(.hpp 文件)?

我想知道是否有一个工具(也许是GNUC++编译器)可以从.cpp文件中获取包含函数声明的.hpp文件。示例:我有:魔法.cppintfoo(){return42;}charbar(){return'z';}我想在应用这个奇妙的工具后得到这个:魔法.hppintfoo();charbar(); 最佳答案 在基于Debian的发行版上:apt-getinstallcproto然后cprotomagic.cpp给出以下输出:/*magic.cpp*/intfoo(void);charbar(void);

c++ - 如何在 C++ 中使用 Boost::regex.hpp 库?

我尝试使用Boost库但失败了,请查看我的代码:#include"listy.h"#includeusingnamespaceboost;ListyCheck::ListyCheck(){}ListyCheck::~ListyCheck(){}boolListyCheck::isValidItem(std::string&__item){regexe("(\\d{4}[-]){3}\\d{4}");returnregex_match(__item,e);}当我尝试编译它时,我得到了这些消息:/usr/include/boost/regex/v4/regex_match.hpp:50:u

c++ - Vulkan 中的 Queue 族实际上是什么?

我目前正在学习vulkan,现在我只是拆开每个命令并检查结构以尝试理解它们的含义。现在我正在分析QueueFamilies,为此我有以下代码:vectorqueue_families=device.getQueueFamilyProperties();for(auto&q_family:queue_families){cout这会产生这个输出:Queuenumber:16Queueflags:{Graphics|Compute|Transfer|SparseBinding}Queuenumber:1Queueflags:{Transfer}Queuenumber:8Queueflags

c++ - 为什么 vulkan 在集成显卡和 GPU 的系统中报告单个设备?

在C++中,我正在检查可用设备的数量,如下所示:uint32_tdeviceCount=0;vkEnumeratePhysicalDevices(instance,&deviceCount,nullptr);cout这是打印出1GeforceGTX1070。我的系统配备GTX1070和带集成显卡的第4代英特尔5处理器。据我所知,这对于Vulkan来说应该足够好了。那么为什么我的程序只接收GTX1070?不应该也能找到集成显卡吗?编辑:根据cpuinfo的确切型号是:Intel(R)Core(TM)i5-4460CPU@3.20GHz编辑2:我的操作系统是Archlinux

c++ - Vulkan-hpp 正在将非标准布局类重新解释为另一个类。这是合法的吗?

最近我一直在使用Vulkan-Hpp(VulkanApi的官方c++绑定(bind),GithubLink)。查看源代码,我发现他们围绕原生Vulkan结构创建了包装器类(例如vk::InstanceCreateInfo围绕着VkInstanceCreateInfo)。(注意:环绕,而不是派生自)调用nativeVulkanAPI时,指向包装器类的指针被reinterpret_cast编辑到nativeVulkan结构中。使用vk::InstanceCreateInfo的示例://definitionofvk::InstanceCreateInfostructInstanceCreat

c++ - 如何将 Vulkan 与 MinGW 一起使用? (R_X86_64_32 错误)

我正在尝试设置一个基本程序来使用Vulkan。我安装了LunarGSDK。我有一个基本上只调用vkCreateInstance的小程序。我用这一行编译:g++-std=c++11-I/c/VulkanSDK/1.0.3.1/Include-L/c/VulkanSDK/1.0.3.1/Binmain.cpp-lvulkan-1我在使用64位mingw(MSYS2)时遇到此编译器错误:relocationtruncatedtofit||R_X86_64_32againstsymbol`__imp_vkCreateInstance'definedin.idata$5sectioninC:\V

c++ - Vulkan 中的描述符集计数歧义

我想在vulkan中绘制两个对象。为实现这一点,我遵循为每个模型创建两个不同描述符集的过程。但是,我对指定所需描述符集计数的结构感到困惑。令我困惑的点如下:在VkDescriptorSetLayoutBinding指定描述符计数VkDescriptorSetLayoutBindingstagingLayoutBinding={};...stagingLayoutBinding.descriptorCount=1;在VkDescriptorPoolSize指定描述符计数VkDescriptorPoolSizestagingPoolSize={};...stagingPoolSize.de

c++ - 添加 #include <boost/thread/mutex.hpp> 会破坏我的 ActiveX 控件吗?

在ActiveX控件中使用boost::mutexheader是否存在已知问题?(boost版v1.39)如果我在VisualStudio2008中创建一个名为“DefaultOCXControl”的MFCActiveX控件项目,那么我可以构建它,该控件将自身注册为构建的一部分,并且可以像您期望的那样插入到ActiveX测试容器中。一切顺利。如果我再添加这一行:#include在我的DefaultOCXControlCtrl.h文件顶部并重建:构建结束时的注册步骤失败并显示:DebugAssertionFailed!Program:C:\Windows\system32\regsvr3

c++ - Vulkan:如何在单独的线程中记录命令缓冲区?

我不太了解如何在Vulkan中并行处理不同线程上的工作。为了开始发出vkCmd*s,您需要开始渲染过程。调用beginrenderpass需要引用帧缓冲区。但是,不保证vkAcquireNextImageKHR()以循环方式返回图像索引。因此,在三缓冲设置中,如果当前图像索引为0,我不能只绑定(bind)帧缓冲区1并开始为下一帧发出绘制调用,因为下一次调用vkAcquireNextImageKHR()可能会返回图像索引2。无需提前指定要使用的帧缓冲区即可记录命令的正确方法是什么? 最佳答案 您有一个或多个要在每一帧执行的渲染过程。每