44 typedef struct ALIGN(8)
49 GPU_TEXCOLOR format : 4;
50 GPU_TEXTURE_MODE_PARAM type : 3;
65 return (31-__builtin_clz(width < height ? width : height)) - 3;
70 return size >> (2*level);
132 return (GPU_TEXTURE_MODE_PARAM)((tex->
param>>28)&0x7);
138 if (!level)
return data;
159 tex->
param &= ~(GPU_TEXTURE_MAG_FILTER(GPU_LINEAR) | GPU_TEXTURE_MIN_FILTER(GPU_LINEAR));
160 tex->
param |= GPU_TEXTURE_MAG_FILTER(magFilter) | GPU_TEXTURE_MIN_FILTER(minFilter);
165 tex->
param &= ~GPU_TEXTURE_MIP_FILTER(GPU_LINEAR);
166 tex->
param |= GPU_TEXTURE_MIP_FILTER(filter);
171 tex->
param &= ~(GPU_TEXTURE_WRAP_S(3) | GPU_TEXTURE_WRAP_T(3));
172 tex->
param |= GPU_TEXTURE_WRAP_S(wrapS) | GPU_TEXTURE_WRAP_T(wrapT);
177 int iLodBias = (int)(lodBias*0x100);
178 if (iLodBias > 0xFFF)
180 else if (iLodBias < -0x1000)
182 tex->
lodBias = iLodBias & 0x1FFF;
void * data[6]
Definition: texture.h:6
u16 width
Definition: texture.h:26
C3D_TexCube * cube
Definition: texture.h:14
size_t size
Definition: texture.h:18
u16 lodBias
Definition: texture.h:37
GPU_TEXCOLOR fmt
Definition: texture.h:17
u32 lodParam
Definition: texture.h:34
u32 border
Definition: texture.h:31
u16 height
Definition: texture.h:25
void * data
Definition: texture.h:13
u8 maxLevel
Definition: texture.h:38
u32 dim
Definition: texture.h:22
u32 param
Definition: texture.h:30
u8 minLevel
Definition: texture.h:39
static bool C3D_TexInit(C3D_Tex *tex, u16 width, u16 height, GPU_TEXCOLOR format)
Definition: texture.h:94
static bool C3D_TexInitShadow(C3D_Tex *tex, u16 width, u16 height)
Definition: texture.h:118
static bool C3D_TexInitMipmap(C3D_Tex *tex, u16 width, u16 height, GPU_TEXCOLOR format)
Definition: texture.h:100
void C3D_TexFlush(C3D_Tex *tex)
Definition: texture.c:242
void C3D_TexBind(int unitId, C3D_Tex *tex)
Definition: texture.c:228
static int C3D_TexCalcMaxLevel(u32 width, u32 height)
Definition: texture.h:63
static void C3D_TexUpload(C3D_Tex *tex, const void *data)
Definition: texture.h:152
static bool C3D_TexInitVRAM(C3D_Tex *tex, u16 width, u16 height, GPU_TEXCOLOR format)
Definition: texture.h:112
static void * C3D_TexCubeGetImagePtr(C3D_Tex *tex, GPU_TEXFACE face, int level, u32 *size)
Definition: texture.h:147
static GPU_TEXTURE_MODE_PARAM C3D_TexGetType(C3D_Tex *tex)
Definition: texture.h:130
struct ALIGN(8)
Definition: texture.h:44
static void * C3D_TexGetImagePtr(C3D_Tex *tex, void *data, int level, u32 *size)
Definition: texture.h:135
static bool C3D_TexInitCube(C3D_Tex *tex, C3D_TexCube *cube, u16 width, u16 height, GPU_TEXCOLOR format)
Definition: texture.h:106
static void C3D_TexSetFilter(C3D_Tex *tex, GPU_TEXTURE_FILTER_PARAM magFilter, GPU_TEXTURE_FILTER_PARAM minFilter)
Definition: texture.h:157
static void C3D_TexSetLodBias(C3D_Tex *tex, float lodBias)
Definition: texture.h:175
void C3D_TexGenerateMipmap(C3D_Tex *tex, GPU_TEXFACE face)
Definition: texture.c:161
void C3D_TexLoadImage(C3D_Tex *tex, const void *data, GPU_TEXFACE face, int level)
Definition: texture.c:118
static void C3D_TexSetFilterMipmap(C3D_Tex *tex, GPU_TEXTURE_FILTER_PARAM filter)
Definition: texture.h:163
void C3D_TexShadowParams(bool perspective, float bias)
Definition: texture.c:256
static u32 C3D_TexCalcTotalSize(u32 size, int maxLevel)
Definition: texture.h:73
void C3D_TexDelete(C3D_Tex *tex)
Definition: texture.c:248
static bool C3D_TexInitShadowCube(C3D_Tex *tex, C3D_TexCube *cube, u16 width, u16 height)
Definition: texture.h:124
C3D_TexInitParams
Definition: texture.h:52
static void C3D_TexSetWrap(C3D_Tex *tex, GPU_TEXTURE_WRAP_PARAM wrapS, GPU_TEXTURE_WRAP_PARAM wrapT)
Definition: texture.h:169
static u32 C3D_TexCalcLevelSize(u32 size, int level)
Definition: texture.h:68
bool C3D_TexInitWithParams(C3D_Tex *tex, C3D_TexCube *cube, C3D_TexInitParams p)
Definition: texture.c:69
static void * C3D_Tex2DGetImagePtr(C3D_Tex *tex, int level, u32 *size)
Definition: texture.h:142