10#include "evan/EvanPlatform.hpp"
11#include "evan/ADeviceBackend.hpp"
12#include "evan/PipelineCache.hpp"
13#include "evan/TransferManager.hpp"
15#include "evan/IPlatform.hpp"
17#include <utility/logging/loggable.hpp>
18#include <utility/logging/default_logger.hpp>
37 protected utility::logging::Loggable<DeviceContext,
38 utility::logging::DefaultLogger>
241 VkSampleCountFlags getFramebufferSampleCounts()
const;
257 void createCommandPool();
267 void createGraphicsQueue();
278 bool checkDebugUtilsSupport(VkInstance instance);
293 bool checkDebugUtilsEnabled(VkInstance instance);
305 void destroyDebugUtilsMessengerEXT(
306 VkInstance instance, VkDebugUtilsMessengerEXT debugMessenger);
317 void setupDebugMessenger();
335 void populateDebugMessengerCreateInfo(
336 VkDebugUtilsMessengerCreateInfoEXT &createInfo,
337 PFN_vkDebugUtilsMessengerCallbackEXT debugCallback);
364 VkResult createDebugUtilsMessengerEXT(
366 const VkDebugUtilsMessengerCreateInfoEXT *pCreateInfo,
367 const VkAllocationCallbacks *pAllocator,
368 VkDebugUtilsMessengerEXT *pDebugMessenger);
Represents the device context for the engine, managing Vulkan-related resources and operations.
VkCommandPool getCommandPool() const
Retrieves the Vulkan command pool associated with this device context.
DeviceContext(const IPlatform &platform)
Constructs a DeviceContext instance using the provided platform.
TransferManager _transferManager
void setMsaaSamples(VkSampleCountFlagBits samples)
Overrides the MSAA sample count used by this device context.
VkSampleCountFlagBits _msaaSamples
VkSampleCountFlagBits getMsaaSamples() const
Retrieves the number of MSAA samples used by this device context.
VkCommandPool _commandPool
VkSampleCountFlagBits getMaxSupportedMsaaSamples() const
Retrieves the highest MSAA sample count this device accepts.
std::shared_ptr< ADeviceBackend > getDeviceBackend() const
Retrieves a shared pointer to the ADeviceBackend instance associated with this device context.
VkDebugUtilsMessengerEXT _debugMessenger
std::shared_ptr< ADeviceBackend > _deviceBackend
PipelineCache _pipelineCache
TransferManager & getTransferManager()
Retrieves the transfer manager used to upload resources asynchronously without draining the graphics ...
VkQueue getGraphicsQueue() const
Retrieves the Vulkan graphics queue associated with this device context.
const PipelineCache & getPipelineCache() const
Retrieves the pipeline cache used when creating pipelines.
Owns the Vulkan pipeline cache used when creating pipelines and persists it across runs.
Owns staging memory and command buffers used to upload data to device-local resources without drainin...