KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
Texturing

API for managing PowerVR textures. More...

Modules

 Flags
 Texture loading constants.
 
 Formats
 PowerVR texture formats.
 

Functions

void pvr_txr_load (void *src, pvr_ptr_t dst, uint32_t count)
 Load raw texture data from an SH-4 buffer into PVR RAM.
 
void pvr_txr_load_ex (void *src, pvr_ptr_t dst, uint32_t w, uint32_t h, uint32_t flags)
 Load texture data from an SH-4 buffer into PVR RAM, twiddling it in the process.
 
void pvr_txr_load_kimg (kos_img_t *img, pvr_ptr_t dst, uint32_t flags)
 Load a KOS Platform Independent Image (subject to constraint checking).
 

Detailed Description

API for managing PowerVR textures.

Helper functions for handling texture tasks of various kinds.

Function Documentation

◆ pvr_txr_load()

void pvr_txr_load ( void *  src,
pvr_ptr_t  dst,
uint32_t  count 
)

Load raw texture data from an SH-4 buffer into PVR RAM.

This essentially just acts as a memcpy() from main RAM to PVR RAM, using the Store Queues and 64-bit TA bus.

Parameters
srcThe location in main RAM holding the texture.
dstThe location in PVR RAM to copy to.
countThe size of the texture in bytes (must be a multiple of 32).

◆ pvr_txr_load_ex()

void pvr_txr_load_ex ( void *  src,
pvr_ptr_t  dst,
uint32_t  w,
uint32_t  h,
uint32_t  flags 
)

Load texture data from an SH-4 buffer into PVR RAM, twiddling it in the process.

This function loads a texture to the PVR's RAM with the specified set of flags. It will currently always twiddle the data, whether you ask it to or not, and many of the parameters are just plain not supported at all... Pretty much the only supported flag, other than the format ones is the PVR_TXRLOAD_INVERT_Y one.

This will be slower than using pvr_txr_load() in pretty much all cases, so unless you need to twiddle your texture, just use that instead.

Parameters
srcThe location to copy from.
dstThe location to copy to.
wThe width of the texture, in pixels.
hThe height of the texture, in pixels.
flagsSome set of flags, ORed together.
See also
Flags

◆ pvr_txr_load_kimg()

void pvr_txr_load_kimg ( kos_img_t img,
pvr_ptr_t  dst,
uint32_t  flags 
)

Load a KOS Platform Independent Image (subject to constraint checking).

This function loads a KOS Platform Independent image to the PVR's RAM with the specified set of flags. This function, unlike pvr_txr_load_ex() supports everything in the flags available, other than what's explicitly marked as not supported.

Parameters
imgThe image to load.
dstThe location to copy to.
flagsSome set of flags, ORed together.
See also
Flags
Note
Unless you explicitly tell this function to not twiddle the texture (by ORing PVR_TXRLOAD_FMT_NOTWIDDLE or it's equivalent PVR_TXRLOAD_FMT_TWIDDLED with flags), this function will twiddle the texture while loading. Keep that in mind when setting the texture format in polygon headers later.
You cannot specify both PVR_TXRLOAD_FMT_NOTWIDDLE (or equivalently PVR_TXRLOAD_FMT_TWIDDLED) and PVR_TXRLOAD_INVERT_Y in the flags.
DMA and Store Queue based loading is not available from this function if it twiddles the texture while loading.