|
| STATUS_ADD_DEFINITIONS (texStatusDefinitions) |
|
Status | tex_validate (const Tex *t) |
| Is the texture object valid and self-consistent? More...
|
|
Status | tex_validate_plain_format (size_t bpp, size_t flags) |
| check if the given texture format is acceptable: 8bpp grey, 24bpp color or 32bpp color+alpha (BGR / upside down are permitted). More...
|
|
void | tex_util_foreach_mipmap (size_t w, size_t h, size_t bpp, const u8 *pixels, int levels_to_skip, size_t data_padding, MipmapCB cb, void *RESTRICT cbData) |
| for a series of mipmaps stored from base to highest, call back for each level. More...
|
|
static void | create_level (size_t level, size_t level_w, size_t level_h, const u8 *RESTRICT level_data, size_t level_dataSize, void *RESTRICT cbData) |
|
static Status | add_mipmaps (Tex *t, size_t w, size_t h, size_t bpp, void *newData, size_t dataSize) |
|
| TIMER_ADD_CLIENT (tc_plain_transform) |
|
static Status | plain_transform (Tex *t, size_t transforms) |
|
| TIMER_ADD_CLIENT (tc_transform) |
|
Status | tex_transform (Tex *t, size_t transforms) |
| Change <t>'s pixel format. More...
|
|
Status | tex_transform_to (Tex *t, size_t new_flags) |
| Change <t>'s pixel format (2nd version) (note: this is equivalent to tex_transform(t, t->flags^new_flags). More...
|
|
void | tex_set_global_orientation (int o) |
| Set the orientation to which all loaded images will automatically be converted (excepting file formats that don't specify their orientation, i.e. More...
|
|
static void | flip_to_global_orientation (Tex *t) |
|
bool | tex_orientations_match (size_t src_flags, size_t dst_orientation) |
| indicate if the two vertical orientations match. More...
|
|
bool | tex_is_known_extension (const VfsPath &pathname) |
| Is the file's extension that of a texture format supported by tex_load? More...
|
|
Status | tex_wrap (size_t w, size_t h, size_t bpp, size_t flags, const shared_ptr< u8 > &data, size_t ofs, Tex *t) |
| store the given image data into a Tex object; this will be as if it had been loaded via tex_load. More...
|
|
void | tex_free (Tex *t) |
| free all resources associated with the image and make further use of it impossible. More...
|
|
u8 * | tex_get_data (const Tex *t) |
| rationale: since Tex is a struct, its fields are accessible to callers. More...
|
|
u32 | tex_get_average_colour (const Tex *t) |
| return the ARGB value of the 1x1 mipmap level of the texture. More...
|
|
static void | add_level_size (size_t level, size_t level_w, size_t level_h, const u8 *RESTRICT level_data, size_t level_dataSize, void *RESTRICT cbData) |
|
size_t | tex_img_size (const Tex *t) |
| return total byte size of the image pixels. More...
|
|
size_t | tex_hdr_size (const VfsPath &filename) |
| return the minimum header size (i.e. More...
|
|
Status | tex_decode (const shared_ptr< u8 > &data, size_t dataSize, Tex *t) |
| decode an in-memory texture file into texture object. More...
|
|
Status | tex_encode (Tex *t, const OsPath &extension, DynArray *da) |
| encode a texture into a memory buffer in the desired file format. More...
|
|
Status tex_decode |
( |
const shared_ptr< u8 > & |
data, |
|
|
size_t |
data_size, |
|
|
Tex * |
t |
|
) |
| |
decode an in-memory texture file into texture object.
FYI, currently BMP, TGA, JPG, JP2, PNG, DDS are supported - but don't rely on this (not all codecs may be included).
- Parameters
-
data | Input data. |
data_size | Its size [bytes]. |
t | Output texture object. |
- Returns
- Status.
Definition at line 717 of file tex.cpp.
size_t tex_hdr_size |
( |
const VfsPath & |
filename | ) |
|
return the minimum header size (i.e.
offset to pixel data) of the file format corresponding to the filename.
rationale: this can be used to optimize calls to tex_write: when allocating the buffer that will hold the image, allocate this much extra and pass the pointer as base+hdr_size. this allows writing the header directly into the output buffer and makes for zero-copy IO.
- Parameters
-
filename | Filename; only the extension (that after '.') is used. case-insensitive. |
- Returns
- size [bytes] or 0 on error (i.e. no codec found).
Definition at line 703 of file tex.cpp.
Status tex_wrap |
( |
size_t |
w, |
|
|
size_t |
h, |
|
|
size_t |
bpp, |
|
|
size_t |
flags, |
|
|
const shared_ptr< u8 > & |
data, |
|
|
size_t |
ofs, |
|
|
Tex * |
t |
|
) |
| |
store the given image data into a Tex object; this will be as if it had been loaded via tex_load.
rationale: support for in-memory images is necessary for emulation of glCompressedTexImage2D and useful overall. however, we don't want to provide an alternate interface for each API; these would have to be changed whenever fields are added to Tex. instead, provide one entry point for specifying images. note: since we do not know how <img> was allocated, the caller must free it themselves (after calling tex_free, which is required regardless of alloc type).
we need only add bookkeeping information and "wrap" it in our Tex struct, hence the name.
- Parameters
-
w,h | Pixel dimensions. |
bpp | Bits per pixel. |
flags | TexFlags. |
data | Img texture data. note: size is calculated from other params. |
ofs | |
t | output texture object. |
- Returns
- Status
Definition at line 593 of file tex.cpp.