Pixel data container. More...
#include <pixel_buffer.h>
Inheritance diagram for clan::PixelBuffer:Public Member Functions | |
| PixelBuffer () | |
| Constructs a null instance. | |
| PixelBuffer (const std::string &filename, const FileSystem &file_system, bool srgb=false) | |
| Constructs a PixelBuffer. | |
| PixelBuffer (const std::string &fullname, bool srgb=false) | |
| Constructs a PixelBuffer. | |
| PixelBuffer (int width, int height, TextureFormat texture_format, const void *data=nullptr, bool only_reference_data=false) | |
| Constructs a PixelBuffer. | |
| PixelBuffer (IODevice &file, const std::string &image_type, bool srgb=false) | |
| Constructs a PixelBuffer. | |
| PixelBuffer (PixelBufferProvider *provider) | |
| Constructs a PixelBuffer. | |
| virtual | ~PixelBuffer () |
| PixelBuffer | copy () const |
| Create a copy of the pixelbuffer that doesn't share data with the original pixel buffer. | |
| PixelBuffer | copy (const Rect &rect) const |
| Create a copy of the pixelbuffer that doesn't share data with the original pixel buffer. | |
| void | flip_vertical () |
| Flip the entire image vertically (turn it upside down) | |
| unsigned int | get_bytes_per_block () const |
| Returns the number of bytes per compression block. | |
| unsigned int | get_bytes_per_pixel () const |
| Returns the number of bytes per pixel. | |
| void * | get_data () |
| Returns a pointer to the beginning of the pixel buffer. | |
| template<typename Type > | |
| Type * | get_data () |
| const void * | get_data () const |
| template<typename Type > | |
| const Type * | get_data () const |
| unsigned int | get_data_size () const |
| Returns the size in bytes of the image data. | |
| unsigned short * | get_data_uint16 () |
| Returns a pointer to the beginning of the pixel buffer as 16 bit data. | |
| const unsigned short * | get_data_uint16 () const |
| unsigned int * | get_data_uint32 () |
| Returns a pointer to the beginning of the pixel buffer as 32 bit data. | |
| const unsigned int * | get_data_uint32 () const |
| unsigned char * | get_data_uint8 () |
| Returns a pointer to the beginning of the pixel buffer as 8 bit data. | |
| const unsigned char * | get_data_uint8 () const |
| float | get_dip_height () const |
| Returns the device independent height of this texture. | |
| Sizef | get_dip_size () const |
| Returns the device independent size of this texture. | |
| float | get_dip_width () const |
| Returns the device independent width of this texture. | |
| TextureFormat | get_format () const |
| Returns the pixel format. | |
| int | get_height () const |
| Retrieves the actual height of the buffer. | |
| void * | get_line (int line) |
| Returns a pointer to the beginning of a specific line. | |
| const void * | get_line (int line) const |
| unsigned short * | get_line_uint16 (int line) |
| Returns a pointer to the beginning of a specific line as 16 bit data. | |
| const unsigned short * | get_line_uint16 (int line) const |
| unsigned int * | get_line_uint32 (int line) |
| Returns a pointer to the beginning of a specific line as 32 bit data. | |
| const unsigned int * | get_line_uint32 (int line) const |
| unsigned char * | get_line_uint8 (int line) |
| Returns a pointer to the beginning of a specific line as 8 bit data. | |
| const unsigned char * | get_line_uint8 (int line) const |
| int | get_pitch () const |
| Returns the pitch (in bytes per scanline). | |
| Colorf | get_pixel (int x, int y) |
| Return color of pixel at the specified coordinates. | |
| float | get_pixel_ratio () const |
| PixelBufferProvider * | get_provider () const |
| Get Provider. | |
| Size | get_size () const |
| Retrieves the actual size of the buffer. | |
| int | get_width () const |
| Retrieves the actual width of the buffer. | |
| bool | has_transparency () const |
| Returns true if format has an alpha channel. | |
| bool | is_compressed () const |
| Returns true if compressed. | |
| bool | is_gpu () const |
| Returns true if this pixel buffer is a GPU based one. | |
| bool | is_null () const |
| Returns true if this object is invalid. | |
| void | lock (GraphicContext &gc, BufferAccess access) |
| Maps buffer into system memory. | |
| operator bool () const | |
| void | premultiply_alpha () |
| Multiply the RGB components by the Alpha component. | |
| void | premultiply_gamma (float gamma) |
| Multiply the RGB components by gamma value. | |
| void | set_image (const PixelBuffer &source) |
| Copy source pixel buffer into this buffer, doing a format conversion if needed. | |
| void | set_image (const PixelBuffer &source, PixelConverter &converter) |
| Copy source pixel buffer into this buffer, doing a format conversion if needed. | |
| void | set_pixel_ratio (float ratio) |
| Sets the display pixel ratio for this texture. | |
| void | set_subimage (const PixelBuffer &source, const Point &dest_pos, const Rect &src_rect) |
| Copy source pixel buffer into this buffer, doing a format conversion if needed. | |
| void | set_subimage (const PixelBuffer &source, const Point &dest_pos, const Rect &src_rect, PixelConverter &converter) |
| Copy source pixel buffer into this buffer, doing a format conversion if needed. | |
| void | throw_if_null () const |
| Throw an exception if this object is invalid. | |
| PixelBuffer | to_cpu (GraphicContext &gc) |
| Downloads the pixel buffer to CPU memory. | |
| PixelBuffer | to_format (TextureFormat texture_format) const |
| Converts current buffer to a new pixel format and returns the result. | |
| PixelBuffer | to_format (TextureFormat texture_format, PixelConverter &converter) const |
| Converts current buffer to a new pixel format and returns the result. | |
| PixelBuffer | to_gpu (GraphicContext &gc) |
| Uploads the pixel buffer to GPU memory. | |
| void | unlock () |
| Unmaps element buffer. | |
| void | upload_data (GraphicContext &gc, const Rect &dest_rect, const void *data) |
| Uploads data to buffer. | |
Static Public Member Functions | |
| static unsigned int | get_bytes_per_block (TextureFormat texture_format) |
| Returns the number of bytes per compression block. | |
| static unsigned int | get_bytes_per_pixel (TextureFormat texture_format) |
| Returns the number of bytes per pixel. | |
| static unsigned int | get_data_size (const Size &size, TextureFormat texture_format) |
| Returns the size in bytes of the image data. | |
| static bool | is_compressed (TextureFormat texture_format) |
| Returns true if compressed. | |
Friends | |
| class | PixelBuffer_Impl |
Pixel data container.
| clan::PixelBuffer::PixelBuffer | ( | ) |
Constructs a null instance.
| clan::PixelBuffer::PixelBuffer | ( | int | width, |
| int | height, | ||
| TextureFormat | texture_format, | ||
| const void * | data = nullptr, | ||
| bool | only_reference_data = false ) |
Constructs a PixelBuffer.
| width | = value |
| height | = value |
| sized_format | = Pixel Format |
| data | = The data (0 = Allocate automatically to a boundary of 16 bytes) |
| only_reference_data | : true = Reference the data. false = Copy the data |
| clan::PixelBuffer::PixelBuffer | ( | const std::string & | fullname, |
| bool | srgb = false ) |
Constructs a PixelBuffer.
| fullname | = String Ref |
| clan::PixelBuffer::PixelBuffer | ( | const std::string & | filename, |
| const FileSystem & | file_system, | ||
| bool | srgb = false ) |
Constructs a PixelBuffer.
| filename | = String Ref |
| dir | = Virtual Directory |
| clan::PixelBuffer::PixelBuffer | ( | IODevice & | file, |
| const std::string & | image_type, | ||
| bool | srgb = false ) |
Constructs a PixelBuffer.
| file | = IODevice |
| image_type | = String |
| clan::PixelBuffer::PixelBuffer | ( | PixelBufferProvider * | provider | ) |
Constructs a PixelBuffer.
| provider | = Font Provider |
|
virtual |
| PixelBuffer clan::PixelBuffer::copy | ( | ) | const |
Create a copy of the pixelbuffer that doesn't share data with the original pixel buffer.
| PixelBuffer clan::PixelBuffer::copy | ( | const Rect & | rect | ) | const |
Create a copy of the pixelbuffer that doesn't share data with the original pixel buffer.
| void clan::PixelBuffer::flip_vertical | ( | ) |
Flip the entire image vertically (turn it upside down)
| unsigned int clan::PixelBuffer::get_bytes_per_block | ( | ) | const |
Returns the number of bytes per compression block.
|
static |
Returns the number of bytes per compression block.
| unsigned int clan::PixelBuffer::get_bytes_per_pixel | ( | ) | const |
Returns the number of bytes per pixel.
|
static |
Returns the number of bytes per pixel.
| void * clan::PixelBuffer::get_data | ( | ) |
Returns a pointer to the beginning of the pixel buffer.
Referenced by get_data_uint16(), get_data_uint16(), get_data_uint32(), get_data_uint32(), get_data_uint8(), get_data_uint8(), clan::PixelBufferLock< Type >::lock(), and clan::PixelBufferLock< Type >::lock().
|
inline |
References get_data().
Referenced by get_data().
| const void * clan::PixelBuffer::get_data | ( | ) | const |
|
inline |
References get_data().
Referenced by get_data().
| unsigned int clan::PixelBuffer::get_data_size | ( | ) | const |
Returns the size in bytes of the image data.
|
static |
Returns the size in bytes of the image data.
|
inline |
Returns a pointer to the beginning of the pixel buffer as 16 bit data.
References get_data().
|
inline |
References get_data().
|
inline |
Returns a pointer to the beginning of the pixel buffer as 32 bit data.
References get_data().
|
inline |
References get_data().
|
inline |
Returns a pointer to the beginning of the pixel buffer as 8 bit data.
References get_data().
Referenced by get_line(), and get_line().
|
inline |
References get_data().
|
inline |
Returns the device independent height of this texture.
References get_height(), and get_pixel_ratio().
Referenced by get_dip_size().
|
inline |
Returns the device independent size of this texture.
References get_dip_height(), and get_dip_width().
|
inline |
Returns the device independent width of this texture.
References get_pixel_ratio(), and get_width().
Referenced by get_dip_size().
| TextureFormat clan::PixelBuffer::get_format | ( | ) | const |
Returns the pixel format.
| int clan::PixelBuffer::get_height | ( | ) | const |
Retrieves the actual height of the buffer.
Referenced by clan::PixelBufferLock< Type >::PixelBufferLock(), clan::PixelBufferLock< Type >::PixelBufferLock(), get_dip_height(), and get_size().
|
inline |
Returns a pointer to the beginning of a specific line.
References clan::d, get_data_uint8(), get_pitch(), and clan::line.
Referenced by get_line_uint16(), get_line_uint16(), get_line_uint32(), get_line_uint32(), get_line_uint8(), and get_line_uint8().
|
inline |
References clan::d, get_data_uint8(), get_pitch(), and clan::line.
|
inline |
Returns a pointer to the beginning of a specific line as 16 bit data.
References get_line(), and clan::line.
|
inline |
References get_line(), and clan::line.
|
inline |
Returns a pointer to the beginning of a specific line as 32 bit data.
References get_line(), and clan::line.
|
inline |
References get_line(), and clan::line.
|
inline |
Returns a pointer to the beginning of a specific line as 8 bit data.
References get_line(), and clan::line.
|
inline |
References get_line(), and clan::line.
| int clan::PixelBuffer::get_pitch | ( | ) | const |
Returns the pitch (in bytes per scanline).
Referenced by get_line(), get_line(), clan::PixelBufferLock< Type >::lock(), and clan::PixelBufferLock< Type >::lock().
| Colorf clan::PixelBuffer::get_pixel | ( | int | x, |
| int | y ) |
Return color of pixel at the specified coordinates.
| float clan::PixelBuffer::get_pixel_ratio | ( | ) | const |
Retrieves the pixel ratio of this texture.
Referenced by get_dip_height(), and get_dip_width().
| PixelBufferProvider * clan::PixelBuffer::get_provider | ( | ) | const |
Get Provider.
|
inline |
Retrieves the actual size of the buffer.
References get_height(), and get_width().
| int clan::PixelBuffer::get_width | ( | ) | const |
Retrieves the actual width of the buffer.
Referenced by clan::PixelBufferLock< Type >::PixelBufferLock(), clan::PixelBufferLock< Type >::PixelBufferLock(), get_dip_width(), and get_size().
| bool clan::PixelBuffer::has_transparency | ( | ) | const |
Returns true if format has an alpha channel.
| bool clan::PixelBuffer::is_compressed | ( | ) | const |
Returns true if compressed.
|
static |
Returns true if compressed.
| bool clan::PixelBuffer::is_gpu | ( | ) | const |
Returns true if this pixel buffer is a GPU based one.
Referenced by clan::PixelBufferLock< Type >::lock().
|
inline |
Returns true if this object is invalid.
Referenced by clan::PixelBufferLock< Type >::~PixelBufferLock(), clan::PixelBufferLock< Type >::lock(), clan::PixelBufferLock< Type >::lock(), and clan::PixelBufferLock< Type >::unlock().
| void clan::PixelBuffer::lock | ( | GraphicContext & | gc, |
| BufferAccess | access ) |
Maps buffer into system memory.
Referenced by clan::PixelBufferLock< Type >::lock().
|
inlineexplicit |
| void clan::PixelBuffer::premultiply_alpha | ( | ) |
Multiply the RGB components by the Alpha component.
This is useful with certain blending functions
| void clan::PixelBuffer::premultiply_gamma | ( | float | gamma | ) |
Multiply the RGB components by gamma value.
Calling this function with 2.2 gamma converts a sRGB image into linear space. To convert from linear to sRGB use 1.0/2.2
| void clan::PixelBuffer::set_image | ( | const PixelBuffer & | source | ) |
Copy source pixel buffer into this buffer, doing a format conversion if needed.
| source | Source pixel buffer. |
| void clan::PixelBuffer::set_image | ( | const PixelBuffer & | source, |
| PixelConverter & | converter ) |
Copy source pixel buffer into this buffer, doing a format conversion if needed.
| source | Source pixel buffer. |
| void clan::PixelBuffer::set_pixel_ratio | ( | float | ratio | ) |
Sets the display pixel ratio for this texture.
| void clan::PixelBuffer::set_subimage | ( | const PixelBuffer & | source, |
| const Point & | dest_pos, | ||
| const Rect & | src_rect ) |
Copy source pixel buffer into this buffer, doing a format conversion if needed.
| source | Source pixel buffer. |
| dest_rect | Destination position for copy. |
| src_rect | Source rectangle for copy. |
| void clan::PixelBuffer::set_subimage | ( | const PixelBuffer & | source, |
| const Point & | dest_pos, | ||
| const Rect & | src_rect, | ||
| PixelConverter & | converter ) |
Copy source pixel buffer into this buffer, doing a format conversion if needed.
| source | Source pixel buffer. |
| dest_rect | Destination position for copy. |
| src_rect | Source rectangle for copy. |
| void clan::PixelBuffer::throw_if_null | ( | ) | const |
Throw an exception if this object is invalid.
| PixelBuffer clan::PixelBuffer::to_cpu | ( | GraphicContext & | gc | ) |
Downloads the pixel buffer to CPU memory.
If the pixel buffer is already in CPU memory the function returns the current pixel buffer.
| PixelBuffer clan::PixelBuffer::to_format | ( | TextureFormat | texture_format | ) | const |
Converts current buffer to a new pixel format and returns the result.
| PixelBuffer clan::PixelBuffer::to_format | ( | TextureFormat | texture_format, |
| PixelConverter & | converter ) const |
Converts current buffer to a new pixel format and returns the result.
| PixelBuffer clan::PixelBuffer::to_gpu | ( | GraphicContext & | gc | ) |
Uploads the pixel buffer to GPU memory.
If the pixel buffer is already in GPU memory the function returns the current pixel buffer.
| void clan::PixelBuffer::unlock | ( | ) |
Unmaps element buffer.
Referenced by clan::PixelBufferLock< Type >::~PixelBufferLock(), and clan::PixelBufferLock< Type >::unlock().
| void clan::PixelBuffer::upload_data | ( | GraphicContext & | gc, |
| const Rect & | dest_rect, | ||
| const void * | data ) |
Uploads data to buffer.
|
friend |