clan::PixelBuffer Class Reference

Pixel data container. More...

#include <pixel_buffer.h>

+ Inheritance diagram for clan::PixelBuffer:

Public Member Functions

Construction
 PixelBuffer ()
 Constructs a null instance. More...
 
 PixelBuffer (int width, int height, TextureFormat texture_format, const void *data=nullptr, bool only_reference_data=false)
 Constructs a PixelBuffer. More...
 
 PixelBuffer (const std::string &fullname, bool srgb=false)
 Constructs a PixelBuffer. More...
 
 PixelBuffer (const std::string &filename, const FileSystem &file_system, bool srgb=false)
 Constructs a PixelBuffer. More...
 
 PixelBuffer (IODevice &file, const std::string &image_type, bool srgb=false)
 Constructs a PixelBuffer. More...
 
 PixelBuffer (PixelBufferProvider *provider)
 Constructs a PixelBuffer. More...
 
virtual ~PixelBuffer ()
 
Operations
void lock (GraphicContext &gc, BufferAccess access)
 Maps buffer into system memory. More...
 
void unlock ()
 Unmaps element buffer. More...
 
void upload_data (GraphicContext &gc, const Rect &dest_rect, const void *data)
 Uploads data to buffer. More...
 
void set_image (const PixelBuffer &source)
 Copy source pixel buffer into this buffer, doing a format conversion if needed. More...
 
void set_image (const PixelBuffer &source, PixelConverter &converter)
 Copy source pixel buffer into this buffer, doing a format conversion if needed. More...
 
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. More...
 
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. More...
 
PixelBuffer to_cpu (GraphicContext &gc)
 Downloads the pixel buffer to CPU memory. More...
 
PixelBuffer to_gpu (GraphicContext &gc)
 Uploads the pixel buffer to GPU memory. More...
 
PixelBuffer to_format (TextureFormat texture_format) const
 Converts current buffer to a new pixel format and returns the result. More...
 
PixelBuffer to_format (TextureFormat texture_format, PixelConverter &converter) const
 Converts current buffer to a new pixel format and returns the result. More...
 
void flip_vertical ()
 Flip the entire image vertically (turn it upside down) More...
 
void premultiply_alpha ()
 Multiply the RGB components by the Alpha component. More...
 
void premultiply_gamma (float gamma)
 Multiply the RGB components by gamma value. More...
 
void set_pixel_ratio (float ratio)
 Sets the display pixel ratio for this texture. More...
 

Attributes

bool is_null () const
 Returns true if this object is invalid. More...
 
void throw_if_null () const
 Throw an exception if this object is invalid. More...
 
PixelBuffer copy () const
 Create a copy of the pixelbuffer that doesn't share data with the original pixel buffer. More...
 
PixelBuffer copy (const Rect &rect) const
 Create a copy of the pixelbuffer that doesn't share data with the original pixel buffer. More...
 
int get_width () const
 Retrieves the actual width of the buffer. More...
 
int get_height () const
 Retrieves the actual height of the buffer. More...
 
Size get_size () const
 Retrieves the actual size of the buffer. More...
 
int get_pitch () const
 Returns the pitch (in bytes per scanline). More...
 
float get_pixel_ratio () const
 
float get_dip_width () const
 Returns the device independent width of this texture. More...
 
float get_dip_height () const
 Returns the device independent height of this texture. More...
 
Sizef get_dip_size () const
 Returns the device independent size of this texture. More...
 
void * get_data ()
 Returns a pointer to the beginning of the pixel buffer. More...
 
const void * get_data () const
 
bool is_gpu () const
 Returns true if this pixel buffer is a GPU based one. More...
 
template<typename Type >
Type * get_data ()
 
template<typename Type >
const Type * get_data () const
 
unsigned char * get_data_uint8 ()
 Returns a pointer to the beginning of the pixel buffer as 8 bit data. More...
 
const unsigned char * get_data_uint8 () const
 
unsigned short * get_data_uint16 ()
 Returns a pointer to the beginning of the pixel buffer as 16 bit data. More...
 
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. More...
 
const unsigned int * get_data_uint32 () const
 
void * get_line (int line)
 Returns a pointer to the beginning of a specific line. More...
 
const void * get_line (int line) const
 
unsigned char * get_line_uint8 (int line)
 Returns a pointer to the beginning of a specific line as 8 bit data. More...
 
const unsigned char * get_line_uint8 (int line) const
 
unsigned short * get_line_uint16 (int line)
 Returns a pointer to the beginning of a specific line as 16 bit data. More...
 
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. More...
 
const unsigned int * get_line_uint32 (int line) const
 
bool has_transparency () const
 Returns true if format has an alpha channel. More...
 
unsigned int get_bytes_per_pixel () const
 Returns the number of bytes per pixel. More...
 
unsigned int get_bytes_per_block () const
 Returns the number of bytes per compression block. More...
 
unsigned int get_data_size () const
 Returns the size in bytes of the image data. More...
 
bool is_compressed () const
 Returns true if compressed. More...
 
TextureFormat get_format () const
 Returns the pixel format. More...
 
PixelBufferProviderget_provider () const
 Get Provider. More...
 
Colorf get_pixel (int x, int y)
 Return color of pixel at the specified coordinates. More...
 
static unsigned int get_data_size (const Size &size, TextureFormat texture_format)
 Returns the size in bytes of the image data. More...
 
static unsigned int get_bytes_per_pixel (TextureFormat texture_format)
 Returns the number of bytes per pixel. More...
 
static unsigned int get_bytes_per_block (TextureFormat texture_format)
 Returns the number of bytes per compression block. More...
 
static bool is_compressed (TextureFormat texture_format)
 Returns true if compressed. More...
 

Implementation

class PixelBuffer_Impl
 

Detailed Description

Pixel data container.


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