Ream v0.1.0-1
C++ graphics library for Linux
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
RVKCore Class Referencefinal

Vulkan implementation of RCore, obtained via RCore::asVK(). More...

#include <RVKCore.h>

+ Inheritance diagram for RVKCore:

Public Member Functions

RVKDevicemainDevice () const noexcept
 Returns the main RVKDevice (RCore::mainDevice() downcast to the Vulkan backend).
 
virtual void clearGarbage () noexcept override
 Drains each device's fence-tracked deferred-destruction queue.
 
bool hasInstanceExtension (std::string_view extension) const noexcept
 Returns true if extension is among the available VkInstance extensions.
 
bool hasValidationLayer (std::string_view layer) const noexcept
 Returns true if layer is among the available VkInstance validation layers.
 
VkInstance instance () const noexcept
 Returns the underlying VkInstance handle.
 
- Public Member Functions inherited from RCore
const std::vector< RDevice * > & devices () const noexcept
 Returns all rendering devices enumerated by the library.
 
RDevicemainDevice () const noexcept
 Returns the main (default) device.
 
bool overrideMainDevice (RDevice *device) noexcept
 Overrides the main device.
 
RGraphicsAPI graphicsAPI () const noexcept
 Returns the active graphics API.
 
RPlatform platform () const noexcept
 Returns the active platform.
 
const Optionsoptions () const noexcept
 Returns the options RCore was created with.
 
std::shared_ptr< RGLCoreasGL () noexcept
 Attempts to cast this RCore instance to an RGLCore.
 
std::shared_ptr< RRSCoreasRS () noexcept
 Attempts to cast this RCore instance to an RRSCore.
 
std::shared_ptr< RVKCoreasVK () noexcept
 Attempts to cast this RCore instance to an RVKCore.
 
 ~RCore () noexcept
 Destructor.
 
- Public Member Functions inherited from RObject
 RObject ()=default
 Constructs a default RObject.
 

Public Attributes

CZLogger vkLog { "Ream", "CZ_REAM_VK_LOG_LEVEL" }
 Logger for the Vulkan backend (verbosity controlled by CZ_REAM_VK_LOG_LEVEL).
 

Additional Inherited Members

- Static Public Member Functions inherited from RCore
static std::shared_ptr< RCoreMake (const Options &options) noexcept
 Creates and initializes the single RCore instance.
 
static std::shared_ptr< RCoreGet () noexcept
 Returns the current global RCore instance.
 

Detailed Description

Vulkan implementation of RCore, obtained via RCore::asVK().

Owns the VkInstance (plus optional debug messenger and validation layers), enumerates the physical devices, and wraps each as an RVKDevice, selecting the highest-scoring one as the main device.

Member Function Documentation

◆ mainDevice()

RVKDevice * mainDevice ( ) const
inlinenoexcept

Returns the main RVKDevice (RCore::mainDevice() downcast to the Vulkan backend).

◆ clearGarbage()

virtual void clearGarbage ( )
overridevirtualnoexcept

Drains each device's fence-tracked deferred-destruction queue.

Forwards to RVKDevice::clearGarbage() for every device.

Implements RCore.

◆ hasInstanceExtension()

bool hasInstanceExtension ( std::string_view  extension) const
noexcept

Returns true if extension is among the available VkInstance extensions.

◆ hasValidationLayer()

bool hasValidationLayer ( std::string_view  layer) const
noexcept

Returns true if layer is among the available VkInstance validation layers.

◆ instance()

VkInstance instance ( ) const
inlinenoexcept

Returns the underlying VkInstance handle.

Member Data Documentation

◆ vkLog

CZLogger vkLog { "Ream", "CZ_REAM_VK_LOG_LEVEL" }

Logger for the Vulkan backend (verbosity controlled by CZ_REAM_VK_LOG_LEVEL).