【Vulkan Tutorials 01】【环境搭建】三角形例子

Development Environment(开发环境)

1. 安装Vulkan SDK

官网

2. 安装cmake和minGW

2.1 cmake

官网

双击可执行文件,然后直接安装,注意环境变量选择设置,否则需要自己操作。

2.2 minGW

官网

下载如下图所示:
MinGW_Download.png
其中:

  • x86_64:表示64位硬件平台;
  • win32:表示Windows平台程序;
  • seh:表示异常处理模式
    一般情况下,Windows开发都这样选择。

2.3 环境变量

环境变量

3. 安装GLFW

官网

3.1 下载GLFW的源码

3.2 编译安装GLFW

C:\glfw-3.3.8\glfw-3.3.8\build> cmake -G "MinGW Makefiles" ..
C:\glfw-3.3.8\glfw-3.3.8\build> mingw32-make install

会有如下输出:

Install the project...
-- Install configuration: ""
-- Installing: C:/Program Files (x86)/GLFW/lib/libglfw3.a
-- Installing: C:/Program Files (x86)/GLFW/include/GLFW
-- Installing: C:/Program Files (x86)/GLFW/include/GLFW/glfw3.h
-- Installing: C:/Program Files (x86)/GLFW/include/GLFW/glfw3native.h
-- Installing: C:/Program Files (x86)/GLFW/lib/cmake/glfw3/glfw3Config.cmake
-- Installing: C:/Program Files (x86)/GLFW/lib/cmake/glfw3/glfw3ConfigVersion.cmake
-- Installing: C:/Program Files (x86)/GLFW/lib/cmake/glfw3/glfw3Targets.cmake
-- Installing: C:/Program Files (x86)/GLFW/lib/cmake/glfw3/glfw3Targets-noconfig.cmake
-- Installing: C:/Program Files (x86)/GLFW/lib/pkgconfig/glfw3.pc
PS C:\glfw-3.3.8\glfw-3.3.8\build>

3.3 拷贝生成库文件

由于自己的项目文件夹,然后设置使用。

4. 创建CMake项目

先把我创建好的项目目录结构展示如下:

├─SelfCode
│      CMakeLists.txt
│      main.cpp
└─ThirtParty
    ├─GLFW            
    └─glm

SelfCode目录是存放自己编写的代码;
ThirgParty目录是存放需要的第三方依赖库。
其中,CMakeLists.txt内容如下:

# 设置cmake最小版本依赖值
cmake_minimum_required(VERSION 3.20.0)

# 设置当前项目名称及版本号
project(DrawTriangle VERSION 0.1.0)

# 设置CPP版本为 c++17
set(CMAKE_CXX_STANDARD 17)

# 可执行二进制文件编译生成
add_executable(DrawTriangle main.cpp)

# 设置glfw3库文件的搜索目录,以及搜索,并将其链接到当前可执行二进制文件中
set(glfw3_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../ThirtParty/GLFW/lib/cmake/glfw3)
find_package(glfw3 3.3 REQUIRED)
target_link_libraries(DrawTriangle glfw)

# 搜索vulkan库文件,并将其链接到当前可执行二进制文件中
find_package(Vulkan REQUIRED)
target_include_directories(DrawTriangle PRIVATE ${Vulkan_INCLUDE_DIRS})
target_link_libraries(DrawTriangle ${Vulkan_LIBRARIES})

其中,main.cpp内容如下:

#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>

#include <iostream>
#include <stdexcept>
#include <cstdlib>

class DrawTriangle {
public:
    // 构造函数,传入窗口宽高
    DrawTriangle(uint32_t _width, uint32_t _height) :
        window_width(_width), window_height(_height) {}
    
    void Run() {
        initWindow();
        initVulkan();
        mainLoop();
        cleanup();
    }

private:
    void initWindow() {
        glfwInit();
        glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
        glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
        window = glfwCreateWindow(window_width, window_height, "DrawTriangle", nullptr, nullptr);
    }

    void initVulkan() {}

    void mainLoop() {
        while (!glfwWindowShouldClose(window)) {
            glfwPollEvents();
        }
    }

    void cleanup() {
        glfwDestroyWindow(window);
        glfwTerminate();
    }

private:
    uint32_t window_width;
    uint32_t window_height;
    GLFWwindow *window;
};

int main() {
    DrawTriangle triangle(800, 600);

    try {
        triangle.Run();
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
        return EXIT_FAILURE;
    }
    return 0;
}

4.1 编译运行

D:\DrawTriangle\SelfCode\build> cmake -G "MinGW Makefiles" ..
D:\DrawTriangle\SelfCode\build> mingw32-make.exe -j32
D:\DrawTriangle\SelfCode\build> .\DrawTriangle.exe

结果

5. 最终结果

三角形

6 代码仓地址

代码仓

欢迎关注,后面会又持续更新。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值