Files
Copium/CopiumEngine/src/copium/core/Application.h
T
Thraix 65a86bd5a2 Add docking of main viewport
- Change ImGui branch to docking
- Rework code to handle viewport resizes instead of window resize
2023-07-13 23:41:20 +02:00

50 lines
1.3 KiB
C++

#pragma once
#include "copium/asset/AssetMeta.h"
#include "copium/core/Scene.h"
#include "copium/buffer/Framebuffer.h"
#include "copium/event/EventHandler.h"
#include "copium/mesh/Mesh.h"
#include "copium/pipeline/DescriptorPool.h"
#include "copium/pipeline/DescriptorSet.h"
#include "copium/pipeline/Pipeline.h"
#include "copium/renderer/Renderer.h"
namespace Copium
{
class Application final : EventHandler
{
CP_DELETE_COPY_AND_MOVE_CTOR(Application);
private:
AssetHandle framebuffer;
AssetHandle texture2D;
AssetHandle texture2D2;
AssetHandle font;
AssetHandle graphicsPipeline;
std::unique_ptr<DescriptorPool> descriptorPool;
std::unique_ptr<DescriptorSet> descriptorSet;
std::unique_ptr<DescriptorSet> descriptorSetImGui;
std::unique_ptr<Scene> scene;
std::unique_ptr<Mesh> mesh;
std::unique_ptr<CommandBuffer> commandBuffer;
public:
Application();
~Application();
bool Update();
EventResult OnEvent(const Event& event) override;
private:
void InitializeFrameBuffer();
void InitializeScene();
void InitializeTextureSampler();
void InitializeDescriptorSets();
void InitializeGraphicsPipeline();
void InitializeMesh();
void InitializeCommandBuffer();
void RecordCommandBuffer();
void UpdateUniformBuffer();
};
}