cubos::core::gl::impl::Texture2D class

Abstract 2D texture.

Public functions

void update(std::size_t x, std::size_t y, std::size_t width, std::size_t height, const void* data, std::size_t level = 0) pure virtual
Updates the texture with new data, which must have the same format used when the texture was created.
void read(void* outputBuffer) pure virtual
Reads texture data into a buffer, which must have the same format used when the texture was created.
void copyTo(std::size_t x, std::size_t y, std::size_t width, std::size_t height, gl::PixelPackBuffer buffer) pure virtual
Copies part of the texture data into a pixel pack buffer.
void generateMipmaps() pure virtual
Generates mipmaps on this texture.

Function documentation

void cubos::core::gl::impl::Texture2D::update(std::size_t x, std::size_t y, std::size_t width, std::size_t height, const void* data, std::size_t level = 0) pure virtual

Updates the texture with new data, which must have the same format used when the texture was created.

Parameters
x Destination X coordinate.
y Destination Y coordinate.
width Width of the section which will be updated.
height Height of the section which will be updated.
data Pointer to the new data.
level Mip level to update.

void cubos::core::gl::impl::Texture2D::read(void* outputBuffer) pure virtual

Reads texture data into a buffer, which must have the same format used when the texture was created.

Parameters
outputBuffer Buffer to write the data to.

void cubos::core::gl::impl::Texture2D::copyTo(std::size_t x, std::size_t y, std::size_t width, std::size_t height, gl::PixelPackBuffer buffer) pure virtual

Copies part of the texture data into a pixel pack buffer.

Parameters
x Source X coordinate.
y Source Y coordinate.
width Width of the section which will be copied.
height Height of the section which will be copied.
buffer Buffer to copy into.

The output buffer will store data in one of the three following formats:

  • If the texture format ends with Norm, then the output format will be TextureFormat::RGBA8UInt.
  • If the texture format ends with SInt, then the output format will be TextureFormat::RGBA32SInt.
  • If the texture format ends with UInt, then the output format will be TextureFormat::RGBA32UInt.
  • Otherwise, the output format will be TextureFormat::RGBA32Float.