A TextureData stores raw 2D pixel info for Textures. It has a width, height, and format. The TextureData can be initialized with the contents of an image file or it can be created with uninitialized contents. The supported image formats are png, jpg, hdr, dds, ktx, and astc.

Usually you can just use Textures, but TextureData can be useful if you want to manipulate individual pixels, load Textures in a background thread, or use the FFI to efficiently access the raw image data.


lovr.data.newTextureDataCreate a new TextureData.
Canvas:newTextureDataCreate a new TextureData from a Canvas texture.


TextureData:getBlobGet the bytes backing this TextureData as a `Blob`.
TextureData:getDimensionsGet the dimensions of the TextureData.
TextureData:encodeEncode the TextureData as png and write it to a file.
TextureData:getFormatGet the pixel format of the TextureData.
TextureData:getHeightGet the height of the TextureData.
TextureData:pasteCopy pixels from another TextureData to this one.
TextureData:getPixelGet the value of a pixel of the TextureData.
TextureData:setPixelSet the value of a pixel of the TextureData.
TextureData:getWidthGet the width of the TextureData.

See also