上一篇文章中,我们浅析了Vulkan对传统图形API的优势,主要就是在其性能和精细化操控GPU上,具体可参考Vulkan-性能及精细化
今天我们就来用个简单的例子,亲身感受下Vulkan的开发“魅力”。
#include <iostream>
#include <chrono>
#include <cstring>
#include <glm/mat4x4.hpp>
#include <glm/gtx/transform.hpp>
#include "VK_UniformBuffer.h"
#include "VK_Context.h"
#include "VK_Pipeline.h"
#include "VK_DynamicState.h"
using namespace std;
const std::vector<uint32_t> indices = {
0, 1, 2
};
const std::vector<float> vertices = {
0.0f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.5f,
0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.5f,
-0.5f, 0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.5
};
VK_Context *context = nullptr;
VK_Pipeline *pipeline = nullptr;
// 窗口大小改变时通过onFrameSizeChanged更新窗口大小
void onFrameSizeChanged(int width, int height)
{