Files
Cheap-Vulkan-Renderer/first_app.hpp

41 lines
983 B
C++

#pragma once
#include "cve_window.hpp"
#include "cve_pipeline.hpp"
#include "cve_device.hpp"
#include "cve_swap_chain.hpp"
#include "cve_model.hpp"
#include <memory>
#include <vector>
namespace cve {
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();
CveWindow cveWindow{WIDTH, HEIGHT, "Hello Vulkan!"};
CveDevice cveDevice{cveWindow};
CveSwapChain cveSwapChain{cveDevice, cveWindow.getExtent()};
std::unique_ptr<CvePipeline> cvePipeline;
VkPipelineLayout pipelineLayout;
std::vector<VkCommandBuffer> commandBuffers;
std::unique_ptr<CveModel> cveModel;
};
}