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

东莞网站制作哪里好安阳如何建立自己的网站平台

东莞网站制作哪里好,安阳如何建立自己的网站平台,新开的网页游戏大全,介绍一个地方旅游网站怎么做在这节中, 创建一个实例初始化Vulkan库,指定驱动程序需要使用的应用程序信息 1,要有个实例句柄 VkInstance instance; 2,设置创建Vulkan驱动程序需要的信息, VkInstanceCreateInfo createInfo {}; createInfo.sType VK_STRUCTUR…

在这节中, 创建一个实例初始化Vulkan库,指定驱动程序需要使用的应用程序信息
1,要有个实例句柄
VkInstance instance;
2,设置创建Vulkan驱动程序需要的信息,
VkInstanceCreateInfo createInfo = {};
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
分以下三部分
(1)应用程序信息
VkApplicationInfo appInfo = {};
createInfo.pApplicationInfo = &appInfo;
(2)需要的窗口交互扩展
uint32_t glfwExtensionCount = 0;
const char** glfwExtensions = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);
createInfo.enabledExtensionCount = glfwExtensionCount;
createInfo.ppEnabledExtensionNames = glfwExtensions;
(3)//全局扩展层(对整个应用程序都有效,而不仅仅对一个设备有效)
//暂时设置为0,不使用全局扩展层
createInfo.enabledLayerCount = 0;
3,创建Vulkan实例
VkResult result = vkCreateInstance(
&createInfo, //包含创建信息的结构体指针
nullptr, //自定义的分配器回调函数,暂时设置为nullptr,不使用
&instance); //指向新对象句柄存储位置的指针。

当然,也要有个清理资源
vkDestroyInstance(instance, nullptr);

这里有个可选项,就是第2点,设置了窗口交互扩展,那么有多少可扩展项呢?就要查看扩展列表,是否有这个窗口交互扩展

//检测扩展支持
//获取扩展数量
uint32_t extensionCount = 0;
vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
//存储信息数组
std::vector<VkExtensionProperties> extensions(extensionCount);vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, extensions.data());

运行结果不变,
在这里插入图片描述
完整代码如下:
myapplication.h

#pragma once

#include <glm/vec4.hpp>
#include <glm/mat4x4.hpp>
#include <vulkan/vulkan.h>
#include
#include “D:/install/filament-v1.18.0/third_party/imgui/examples/libs/glfw/include/GLFW/glfw3.h”
#include
#include
#include
#include

class MyApplication
{
public:
void run();

private:
//初始化窗口
void initWindow();
//初始化Vulkan对象
void initVulkan();
//主循环进行渲染操作
void mainLoop();
//资源清理
void cleanUp();

//创建一个实例初始化Vulkan库,指定驱动程序需要使用的应用程序信息
void createInstance();

private:
//窗口
GLFWwindow* window = nullptr;

//实例句柄
VkInstance instance;

};

MyApplication.cpp
#include “MyApplication.h”

void MyApplication::run()
{
initWindow();
initVulkan();
mainLoop();
cleanUp();
}

void MyApplication::initWindow()
{

//初始化GLFW库,
glfwInit();
//阻止创建OpenGL上下文
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
//禁止窗口大小改变
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
//存储窗口句柄
const int WIDTH = 800;
const int HEIGHT = 600;
window = glfwCreateWindow(WIDTH, HEIGHT, "Vulkan window", nullptr, nullptr);

}

void MyApplication::initVulkan()
{
createInstance();
}

void MyApplication::mainLoop()
{
//在没有错误和窗口没有被关闭下一直运行,事件循环
while (!glfwWindowShouldClose(window))
{
glfwPollEvents();
}
}

void MyApplication::cleanUp()
{
//在应用程序结束前清除vulkan实例
vkDestroyInstance(instance, nullptr);
glfwDestroyWindow(window);
glfwTerminate();
}

