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

Raster (software) implementation of RCore. More...

#include <RRSCore.h>

+ Inheritance diagram for RRSCore:

Public Member Functions

 ~RRSCore () noexcept
 Destroys the core, releasing its devices and the bound wl_shm global (if any).
 
RRSDevicemainDevice () const noexcept
 Returns the main Raster device.
 
void clearGarbage () noexcept override
 No-op for the Raster backend.
 
- 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.
 

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

Raster (software) implementation of RCore.

RRSCore is the CPU software-rendering backend of Ream's global context. It is selected when the graphics API resolves to RGraphicsAPI::RS, and can be obtained from an RCore via asRS().

On the Wayland platform it binds the compositor's wl_shm global (used to allocate shared-memory swapchain buffers), then enumerates its rendering devices (RRSDevice). On DRM and Offscreen platforms only the devices are set up.

Constructor & Destructor Documentation

◆ ~RRSCore()

~RRSCore ( )
noexcept

Destroys the core, releasing its devices and the bound wl_shm global (if any).

Member Function Documentation

◆ mainDevice()

RRSDevice * mainDevice ( ) const
inlinenoexcept

Returns the main Raster device.

Same as RCore::mainDevice() but downcast to the Raster backend type.

◆ clearGarbage()

void clearGarbage ( )
inlineoverridevirtualnoexcept

No-op for the Raster backend.

The software backend keeps no deferred-destruction garbage, so this override does nothing.

Implements RCore.