vktutorial/first_app.hpp

45 lines
992 B
C++

#pragma once
#include "hk_device.hpp"
#include "hk_pipeline.hpp"
#include "hk_swap_chain.hpp"
#include "hk_window.hpp"
#include "hk_model.hpp"
// std
#include <memory>
#include <vector>
namespace hk
{
class FirstApp
{
public:
static constexpr int WIDTH = 800;
static constexpr int HEIGHT = 600;
FirstApp();
~FirstApp();
FirstApp(const FirstApp &) = delete;
FirstApp &operator=(const FirstApp &) = delete;
void run();
private:
void loadModels();
void createPipelineLayout();
void createPipeline();
void createCommandBuffers();
void drawFrame();
Window window{WIDTH, HEIGHT, "Hello Vulkan!"};
Device device{window};
SwapChain swapChain{device, window.getExtend()};
std::unique_ptr<Pipeline> pipeline;
VkPipelineLayout pipelineLayout;
std::vector<VkCommandBuffer> commandBuffers;
std::unique_ptr<Model> model;
};
}