void MyApplication::createInstance()
{
//应用程序信息,便于优化
VkApplicationInfo appInfo = {};
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
appInfo.pApplicationName = “Hello Triangle”;
appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.pEngineName = “No Engine”;
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.apiVersion = VK_API_VERSION_1_0;

//创建Vulkan驱动程序需要的信息
VkInstanceCreateInfo createInfo = {};
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
createInfo.pApplicationInfo = &appInfo;//返回需要的窗口交互扩展
uint32_t glfwExtensionCount = 0;
const char** glfwExtensions = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);
createInfo.enabledExtensionCount = glfwExtensionCount;
createInfo.ppEnabledExtensionNames = glfwExtensions;//全局扩展层(对整个应用程序都有效,而不仅仅对一个设备有效)
//暂时设置为0,不使用全局扩展层
createInfo.enabledLayerCount = 0;//创建Vulkan实例
VkResult result = vkCreateInstance(&createInfo,	//包含创建信息的结构体指针nullptr,		//自定义的分配器回调函数,暂时设置为nullptr,不使用&instance);		//指向新对象句柄存储位置的指针。//检测扩展支持
//获取扩展数量
uint32_t extensionCount = 0;
vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
//存储信息数组
std::vector<VkExtensionProperties> extensions(extensionCount);vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, extensions.data());

}
调用
#define GLFW_INCLUDE_VULKAN
#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include “MyApplication.h”

int main()
{
MyApplication app;
app.run();
return 0;
}


文章转载自:

http://sQPXjHlS.zqsnj.cn
http://ccRNkupa.zqsnj.cn
http://9zFzA2up.zqsnj.cn
http://wqe1Uc78.zqsnj.cn
http://jXG4r1kj.zqsnj.cn
http://iTlYarmh.zqsnj.cn
http://uype1QN4.zqsnj.cn
http://QcQjny81.zqsnj.cn
http://0j2tvDlS.zqsnj.cn
http://qF5foMj6.zqsnj.cn
http://SX1GbrYN.zqsnj.cn
http://rf2hdHIo.zqsnj.cn
http://ZjNKCuF8.zqsnj.cn
http://d2mrvuPL.zqsnj.cn
http://4Bh6QJy6.zqsnj.cn
http://giebqWro.zqsnj.cn
http://xGvrFdFT.zqsnj.cn
http://Su8P6c2h.zqsnj.cn
http://tl8WrNQC.zqsnj.cn
http://TKh3m5RV.zqsnj.cn
http://XcGRfWDE.zqsnj.cn
http://Hv4CcYNy.zqsnj.cn
http://DTmmtdU6.zqsnj.cn
http://u4FG5Em9.zqsnj.cn
http://uJsuQ0to.zqsnj.cn
http://Wvu48Eq9.zqsnj.cn
http://MA69wfF4.zqsnj.cn
http://nJgcyVbp.zqsnj.cn
http://QWx8jpB0.zqsnj.cn
http://loxV5Pt0.zqsnj.cn
http://www.dtcms.com/wzjs/665048.html

相关文章:

  • asp.net网站开发视频重庆网站制作福州
  • 哪个网站可以做卖房销售一个产品的网站怎么做的
  • 建设中学校园网站的目的wordpress连接设置方法
  • 做水果蔬菜生意网站小网站广告投放
  • 广州市建设局网站网页设计作业成品20页
  • 营销型网站页面布局企业简介ppt范文大全
  • 长尾关键词挖掘爱站工具wordpress带采集
  • 网站建设有哪些常用行为自己做简单的网站
  • 网站设计欣赏导航南漳网页设计
  • 品牌手机网站建设平面设计公司企业文化
  • 苏州相城网站建设wordpress 关注功能
  • 加快网站收录网站建设教程书籍免费下载
  • 两学一做网站进不去门户网站开发投标文件.doc
  • 做网站公司排名是什么WordPress4.8中文的把
  • 寻找网络公司做公司网站升级改版怎么查网站有没有做404
  • 手机网站开发框架php姜堰网站定制
  • 做同城相亲网站布吉做棋牌网站建设
  • 移动互联网站开发与维护招聘wordpress 文章去掉时间
  • WordPress网站动漫你在网站建设服务器要求
  • 如何自建网站绿派网站建设
  • 用虚拟机做网站的心得体会seo排名优化是什么意思
  • 阜康市建设银行网站做网站怎么收费的
  • 做外贸网站用什么软件翻强的好的网站具备
  • 广西教育学会 网站建设赤峰建设淘宝网站
  • 阳江网站建设 公司跨境电商入门基础知识
  • 如何做 网站的seowordpress高级搜索
  • 临沂网站制作价格官方网站建站
  • 网站开发 工程师 类型和网站用户体验相关的文章
  • 浙江建设信息港网成绩查询谷歌推广和seo
  • 网站开发技术支持网上自己怎么申请商标注册