19 #ifndef INCLUDED_CSPAINT_CONTEXT_H
20 #define INCLUDED_CSPAINT_CONTEXT_H
22 #include <cspaint_fwd.h>
30 #include <vulkan/vulkan.hpp>
42 using handle = std::shared_ptr<context>;
54 static handle create(
const std::string &app_name, uint32_t app_version = 0,
55 const std::vector<std::string> &extensions = std::vector<std::string>(),
56 const std::vector<std::string> &layers = std::vector<std::string>());
58 static handle create(
const char *app_name, uint32_t app_version = 0,
59 const std::vector<const char *> &extensions = std::vector<const char *>(),
60 const std::vector<const char *> &layers = std::vector<const char *>());
69 using error_callback_t = void(vk::DebugReportFlagsEXT, vk::DebugReportObjectTypeEXT, uint64_t,
size_t, int32_t,
const char *,
73 vk::DebugReportFlagsEXT flags = vk::DebugReportFlagBitsEXT::eError |
74 vk::DebugReportFlagBitsEXT::eWarning);
77 vk::Instance m_instance;
78 vk::DispatchLoaderDynamic m_dynamicLoader;
79 std::function<error_callback_t> m_errorCallback;
80 vk::UniqueHandle<vk::DebugReportCallbackEXT, vk::DispatchLoaderDynamic> m_debugReport;
void (vk::DebugReportFlagsEXT, vk::DebugReportObjectTypeEXT, uint64_t, size_t, int32_t, const char *, const char *) error_callback_t
Definition: cspaint_context.h:70
void operator=(const context &) = delete
void setDebugCallback(std::function< error_callback_t > callback, vk::DebugReportFlagsEXT flags=vk::DebugReportFlagBitsEXT::eError|vk::DebugReportFlagBitsEXT::eWarning)
~context()
Definition: cspaint_context.h:46
vk::Instance instance() const
Definition: cspaint_context.h:64
context(vk::Instance instance)
static handle create(const std::string &app_name, uint32_t app_version=0, const std::vector< std::string > &extensions=std::vector< std::string >(), const std::vector< std::string > &layers=std::vector< std::string >())
std::shared_ptr< context > handle
Definition: cspaint_context.h:42
Definition: cspaint_context.h:35
Definition: cspaint_buffer.h:26