73 lines
2.0 KiB
C++
73 lines
2.0 KiB
C++
#include "vk.h"
|
||
|
||
#include <iostream>
|
||
|
||
#include "Model.h"
|
||
|
||
int main(int argc, char* argv[])
|
||
{
|
||
// объект класса-обертки Vulkan API
|
||
extern Vulkan vulkan;
|
||
|
||
//Вершины, записываемые в буфер
|
||
Vertex vertices[] = {
|
||
{ {-0.5f, -0.5f}, {1.0f, 0.0f, 0.0f} },
|
||
{ { 0.5f, -0.5f}, {0.0f, 1.0f, 0.0f} },
|
||
{ { 0.5f, 0.5f}, {0.0f, 0.0f, 1.0f} },
|
||
{ {-0.5f, 0.5f}, {1.0f, 1.0f, 1.0f} }
|
||
};
|
||
|
||
// Индексы, записываемые в буфер
|
||
uint32_t indices[] = {0, 1, 2, 2, 3, 0};
|
||
|
||
I_Model * model;
|
||
|
||
// Инициализация GLFW
|
||
glfwInit();
|
||
|
||
// Проверка доступности Vulkan
|
||
if (glfwVulkanSupported())
|
||
{
|
||
// Отключим создание контекста
|
||
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
|
||
// Отключим возможность изменения размеров окна
|
||
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
|
||
// Создание окна
|
||
GLFWwindow* window = glfwCreateWindow(800, 600, "Vulkan window", nullptr, nullptr);
|
||
|
||
// Инициализация Vulkan API
|
||
vulkan.init(window);
|
||
|
||
model = new Model_w_indexes(vertices, 4, indices, 6);
|
||
vulkan.addToRenderList(model);
|
||
|
||
// Жизненный цикл
|
||
while(!glfwWindowShouldClose(window))
|
||
{
|
||
// Обработка событий
|
||
glfwPollEvents();
|
||
vulkan.renderFrame();
|
||
}
|
||
|
||
delete model;
|
||
|
||
// Уничтожение окна
|
||
glfwDestroyWindow(window);
|
||
|
||
// Завершение работы с Vulkan
|
||
vulkan.destroy();
|
||
}
|
||
else
|
||
std::cout << "There is no Vulkan Supported\n";
|
||
|
||
// Завершение работы с GLFW
|
||
glfwTerminate();
|
||
|
||
return 0;
|
||
}
|
||
|
||
|
||
|
||
|
||
|