Kanzi 4.0.0-beta2
kanzi::Renderbuffer Class Reference

Renderbuffers provide the images that can be rendered to by attaching them to the framebuffer as color or depth stencil images. More...

#include <kanzi/core.ui/graphics2d/renderbuffer.hpp>

Classes

struct  CreateInfo
 Renderbuffer creation parameters. More...
 

Public Member Functions

GraphicsFormat getFormat () const
 Gets the graphics format.
 
size_t getGPUMemoryUsage () const
 Gets the GPU memory usage for this renderbuffer.
 
gfx::ImageHandleGuard getHandle () const
 Query the Kanzi graphics handle of the Renderbuffer.
 
size_t getHeight () const
 Gets the renderbuffer height.
 
string getName () const
 Gets the name of the renderbuffer.
 
size_t getSampleCount () const
 Gets the sample count.
 
size_t getWidth () const
 Gets the renderbuffer width.
 
void invalidate ()
 Invalidates the internal renderbuffer handle.
 
bool isTransient () const
 Gets the renderbuffer transient flag.
 
void reload (Renderer &renderer)
 Recreates the renderbuffer contents.
 

Static Public Member Functions

static RenderbufferSharedPtr create (Renderer &renderer, const CreateInfo &createInfo)
 Create a Renderbuffer with the provided creation parameters.
 
static RenderbufferSharedPtr create (Renderer &renderer, const CreateInfo &createInfo, string_view name)
 Create a Renderbuffer with the provided creation parameters.
 

Protected Member Functions

Renderbufferoperator= (const Renderbuffer &)=delete
 Deleted copy operator.
 
 Renderbuffer (const Renderbuffer &)=delete
 Deleted copy constructor.
 
 Renderbuffer (Renderer &renderer, const CreateInfo &createInfo, string_view name)
 Construct a Renderbuffer with specified creation parameters.
 

Protected Attributes

GraphicsFormat m_format
 Surface graphics format.
 
gfx::ImageHandleGuard m_handle
 Kanzi graphics handle of the Renderbuffer.
 
size_t m_height
 Surface height.
 
string m_name
 Name of the renderbuffer.
 
size_t m_sampleCount
 Number of multisample samples.
 
bool m_transient
 Transient flag.
 
size_t m_width
 Surface width.
 

Friends

void swap (Renderbuffer &buffer1, Renderbuffer &buffer2)
 Swap the contents of two renderbuffers.
 

Detailed Description

Renderbuffers provide the images that can be rendered to by attaching them to the framebuffer as color or depth stencil images.

Unlike textures, you cannot access renderbuffers using the samplers from shaders. When you direct rendering to a framebuffer, the depth and stencil tests require either renderbuffer or texture attached to the framebuffer.

Renderbuffer is not a GPUResource, so for calculating total GPU memory and invalidating the state, it must be owned by another GPU resource.

You can read the content of renderbuffers with the ReadPixels() function.

Since
Kanzi 4.0.0
  • Renderbuffer no longer inherits Surface.
  • Removed the destroyOverride, getFaceCountOverride, getFeaturesOverride, getFormatOverride, getGPUMemoryUsageOverride, getHeightOverride, getMipmapLevelCountOverride, getRenderTargetSampleCountOverride, getSliceCountOverride, getWidthOverride, and invalidateOverride functions.
  • Removed the m_features field.

Constructor & Destructor Documentation

◆ Renderbuffer() [1/2]

kanzi::Renderbuffer::Renderbuffer ( Renderer & renderer,
const CreateInfo & createInfo,
string_view name )
explicitprotected

Construct a Renderbuffer with specified creation parameters.

Parameters
rendererRenderer to use for creating the renderbuffer.
createInfoRenderbuffer creation parameters.
nameName

◆ Renderbuffer() [2/2]

kanzi::Renderbuffer::Renderbuffer ( const Renderbuffer & )
protecteddelete

Deleted copy constructor.

Member Function Documentation

◆ create() [1/2]

static RenderbufferSharedPtr kanzi::Renderbuffer::create ( Renderer & renderer,
const CreateInfo & createInfo,
string_view name )
static

Create a Renderbuffer with the provided creation parameters.

Parameters
rendererRenderer to use for creating the renderbuffer.
createInfoRenderbuffer creation parameters.
nameName of the renderbuffer.
Returns
Newly created Renderbuffer
Since
Kanzi 4.0.0
  • Removed the domain parameter.
  • Added the renderer parameter.

