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

RVKDevice * mainDevice () 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.
 
RDevice * mainDevice () 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 Options & options () const noexcept
 Returns the options RCore was created with.
 
std::shared_ptr< RGLCore > asGL () noexcept
 Attempts to cast this RCore instance to an RGLCore.
 
std::shared_ptr< RRSCore > asRS () noexcept
 Attempts to cast this RCore instance to an RRSCore.
 
std::shared_ptr< RVKCore > asVK () 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< RCore > Make (const Options &options) noexcept
 Creates and initializes the single RCore instance.
 
static std::shared_ptr< RCore > Get () 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).