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

(一)初始化窗口

游戏最短流程:
1,初始化
2,循环
3,清理

代码如下
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();

private:
//窗口
GLFWwindow* window = nullptr;
};
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()
{
}

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

void MyApplication::cleanUp()
{

glfwDestroyWindow(window);
glfwTerminate();

}
调用
main.cpp
#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;
}

运行结果如下:
在这里插入图片描述

相关文章:

  • 记录Jmeter 利用BeanShell 脚本解析JSON字符串
  • MAC安装docker 后提示com.docker.vmnetd”将对您的电脑造成伤害
  • MySQL 语句解析json字符串
  • 基于SpringBoot的“交通旅游订票系统”的设计与实现(源码+数据库+文档+PPT)
  • 【笔记】在windows使用docker管理mysql版本
  • JS—异步编程:3分钟掌握异步编程
  • cordova android12+升级一些配置注意事项
  • 3. 轴指令(omron 机器自动化控制器)——>MC_CamOut
  • 【Mac】npm error Error: EACCES: permission denied, mkdir‘/Users/...
  • 从零到一:ESP32与豆包大模型的RTC连续对话实现指南
  • 【Git 暂存操作指南2】
  • 网盘解析工具1.3.0,修改了一些bug,建议更新到此版本
  • 发票管理自动化-发票查验接口让财务告别繁琐的核验流程
  • Android面试总结之Glide源码级理解
  • Android 动态设置默认Launcher(默认应用 电话-短信-浏览器-主屏幕应用))
  • MCP Server 实现一个 天气查询
  • 【C语言】分支与循环(上)
  • linux打包前端vue,后端springboot项目
  • CentOS 7 挂载与卸载文件系统笔记
  • 物联网中的物模型是什么意思,在嵌入式软件开发中如何体现?
  • 时代中国控股:前4个月销售额18.1亿元,境外债重组协议押后聆讯至5月底
  • 领证不用户口本,还需哪些材料?补领证件如何操作?七问七答
  • 中国金茂新任命三名副总裁,撤销区域公司
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益
  • 马上评|让“贾宝玉是长子长孙”争议回归理性讨论
  • 经济日报整版聚焦“妈妈岗”:就业路越走越宽,有温度重实效