GPU Textures

From 3dbrew
Jump to navigation Jump to search

This page describes the GPU commands used for textures.

Command set 0x809F0081

Command Index CommandID Parameter Description
0 0x809F0081 This is used to set the current texture info used for rendering.
1 0x000F008E u32 color type This sets the current texture color type.

Texture info parameter structure for CmdID 0x809F0081

Index Word Description
0 ?
1 The low u16 is the texture image width, and the high u16 is the texture image height.
2 Texture parameters, initialized by glTexParameter().
3 ?
4 Texture data physical address >> 3. This is normally located in VRAM.
5-9 ?

Texture parameters

Bit Description GL parameter name
0 Normally this is value 0.
1 0 = GL_NEAREST, 1 = GL_LINEAR. GL_TEXTURE_MAG_FILTER
2 1 = GL_LINEAR, GL_LINEAR_MIPMAP_NEAREST, or GL_LINEAR_MIPMAP_LINEAR. Value zero otherwise. GL_TEXTURE_MIN_FILTER
3 Unused? ?
7-4 2 = texture color type 0xC, 0 otherwise.(Enable/disable texture data compression?)
11-8 0 = GL_CLAMP_TO_EDGE, 1=unknown, 2=GL_REPEAT, 3=unknown. GL_TEXTURE_WRAP_S
15-12 Same values as GL_TEXTURE_WRAP_S. GL_TEXTURE_WRAP_T
24 1 = GL_NEAREST_MIPMAP_LINEAR, or GL_LINEAR_MIPMAP_LINEAR. Value zero otherwise. GL_TEXTURE_MIN_FILTER
27-25 Unused?
30-28 When some flag=1: value1=GL_TEXTURE_2D, value0 when the input parameter is not GL_TEXTURE_2D. When some flag=0: 0=GL_TEXTURE_2D, 1-4=unknown. ?
31 Unused? ?

Texture color type parameter values for CmdID 0x000F008E

Value Description GL Format GL Data Type
0x0 RGBA8888 GL_RGBA GL_UNSIGNED_BYTE
0x1 BGR888 GL_RGB GL_UNSIGNED_BYTE
0x2 RGBA5551 GL_RGBA GL_UNSIGNED_SHORT_5_5_5_1
0x3 RGB565 GL_RGB GL_UNSIGNED_SHORT_5_6_5
0x4 RGBA4444 GL_RGBA GL_UNSIGNED_SHORT_4_4_4_4
0x5 GL_LUMINANCE_ALPHA GL_UNSIGNED_BYTE
0x6 ? ? GL_UNSIGNED_BYTE
0x7 GL_LUMINANCE GL_UNSIGNED_BYTE
0x8 GL_ALPHA GL_UNSIGNED_BYTE
0x9 ? GL_LUMINANCE_ALPHA ?
0xA ? GL_LUMINANCE
0xB ? GL_ALPHA
0xC Compression related? ?
0xD ? ?