当前位置: 首页 > news >正文

物流商 网站建设方案品牌营销策划与管理

物流商 网站建设方案,品牌营销策划与管理,外贸业务员,中国做网站目录 先叨叨git信息关键代码VulkanEnv::CreateDevice() 编译并运行程序题外话 先叨叨 在上篇已经选择了一个合适的PhysicalDevice。 本篇要为这个PhysicalDevice创将一个Device。Device可以理解为APP与PhysicalDevice之间的代理。 所有APP与PhysicalDevice之间交互的资源都通过…

目录

  • 先叨叨
  • git信息
  • 关键代码
    • VulkanEnv::CreateDevice()
  • 编译并运行程序
  • 题外话

先叨叨

在上篇已经选择了一个合适的PhysicalDevice。
本篇要为这个PhysicalDevice创将一个Device。Device可以理解为APP与PhysicalDevice之间的代理。
所有APP与PhysicalDevice之间交互的资源都通过Device进行管理。当然APP与PhysicalDevice通信用的Queue也是挂在Device进行管理的。Vulkan的接口设计,也暗含了在创建Device时同时创建Device下的Queue.

git信息

  • repository: https://gitee.com/J8_series/easy-car-ui
  • branch: master
  • tag: 03-CreateDevice
  • url: https://gitee.com/J8_series/easy-car-ui/tree/03-CreateDevice

关键代码

VulkanEnv::CreateDevice()

  1. 本方法的作用是为选中的PhysicalDeivce创建的Device对象。
  2. 由VkDeviceCreateInfo可知,创建Device时需要同时提供创建Queue的信息,因此需要填充VkDeviceQueueCreateInfo。
  3. 填充VkDeviceQueueCreateInfo,需要提供QueueFamily的index,因此本方法最开始的循环是为了查询出支持图形功能的QueueFamily的index。
  4. 创建完Device后,对应的Queue也被创建了,因此方法最后用**vkGetDeviceQueue()**接口获取已创建的Queue。
void VulkanEnv::CreateDevice()
{std::vector<VkQueueFamilyProperties> queueFamilies = GetQueueFamiliesOfPhysicalDevice(m_selectedPhysicalDevice);for (uint32_t i = 0; i < queueFamilies.size(); ++i){if (queueFamilies[i].queueFlags & VK_QUEUE_GRAPHICS_BIT){m_graphicsQueueFamilyIndex = i;break;}}//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkDeviceQueueCreateInfofloat queuePriority = 1.0f;VkDeviceQueueCreateInfo queueCreateInfo {};queueCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;queueCreateInfo.pNext = nullptr;queueCreateInfo.queueFamilyIndex = m_graphicsQueueFamilyIndex;queueCreateInfo.queueCount = 1;queueCreateInfo.pQueuePriorities = &queuePriority;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkDeviceCreateInfoVkDeviceCreateInfo createInfo{};createInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;createInfo.pNext = nullptr;createInfo.queueCreateInfoCount = 1;createInfo.pQueueCreateInfos = &queueCreateInfo;createInfo.enabledExtensionCount = 0;createInfo.ppEnabledExtensionNames = nullptr;createInfo.pEnabledFeatures = nullptr;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#vkCreateDeviceif (VK_SUCCESS != vkCreateDevice(m_selectedPhysicalDevice, &createInfo, nullptr, &m_device)){throw std::runtime_error("To create device is failed");}//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#vkGetDeviceQueuevkGetDeviceQueue(m_device, m_graphicsQueueFamilyIndex, 0, &m_graphicsQueue);
}

编译并运行程序

运行不报错就是最好的消息

题外话

实际上每个PhysicalDevice可以创建多个Device。每个Device又可以创建多个Queue。但我还是的初学者,为了简单起见我只创建一个Device和一个Queue

http://www.ds6.com.cn/news/8255.html

相关文章:

  • wordpress英语商城插件seo引擎优化是什么
  • 做公司 网站建设前端seo是什么
  • 快速搭建房屋无锡seo网络推广
  • 做网站美工收费win10优化大师怎么样
  • 书店网站建设可行性分析杭州搜索引擎推广排名技术
  • 临沂做网站多少钱torrent种子搜索引擎
  • 建立网站如何规划和实施建设市场推广策略
  • 国内免费无版权图片素材网站百度网络推广
  • 网站的导航用css怎么做长春关键词优化报价
  • 网站备案负责人一定要法人网络营销策划活动方案
  • 北京企业推广seo优化排名服务
  • 招聘信息网站女生学电子商务好吗
  • 网页设计模板的网站一个平台怎么推广
  • 深圳龙华企业网站设计百度一下就知道首页
  • 网站这么做怎样建网站平台
  • 学校网站建设评分标准建网站免费
  • 团购网站模板html如何找客户资源
  • 站牛网是做什么的前端性能优化有哪些方法
  • 网站上的logo怎么做建设优化网站
  • 青海省交通建设厅网站首页免费大数据查询平台
  • webstorm做网站百度开户返点
  • 凡科商城怎么样东莞网站seo优化
  • 做金属小飞机的网站网站优化塔山双喜
  • 会python做网站专业seo整站优化
  • 专门做化妆的招聘网站国外外链平台
  • 日本无码做受网站重庆森林为什么叫这个名字
  • 网页无法访问错误代码6百度推广优化师是什么
  • 国外专门做童装的网站有哪些网站关键词搜索排名
  • 南昌网站建设新闻式软文经典案例
  • 网站建设 拖欠尾款互联网域名交易中心