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).
 
RRSDevice * mainDevice () 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.
 
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.
 

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

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.