clan::TransferTexture Class Reference

Texture Transfer class. More...

#include <transfer_texture.h>

+ Inheritance diagram for clan::TransferTexture:

Public Member Functions

 TransferTexture ()
 Constructs a null instance.
 
 TransferTexture (GraphicContext &gc, const PixelBuffer &pbuff, PixelBufferDirection direction=PixelBufferDirection::data_to_gpu, BufferUsage usage=BufferUsage::stream_draw)
 Constructs a GPU Transfer Buffer from an existing pixelbuffer.
 
 TransferTexture (GraphicContext &gc, int width, int height, PixelBufferDirection direction=PixelBufferDirection::data_to_gpu, TextureFormat texture_format=TextureFormat::rgba8, const void *data=nullptr, BufferUsage usage=BufferUsage::stream_draw)
 Constructs a GPU Transfer Buffer.
 
 TransferTexture (std::unique_ptr< PixelBufferProvider > provider)
 Constructs a GPU Transfer Buffer.
 
 ~TransferTexture () override
 
- Public Member Functions inherited from clan::PixelBuffer
 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 (std::unique_ptr< 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
 
PixelBufferProviderget_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.
 

Additional Inherited Members

- Static Public Member Functions inherited from clan::PixelBuffer
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.
 

Detailed Description

Texture Transfer class.

Constructor & Destructor Documentation

◆ TransferTexture() [1/4]

clan::TransferTexture::TransferTexture ( )

Constructs a null instance.

◆ TransferTexture() [2/4]

clan::TransferTexture::TransferTexture ( std::unique_ptr< PixelBufferProvider > provider)

Constructs a GPU Transfer Buffer.

Parameters
provider= Font Provider

◆ TransferTexture() [3/4]

clan::TransferTexture::TransferTexture ( GraphicContext & gc,
int width,
int height,
PixelBufferDirection direction = PixelBufferDirection::data_to_gpu,
TextureFormat texture_format = TextureFormat::rgba8,
const void * data = nullptr,
BufferUsage usage = BufferUsage::stream_draw )

Constructs a GPU Transfer Buffer.

Parameters
gc= Graphic Context
width= value
height= value
direction= prefered direction that you will use tranferring the pixel buffer data
sized_format= Texture Format
data= data to copy from (May be NULL)
usage= Buffer Usage

References clan::data_to_gpu, clan::rgba8, and clan::stream_draw.

◆ TransferTexture() [4/4]

clan::TransferTexture::TransferTexture ( GraphicContext & gc,
const PixelBuffer & pbuff,
PixelBufferDirection direction = PixelBufferDirection::data_to_gpu,
BufferUsage usage = BufferUsage::stream_draw )

Constructs a GPU Transfer Buffer from an existing pixelbuffer.

Parameters
gc= Graphic Context
pbuff= The pixelbuffer to copy from
direction= prefered direction that you will use tranferring the pixel buffer data
usage= Buffer Usage

References clan::PixelBuffer::PixelBuffer(), clan::data_to_gpu, and clan::stream_draw.

◆ ~TransferTexture()

clan::TransferTexture::~TransferTexture ( )
override

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