Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Fonctions membres publiques statiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor::PxBufferBase

#include <PixelBufferBase.hpp>

Graphe d'héritage de castor::PxBufferBase:
Inheritance graph
[légende]
Graphe de collaboration de castor::PxBufferBase:
Collaboration graph
[légende]

Types publics

using PxArray = Vector< uint8_t >
 
using PixelData = PxArray::iterator
 
using ConstPixelData = PxArray::const_iterator
 

Fonctions membres publiques

CU_API PxBufferBase (PxBufferConvertOptions const *options, std::atomic_bool const *interrupt, Size const &size, PixelFormat pixelFormat, uint32_t layers=1u, uint32_t levels=1u, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer depuis une source, données initialisées si aucune source n'est donnée.
 
CU_API PxBufferBase (Size const &size, PixelFormat pixelFormat, uint32_t layers=1u, uint32_t levels=1u, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer depuis une source, données initialisées si aucune source n'est donnée.
 
CU_API PxBufferBase (PxBufferBase const &pixelBuffer)
 Constructeur par copie.
 
CU_API PxBufferBase (PxBufferBase &&pixelBuffer) noexcept
 Constructeur par déplacement.
 
CU_API ~PxBufferBase () noexcept=default
 Destructeur.
 
CU_API PxBufferBaseoperator= (PxBufferBase const &pixelBuffer)
 Opérateur d'affectation par copie.
 
CU_API PxBufferBaseoperator= (PxBufferBase &&pixelBuffer) noexcept
 Opérateur d'affectation par déplacement.
 
CU_API void clear ()
 Deletes the data buffer.
 
CU_API void initialise (PxBufferConvertOptions const *options, std::atomic_bool const *interrupt, uint8_t const *buffer, PixelFormat bufferFormat, uint32_t bufferAlign=0u)
 Initialise le buffer de données à celui donné.
 
void initialise (uint8_t const *buffer, PixelFormat bufferFormat, uint32_t bufferAlign=0u)
 Initialise le buffer de données à celui donné
 
CU_API void initialise (Size const &size)
 Initialise le buffer de données à la taille donnée.
 
CU_API void flip ()
 Effectue un échange vertical des pixels.
 
CU_API void swap (PxBufferBase &pixelBuffer) noexcept
 Echange les données de ce buffer avec celles du buffer donné
 
CU_API void update (uint32_t layers, uint32_t levels)
 Met ç jour le conteneur du buffer, avec les nombres de layers et de miplevels donnés.
 
CU_API void generateMips ()
 Génère les mipmaps.
 
CU_API uint32_t convertToTiles (uint32_t maxSize)
 Convvertit en tile map (aucun effet si m_layers <= 1).
 
PxBufferBaseUPtr clone () const
 
CU_API PixelData getAt (uint32_t x, uint32_t y, uint32_t index=0u, uint32_t level=0u)
 
CU_API ConstPixelData getAt (uint32_t x, uint32_t y, uint32_t index=0u, uint32_t level=0u) const
 
uint64_t getSize () const noexcept
 
uint8_t const * begin () const noexcept
 
uint8_t const * end () const noexcept
 
uint8_t const * cbegin () const noexcept
 
uint8_t const * cend () const noexcept
 
uint8_t const * getConstPtr () const noexcept
 
uint8_t * getPtr () noexcept
 
bool isFlipped () const noexcept
 
PixelFormat getFormat () const noexcept
 
uint32_t getWidth () const noexcept
 
uint32_t getHeight () const noexcept
 
Point3ui getTiles () const noexcept
 
Size getTileSize () const noexcept
 
uint32_t getTileWidth () const noexcept
 
uint32_t getTileHeight () const noexcept
 
uint32_t getLayers () const noexcept
 
uint32_t getLevels () const noexcept
 
uint32_t getAlign () const noexcept
 
Size const & getDimensions () const noexcept
 
uint32_t getCount () const noexcept
 
PixelData getAt (Position const &position)
 
ConstPixelData getAt (Position const &position) const
 

Fonctions membres publiques statiques

static CU_API PxBufferBaseUPtr create (PxBufferConvertOptions const *options, std::atomic_bool const *interrupt, Size const &size, uint32_t layers, uint32_t levels, PixelFormat wantedFormat, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer avec les données voulues.
 
static CU_API PxBufferBaseUPtr create (PxBufferConvertOptions const *options, Size const &size, uint32_t layers, uint32_t levels, PixelFormat wantedFormat, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer avec les données voulues.
 
static CU_API PxBufferBaseUPtr create (Size const &size, uint32_t layers, uint32_t levels, PixelFormat wantedFormat, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer avec les données voulues.
 
static CU_API PxBufferBaseUPtr create (PxBufferConvertOptions const *options, std::atomic_bool const *interrupt, Size const &size, PixelFormat wantedFormat, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer avec les données voulues.
 
static CU_API PxBufferBaseUPtr create (PxBufferConvertOptions const *options, Size const &size, PixelFormat wantedFormat, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer avec les données voulues.
 
static CU_API PxBufferBaseUPtr create (Size const &size, PixelFormat wantedFormat, uint8_t const *buffer=nullptr, PixelFormat bufferFormat=PixelFormat::eR8G8B8A8_UNORM, uint32_t bufferAlign=0u)
 Crée un buffer avec les données voulues.
 

Fonctions membres protégées

uint32_t doConvert (uint32_t x, uint32_t y) const
 

Attributs protégés

Size m_size
 
uint32_t m_layers
 
uint32_t m_levels
 
uint32_t m_align
 
Point3ui m_tiles { 1u, 1u, 1u }
 
PxArray m_buffer
 

Documentation des définitions de type membres

◆ ConstPixelData

using castor::PxBufferBase::ConstPixelData = PxArray::const_iterator

◆ PixelData

using castor::PxBufferBase::PixelData = PxArray::iterator

◆ PxArray

Documentation des constructeurs et destructeur

◆ PxBufferBase() [1/4]

CU_API castor::PxBufferBase::PxBufferBase ( PxBufferConvertOptions const * options,
std::atomic_bool const * interrupt,
Size const & size,
PixelFormat pixelFormat,
uint32_t layers = 1u,
uint32_t levels = 1u,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )

Crée un buffer depuis une source, données initialisées si aucune source n'est donnée.

Paramètres
[in]optionsLes options de conversion.
[in]interruptDit si la conversion est à interrompre.
[in]sizeDimensions du buffer.
[in]pixelFormatFormat des pixels du buffer.
[in]layersLe nombre de layers du buffer.
[in]levelsLe nombre de miplevels du buffer.
[in]bufferLe buffer source.
[in]bufferFormatLe format des pixels du buffer source.
[in]bufferAlignL'alignement mémoire du buffer source.

◆ PxBufferBase() [2/4]

CU_API castor::PxBufferBase::PxBufferBase ( Size const & size,
PixelFormat pixelFormat,
uint32_t layers = 1u,
uint32_t levels = 1u,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )

Crée un buffer depuis une source, données initialisées si aucune source n'est donnée.

Paramètres
[in]sizeDimensions du buffer.
[in]pixelFormatFormat des pixels du buffer.
[in]layersLe nombre de layers du buffer.
[in]levelsLe nombre de miplevels du buffer.
[in]bufferLe buffer source.
[in]bufferFormatLe format des pixels du buffer source.
[in]bufferAlignL'alignement mémoire du buffer source.

◆ PxBufferBase() [3/4]

CU_API castor::PxBufferBase::PxBufferBase ( PxBufferBase const & pixelBuffer)

Constructeur par copie.

Paramètres
[in]pixelBufferL'objet PxBufferBase à copier

◆ PxBufferBase() [4/4]

CU_API castor::PxBufferBase::PxBufferBase ( PxBufferBase && pixelBuffer)
noexcept

Constructeur par déplacement.

Paramètres
[in]pixelBufferL'objet PxBufferBase à déplacer

◆ ~PxBufferBase()

CU_API castor::PxBufferBase::~PxBufferBase ( )
defaultnoexcept

Destructeur.

Documentation des fonctions membres

◆ begin()

uint8_t const * castor::PxBufferBase::begin ( ) const
inlinenoexcept

Références m_buffer.

Référencé par end().

Voici le graphe des appelants de cette fonction :

◆ cbegin()

uint8_t const * castor::PxBufferBase::cbegin ( ) const
inlinenoexcept

Références m_buffer.

Référencé par cend().

Voici le graphe des appelants de cette fonction :

◆ cend()

uint8_t const * castor::PxBufferBase::cend ( ) const
inlinenoexcept

Références cbegin(), et getSize().

Voici le graphe d'appel pour cette fonction :

◆ clear()

CU_API void castor::PxBufferBase::clear ( )

Deletes the data buffer.

Détruit le tampon de données

◆ clone()

PxBufferBaseUPtr castor::PxBufferBase::clone ( ) const
inline
Renvoie
Un clone de ce buffer.

◆ convertToTiles()

CU_API uint32_t castor::PxBufferBase::convertToTiles ( uint32_t maxSize)

Convvertit en tile map (aucun effet si m_layers <= 1).

◆ create() [1/6]

static CU_API PxBufferBaseUPtr castor::PxBufferBase::create ( PxBufferConvertOptions const * options,
Size const & size,
PixelFormat wantedFormat,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )
inlinestatic

Crée un buffer avec les données voulues.

Paramètres
[in]optionsLes options de conversion.
[in]sizeDimensions du buffer.
[in]wantedFormatFormat des pixels du buffer.
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignL'alignement mémoire du buffer source.
Renvoie
Le buffer créé.

Références create().

Voici le graphe d'appel pour cette fonction :

◆ create() [2/6]

static CU_API PxBufferBaseUPtr castor::PxBufferBase::create ( PxBufferConvertOptions const * options,
Size const & size,
uint32_t layers,
uint32_t levels,
PixelFormat wantedFormat,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )
inlinestatic

Crée un buffer avec les données voulues.

Paramètres
[in]optionsLes options de conversion.
[in]sizeDimensions du buffer.
[in]layersCouches du buffer (layers ou slices).
[in]levelsNiveaux de mip du buffer.
[in]wantedFormatFormat des pixels du buffer.
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignL'alignement mémoire du buffer source.
Renvoie
Le buffer créé.

Références create().

Voici le graphe d'appel pour cette fonction :

◆ create() [3/6]

static CU_API PxBufferBaseUPtr castor::PxBufferBase::create ( PxBufferConvertOptions const * options,
std::atomic_bool const * interrupt,
Size const & size,
PixelFormat wantedFormat,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )
inlinestatic

Crée un buffer avec les données voulues.

Paramètres
[in]optionsLes options de conversion.
[in]interruptDit si la conversion est à interrompre.
[in]sizeDimensions du buffer.
[in]wantedFormatFormat des pixels du buffer.
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignL'alignement mémoire du buffer source.
Renvoie
Le buffer créé.

Références create().

Voici le graphe d'appel pour cette fonction :

◆ create() [4/6]

static CU_API PxBufferBaseUPtr castor::PxBufferBase::create ( PxBufferConvertOptions const * options,
std::atomic_bool const * interrupt,
Size const & size,
uint32_t layers,
uint32_t levels,
PixelFormat wantedFormat,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )
static

Crée un buffer avec les données voulues.

Remarques
Version interruptible.
Paramètres
[in]optionsLes options de conversion.
[in]interruptDit si la conversion est à interrompre.
[in]sizeDimensions du buffer.
[in]layersCouches du buffer (layers ou slices).
[in]levelsNiveaux de mip du buffer.
[in]wantedFormatFormat des pixels du buffer.
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignL'alignement mémoire du buffer source.
Renvoie
Le buffer créé.

Référencé par create(), create(), create(), create(), create(), et castor::WhiteNoise::generate().

Voici le graphe des appelants de cette fonction :

◆ create() [5/6]

static CU_API PxBufferBaseUPtr castor::PxBufferBase::create ( Size const & size,
PixelFormat wantedFormat,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )
inlinestatic

Crée un buffer avec les données voulues.

Paramètres
[in]sizeDimensions du buffer.
[in]wantedFormatFormat des pixels du buffer.
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignL'alignement mémoire du buffer source.
Renvoie
Le buffer créé.

Références create().

Voici le graphe d'appel pour cette fonction :

◆ create() [6/6]

static CU_API PxBufferBaseUPtr castor::PxBufferBase::create ( Size const & size,
uint32_t layers,
uint32_t levels,
PixelFormat wantedFormat,
uint8_t const * buffer = nullptr,
PixelFormat bufferFormat = PixelFormat::eR8G8B8A8_UNORM,
uint32_t bufferAlign = 0u )
inlinestatic

Crée un buffer avec les données voulues.

Paramètres
[in]sizeDimensions du buffer.
[in]layersCouches du buffer (layers ou slices).
[in]levelsNiveaux de mip du buffer.
[in]wantedFormatFormat des pixels du buffer.
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignL'alignement mémoire du buffer source.
Renvoie
Le buffer créé.

Références create().

Voici le graphe d'appel pour cette fonction :

◆ doConvert()

uint32_t castor::PxBufferBase::doConvert ( uint32_t x,
uint32_t y ) const
inlineprotected

Références getWidth().

Voici le graphe d'appel pour cette fonction :

◆ end()

uint8_t const * castor::PxBufferBase::end ( ) const
inlinenoexcept

Références begin(), et getSize().

Voici le graphe d'appel pour cette fonction :

◆ flip()

CU_API void castor::PxBufferBase::flip ( )

Effectue un échange vertical des pixels.

◆ generateMips()

CU_API void castor::PxBufferBase::generateMips ( )

Génère les mipmaps.

◆ getAlign()

uint32_t castor::PxBufferBase::getAlign ( ) const
inlinenoexcept

Références m_align.

◆ getAt() [1/4]

PixelData castor::PxBufferBase::getAt ( Position const & position)
inline

Références getAt(), castor::Position::x(), et castor::Position::y().

Voici le graphe d'appel pour cette fonction :

◆ getAt() [2/4]

ConstPixelData castor::PxBufferBase::getAt ( Position const & position) const
inline

Références getAt(), castor::Position::x(), et castor::Position::y().

Voici le graphe d'appel pour cette fonction :

◆ getAt() [3/4]

CU_API PixelData castor::PxBufferBase::getAt ( uint32_t x,
uint32_t y,
uint32_t index = 0u,
uint32_t level = 0u )

name Accesseurs.

Référencé par getAt(), et getAt().

Voici le graphe des appelants de cette fonction :

◆ getAt() [4/4]

CU_API ConstPixelData castor::PxBufferBase::getAt ( uint32_t x,
uint32_t y,
uint32_t index = 0u,
uint32_t level = 0u ) const

◆ getConstPtr()

uint8_t const * castor::PxBufferBase::getConstPtr ( ) const
inlinenoexcept

Références m_buffer.

◆ getCount()

uint32_t castor::PxBufferBase::getCount ( ) const
inlinenoexcept

Références getHeight(), et getWidth().

Voici le graphe d'appel pour cette fonction :

◆ getDimensions()

Size const & castor::PxBufferBase::getDimensions ( ) const
inlinenoexcept

Références m_size.

◆ getFormat()

PixelFormat castor::PxBufferBase::getFormat ( ) const
inlinenoexcept

◆ getHeight()

uint32_t castor::PxBufferBase::getHeight ( ) const
inlinenoexcept

Références castor::Size::getHeight(), et m_size.

Référencé par getCount().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getLayers()

uint32_t castor::PxBufferBase::getLayers ( ) const
inlinenoexcept

Références m_layers.

◆ getLevels()

uint32_t castor::PxBufferBase::getLevels ( ) const
inlinenoexcept

Références m_levels.

◆ getPtr()

uint8_t * castor::PxBufferBase::getPtr ( )
inlinenoexcept

Références m_buffer.

◆ getSize()

uint64_t castor::PxBufferBase::getSize ( ) const
inlinenoexcept
Renvoie
count() * (size of a pixel)

Références m_buffer.

Référencé par cend(), et end().

Voici le graphe des appelants de cette fonction :

◆ getTileHeight()

uint32_t castor::PxBufferBase::getTileHeight ( ) const
inlinenoexcept

Références castor::Size::getHeight(), m_size, et m_tiles.

Référencé par getTileSize().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getTiles()

Point3ui castor::PxBufferBase::getTiles ( ) const
inlinenoexcept

Références m_tiles.

◆ getTileSize()

Size castor::PxBufferBase::getTileSize ( ) const
inlinenoexcept

Références getTileHeight(), et getTileWidth().

Voici le graphe d'appel pour cette fonction :

◆ getTileWidth()

uint32_t castor::PxBufferBase::getTileWidth ( ) const
inlinenoexcept

Références castor::Size::getWidth(), m_size, et m_tiles.

Référencé par getTileSize().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getWidth()

uint32_t castor::PxBufferBase::getWidth ( ) const
inlinenoexcept

Références castor::Size::getWidth(), et m_size.

Référencé par doConvert(), et getCount().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ initialise() [1/3]

CU_API void castor::PxBufferBase::initialise ( PxBufferConvertOptions const * options,
std::atomic_bool const * interrupt,
uint8_t const * buffer,
PixelFormat bufferFormat,
uint32_t bufferAlign = 0u )

Initialise le buffer de données à celui donné.

Remarques
Des conversions sont faites si besoin est.
Paramètres
[in]optionsLes options de conversion.
[in]interruptDit si la conversion est à interrompre.
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignAlignement des données du buffer.

Référencé par initialise().

Voici le graphe des appelants de cette fonction :

◆ initialise() [2/3]

CU_API void castor::PxBufferBase::initialise ( Size const & size)

Initialise le buffer de données à la taille donnée.

Remarques
Des conversions sont faites si besoin est
Paramètres
[in]sizeLes dimensions du buffer

◆ initialise() [3/3]

void castor::PxBufferBase::initialise ( uint8_t const * buffer,
PixelFormat bufferFormat,
uint32_t bufferAlign = 0u )
inline

Initialise le buffer de données à celui donné

Remarques
Des conversions sont faites si besoin est
Paramètres
[in]bufferBuffer de données.
[in]bufferFormatFormat des pixels du buffer de données.
[in]bufferAlignAlignement des données du buffer.

Références initialise().

Voici le graphe d'appel pour cette fonction :

◆ isFlipped()

bool castor::PxBufferBase::isFlipped ( ) const
inlinenoexcept

◆ operator=() [1/2]

CU_API PxBufferBase & castor::PxBufferBase::operator= ( PxBufferBase && pixelBuffer)
noexcept

Opérateur d'affectation par déplacement.

Paramètres
[in]pixelBufferL'objet PxBufferBase à déplacer
Renvoie
Une référence sur cet objet PxBufferBase

◆ operator=() [2/2]

CU_API PxBufferBase & castor::PxBufferBase::operator= ( PxBufferBase const & pixelBuffer)

Opérateur d'affectation par copie.

Paramètres
[in]pixelBufferL'objet PxBufferBase à copier
Renvoie
Une référence sur cet objet PxBufferBase

◆ swap()

CU_API void castor::PxBufferBase::swap ( PxBufferBase & pixelBuffer)
noexcept

Echange les données de ce buffer avec celles du buffer donné

Paramètres
[in]pixelBufferLe buffer à échanger

◆ update()

CU_API void castor::PxBufferBase::update ( uint32_t layers,
uint32_t levels )

Met ç jour le conteneur du buffer, avec les nombres de layers et de miplevels donnés.

Paramètres
[in]layersLe nombre de layers du buffer.
[in]levelsLe nombre de miplevels du buffer.

Documentation des données membres

◆ m_align

uint32_t castor::PxBufferBase::m_align
protected

Référencé par getAlign().

◆ m_buffer

PxArray castor::PxBufferBase::m_buffer
mutableprotected

◆ m_layers

uint32_t castor::PxBufferBase::m_layers
protected

Référencé par getLayers().

◆ m_levels

uint32_t castor::PxBufferBase::m_levels
protected

Référencé par getLevels().

◆ m_size

Size castor::PxBufferBase::m_size
protected

◆ m_tiles

Point3ui castor::PxBufferBase::m_tiles { 1u, 1u, 1u }
protected

Référencé par getTileHeight(), getTiles(), et getTileWidth().


La documentation de cette classe a été générée à partir du fichier suivant :