CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::UIWindowFramebufferDevice Class Reference

A UIWindowDevice implementation that offers graphics accelerated rendering of the UI, but offers no specific mechanism for how a window is represented. More...

#include <CeresEngine/UI/UIWindowDevice.hpp>

Inheritance diagram for CeresEngine::UIWindowFramebufferDevice:
CeresEngine::UIWindowDevice CeresEngine::RefCounted< UIWindowDevice > CeresEngine::UIWindowSurfaceDevice

Public Member Functions

 UIWindowFramebufferDevice (Renderer &renderer)
 
void draw (UIBackingStore &backingStore, UIDrawCommandBuffer &drawCommandBuffer) override
 Draws the UI command buffer into the backing store.
 
UIBackingStorePtr createBackingStore (UIWindow &window) override
 Creates a new backing store for the window or a view that belongs to the window.
 
void flush (UIWindow &window, UIBackingStore &backingStore) override
 Flushes the contents of the window to the backing device.
 
- Public Member Functions inherited from CeresEngine::UIWindowDevice
 UIWindowDevice () noexcept=default
 
virtual ~UIWindowDevice () noexcept=default
 
virtual double getBackingScaleFactor (const UIWindow &window) const
 The backing scale factor.
 
virtual UIBackingStorePtr registerWindow (UIWindow &window)
 Registers a window with this device.
 
virtual void unregisterWindow (UIWindow &window)
 Unregisters the window from this device.
 
- Public Member Functions inherited from CeresEngine::RefCounted< UIWindowDevice >
 RefCounted (Args &&... args)
 Creates a new RefCounted object and constructs a new Deleter by forwarding Args to it.
 
void retain () noexcept
 Retains the object by increment it's reference count by one.
 
bool release () noexcept
 Relases the object by decrementing it's reference count by one.
 

Protected Attributes

RenderermRenderer
 
UIRenderer mUIRenderer
 The renderer that will render the UI elements on a texture.
 

Private Types

using super = UIWindowDevice
 

Additional Inherited Members

- Protected Member Functions inherited from CeresEngine::UIWindowDevice
void notifyFrameChanged (UIWindow &window, const UIRect &newFrame)
 Utility method that must be called by device implementations when the window frame changes.
 
void notifyBackingScaleFactorChange (UIWindow &window, double newBackingScalingFactor)
 Utility method that must be called by device implementations when the window scaling factor changes.
 

Detailed Description

A UIWindowDevice implementation that offers graphics accelerated rendering of the UI, but offers no specific mechanism for how a window is represented.

This class is usually not used directly, but is instead sub-classed by a more specialized device such as UIWindowSurfaceDevice that backs windows by an operating-system provided window surface.

Member Typedef Documentation

◆ super

Constructor & Destructor Documentation

◆ UIWindowFramebufferDevice()

CeresEngine::UIWindowFramebufferDevice::UIWindowFramebufferDevice ( Renderer renderer)
explicit

Member Function Documentation

◆ createBackingStore()

UIBackingStorePtr CeresEngine::UIWindowFramebufferDevice::createBackingStore ( UIWindow window)
overridevirtual

Creates a new backing store for the window or a view that belongs to the window.

The backing store is used to store the contents of a view, window or layer and acts as render target when doing draw calls.

The most common implementation is to return a framebuffer that accepts GPU drawing commands.

Implements CeresEngine::UIWindowDevice.

Reimplemented in CeresEngine::UIWindowSurfaceDevice.

◆ draw()

void CeresEngine::UIWindowFramebufferDevice::draw ( UIBackingStore backingStore,
UIDrawCommandBuffer drawCommandBuffer 
)
overridevirtual

Draws the UI command buffer into the backing store.

This method is usually called from the UIWindow display method or from a UILayer when filling the contents.

The default implementation is a no-op.

Reimplemented from CeresEngine::UIWindowDevice.

◆ flush()

void CeresEngine::UIWindowFramebufferDevice::flush ( UIWindow window,
UIBackingStore backingStore 
)
overridevirtual

Flushes the contents of the window to the backing device.

If this is a window that is backed by a physical operating-system provided window, it means presenting the contents of backingStore to the window swapchain.

The backingStore instance must be the same instance as returned from Other devices may choose to implement this differently. The default implementation is a no-op. "/Users/Rogiel/Developer/CeresEngine/Engine/Sources/CeresEngine/UI/UIWindowDevice.hpp" 133

Reimplemented from CeresEngine::UIWindowDevice.

Reimplemented in CeresEngine::UIWindowSurfaceDevice.

Member Data Documentation

◆ mRenderer

Renderer& CeresEngine::UIWindowFramebufferDevice::mRenderer
protected

◆ mUIRenderer

UIRenderer CeresEngine::UIWindowFramebufferDevice::mUIRenderer
protected

The renderer that will render the UI elements on a texture.


The documentation for this class was generated from the following file: