Castor3D 0.16.0
Multiplatform 3D engine
|
#include <PixelBufferBase.hpp>
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 PxBufferBase & | operator= (PxBufferBase const &pixelBuffer) |
Opérateur d'affectation par copie. | |
CU_API PxBufferBase & | operator= (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 |
using castor::PxBufferBase::ConstPixelData = PxArray::const_iterator |
using castor::PxBufferBase::PixelData = PxArray::iterator |
using castor::PxBufferBase::PxArray = Vector< uint8_t > |
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.
[in] | options | Les options de conversion. |
[in] | interrupt | Dit si la conversion est à interrompre. |
[in] | size | Dimensions du buffer. |
[in] | pixelFormat | Format des pixels du buffer. |
[in] | layers | Le nombre de layers du buffer. |
[in] | levels | Le nombre de miplevels du buffer. |
[in] | buffer | Le buffer source. |
[in] | bufferFormat | Le format des pixels du buffer source. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
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.
[in] | size | Dimensions du buffer. |
[in] | pixelFormat | Format des pixels du buffer. |
[in] | layers | Le nombre de layers du buffer. |
[in] | levels | Le nombre de miplevels du buffer. |
[in] | buffer | Le buffer source. |
[in] | bufferFormat | Le format des pixels du buffer source. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
CU_API castor::PxBufferBase::PxBufferBase | ( | PxBufferBase const & | pixelBuffer | ) |
Constructeur par copie.
[in] | pixelBuffer | L'objet PxBufferBase à copier |
|
noexcept |
Constructeur par déplacement.
[in] | pixelBuffer | L'objet PxBufferBase à déplacer |
|
defaultnoexcept |
Destructeur.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
CU_API void castor::PxBufferBase::clear | ( | ) |
Deletes the data buffer.
Détruit le tampon de données
|
inline |
CU_API uint32_t castor::PxBufferBase::convertToTiles | ( | uint32_t | maxSize | ) |
Convvertit en tile map (aucun effet si m_layers <= 1).
|
inlinestatic |
Crée un buffer avec les données voulues.
[in] | options | Les options de conversion. |
[in] | size | Dimensions du buffer. |
[in] | wantedFormat | Format des pixels du buffer. |
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
Références create().
|
inlinestatic |
Crée un buffer avec les données voulues.
[in] | options | Les options de conversion. |
[in] | size | Dimensions du buffer. |
[in] | layers | Couches du buffer (layers ou slices). |
[in] | levels | Niveaux de mip du buffer. |
[in] | wantedFormat | Format des pixels du buffer. |
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
Références create().
|
inlinestatic |
Crée un buffer avec les données voulues.
[in] | options | Les options de conversion. |
[in] | interrupt | Dit si la conversion est à interrompre. |
[in] | size | Dimensions du buffer. |
[in] | wantedFormat | Format des pixels du buffer. |
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
Références create().
|
static |
Crée un buffer avec les données voulues.
[in] | options | Les options de conversion. |
[in] | interrupt | Dit si la conversion est à interrompre. |
[in] | size | Dimensions du buffer. |
[in] | layers | Couches du buffer (layers ou slices). |
[in] | levels | Niveaux de mip du buffer. |
[in] | wantedFormat | Format des pixels du buffer. |
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
Référencé par create(), create(), create(), create(), create(), et castor::WhiteNoise::generate().
|
inlinestatic |
Crée un buffer avec les données voulues.
[in] | size | Dimensions du buffer. |
[in] | wantedFormat | Format des pixels du buffer. |
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
Références create().
|
inlinestatic |
Crée un buffer avec les données voulues.
[in] | size | Dimensions du buffer. |
[in] | layers | Couches du buffer (layers ou slices). |
[in] | levels | Niveaux de mip du buffer. |
[in] | wantedFormat | Format des pixels du buffer. |
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | L'alignement mémoire du buffer source. |
Références create().
|
inlineprotected |
|
inlinenoexcept |
CU_API void castor::PxBufferBase::flip | ( | ) |
Effectue un échange vertical des pixels.
CU_API void castor::PxBufferBase::generateMips | ( | ) |
Génère les mipmaps.
|
inlinenoexcept |
Références m_align.
Références getAt(), castor::Position::x(), et castor::Position::y().
|
inline |
Références getAt(), castor::Position::x(), et castor::Position::y().
CU_API ConstPixelData castor::PxBufferBase::getAt | ( | uint32_t | x, |
uint32_t | y, | ||
uint32_t | index = 0u, | ||
uint32_t | level = 0u ) const |
|
inlinenoexcept |
Références m_buffer.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Références castor::Size::getHeight(), et m_size.
Référencé par getCount().
|
inlinenoexcept |
Références m_layers.
|
inlinenoexcept |
Références m_levels.
|
inlinenoexcept |
Références m_buffer.
|
inlinenoexcept |
|
inlinenoexcept |
Références castor::Size::getHeight(), m_size, et m_tiles.
Référencé par getTileSize().
|
inlinenoexcept |
Références m_tiles.
|
inlinenoexcept |
|
inlinenoexcept |
Références castor::Size::getWidth(), m_size, et m_tiles.
Référencé par getTileSize().
|
inlinenoexcept |
Références castor::Size::getWidth(), et m_size.
Référencé par doConvert(), et getCount().
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é.
[in] | options | Les options de conversion. |
[in] | interrupt | Dit si la conversion est à interrompre. |
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | Alignement des données du buffer. |
Référencé par initialise().
Initialise le buffer de données à la taille donnée.
[in] | size | Les dimensions du buffer |
|
inline |
Initialise le buffer de données à celui donné
[in] | buffer | Buffer de données. |
[in] | bufferFormat | Format des pixels du buffer de données. |
[in] | bufferAlign | Alignement des données du buffer. |
Références initialise().
|
inlinenoexcept |
|
noexcept |
Opérateur d'affectation par déplacement.
[in] | pixelBuffer | L'objet PxBufferBase à déplacer |
CU_API PxBufferBase & castor::PxBufferBase::operator= | ( | PxBufferBase const & | pixelBuffer | ) |
Opérateur d'affectation par copie.
[in] | pixelBuffer | L'objet PxBufferBase à copier |
|
noexcept |
Echange les données de ce buffer avec celles du buffer donné
[in] | pixelBuffer | Le buffer à échanger |
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.
[in] | layers | Le nombre de layers du buffer. |
[in] | levels | Le nombre de miplevels du buffer. |
|
protected |
Référencé par getAlign().
|
mutableprotected |
Référencé par begin(), cbegin(), getConstPtr(), getPtr(), getSize(), castor::PxBuffer< PF >::pixelsBegin(), et castor::PxBuffer< PF >::pixelsEnd().
|
protected |
Référencé par getLayers().
|
protected |
Référencé par getLevels().
|
protected |
Référencé par getDimensions(), getHeight(), getTileHeight(), getTileWidth(), et getWidth().
|
protected |
Référencé par getTileHeight(), getTiles(), et getTileWidth().