Files
Copium/CopiumEngine/src/copium/core/Instance.h
T
Thraix 9a3b3aa13c Rework tracing system and enum creators
- Rework tracing system, now using "{}" for formatting instead of the
  standard %s,%d,%f formatting that C++ uses.
- Rework enums creators to not take in namespace
- Fix single use CommandBuffers sometimes failing due to indexing them
  with the current frame in flight
- Add DropEvent to Window
2026-05-03 12:40:47 +02:00

37 lines
775 B
C++

#pragma once
#include <memory>
#include "copium/core/DebugMessenger.h"
namespace Copium
{
class Instance final
{
CP_DELETE_COPY_AND_MOVE_CTOR(Instance);
private:
VkInstance instance;
std::unique_ptr<DebugMessenger> debugMessenger;
// TODO: Move to SwapChain?
uint32_t graphicsQueueIndex;
uint32_t presentQueueIndex;
VkQueue graphicsQueue;
VkQueue presentQueue;
// TODO end
public:
Instance(const std::string& applicationName);
~Instance();
operator VkInstance() const;
private:
void InitializeInstance(const std::string& applicationName);
void InitializeDebugMessenger();
std::vector<const char*> GetRequiredExtensions();
bool CheckLayerSupport(const std::vector<const char*>& layers);
};
}