◆ create() [2/2]

static RenderbufferSharedPtr kanzi::Renderbuffer::create ( Renderer & renderer,
const CreateInfo & createInfo )
inlinestatic

Create a Renderbuffer with the provided creation parameters.

Parameters
rendererRenderer to use for creating the renderbuffer.
createInfoRenderbuffer creation parameters.
Returns
Newly created Renderbuffer
Since
Kanzi 4.0.0
  • Removed the domain parameter.
  • Added the renderer parameter.

◆ invalidate()

void kanzi::Renderbuffer::invalidate ( )

Invalidates the internal renderbuffer handle.

Must be called if the graphics backend has invalidated the current state.

Since
Kanzi 4.0.0

◆ reload()

void kanzi::Renderbuffer::reload ( Renderer & renderer)

Recreates the renderbuffer contents.

Parameters
rendererRenderer to use for recreating the renderbuffer.
Since
Kanzi 4.0.0

◆ getGPUMemoryUsage()

size_t kanzi::Renderbuffer::getGPUMemoryUsage ( ) const

Gets the GPU memory usage for this renderbuffer.

Returns
GPU memory usage in bytes.
Since
Kanzi 4.0.0

◆ getHandle()

gfx::ImageHandleGuard kanzi::Renderbuffer::getHandle ( ) const
inline

Query the Kanzi graphics handle of the Renderbuffer.

Returns
Kanzi gaphics handle of the Renderbuffer.
Since
Kanzi 4.0.0

◆ getName()

string kanzi::Renderbuffer::getName ( ) const
inline

Gets the name of the renderbuffer.

Returns
Renderbuffer name.

◆ getSampleCount()

size_t kanzi::Renderbuffer::getSampleCount ( ) const
inline

Gets the sample count.

Returns
Sample count.
Since
Kanzi 4.0.0 changed the type of the return value to size_t.

◆ getFormat()

GraphicsFormat kanzi::Renderbuffer::getFormat ( ) const
inline

Gets the graphics format.

Returns
Format.

◆ getWidth()

size_t kanzi::Renderbuffer::getWidth ( ) const
inline

Gets the renderbuffer width.

Returns
Renderbuffer width.
Since
Kanzi 4.0.0 changed the type of the return value to size_t.

◆ getHeight()

size_t kanzi::Renderbuffer::getHeight ( ) const
inline

Gets the renderbuffer height.

Returns
Renderbuffer height.
Since
Kanzi 4.0.0 changed the type of the return value to size_t.

◆ isTransient()

bool kanzi::Renderbuffer::isTransient ( ) const
inline

Gets the renderbuffer transient flag.

Returns
Renderbuffer transient flag.
Since
Kanzi 4.0.0

◆ operator=()

Renderbuffer & kanzi::Renderbuffer::operator= ( const Renderbuffer & )
protecteddelete

Deleted copy operator.

Friends And Related Symbol Documentation

◆ swap

void swap ( Renderbuffer & buffer1,
Renderbuffer & buffer2 )
friend

Swap the contents of two renderbuffers.

Parameters
buffer1First renderbuffer to be swapped.
buffer2Second renderbuffer to be swapped.

Member Data Documentation

◆ m_handle

gfx::ImageHandleGuard kanzi::Renderbuffer::m_handle
protected

Kanzi graphics handle of the Renderbuffer.

◆ m_name

string kanzi::Renderbuffer::m_name
protected

Name of the renderbuffer.

Since
Kanzi 4.0.0

◆ m_sampleCount

size_t kanzi::Renderbuffer::m_sampleCount
protected

Number of multisample samples.

Since
Kanzi 4.0.0 changed the type to size_t.

◆ m_format

GraphicsFormat kanzi::Renderbuffer::m_format
protected

Surface graphics format.

◆ m_width

size_t kanzi::Renderbuffer::m_width
protected

Surface width.

Since
Kanzi 4.0.0 changed the type to size_t.

◆ m_height

size_t kanzi::Renderbuffer::m_height
protected

Surface height.

Since
Kanzi 4.0.0 changed the type to size_t.

◆ m_transient

bool kanzi::Renderbuffer::m_transient
protected

Transient flag.

If set, implies that the renderbuffer contents need not be preserved after a render pass.

Since
Kanzi 4.0.0

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