Files
tp/include/JSystem/JUtility/JUTTexture.h
T

90 lines
2.5 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef JUTTEXTURE_H
#define JUTTEXTURE_H
2021-01-25 06:57:35 -08:00
2023-05-12 12:10:14 -07:00
#include "dolphin/gx/GXEnum.h"
#include "dolphin/gx/GXStruct.h"
2021-03-28 22:49:05 +02:00
#include "dolphin/types.h"
2021-01-25 06:57:35 -08:00
2023-05-12 12:10:14 -07:00
class JUTPalette;
/*
* Acts as the header to image data. Usually texture data immediately follows it,
* so any pointer arithmetic to go past the end of this structure is so that a
* variable sized allocated buffer can be accessed.
*/
struct ResTIMG {
2021-10-11 09:38:53 -07:00
/* 0x00 */ u8 format;
/* 0x01 */ u8 alphaEnabled;
2021-10-11 09:38:53 -07:00
/* 0x02 */ u16 width;
/* 0x04 */ u16 height;
/* 0x06 */ u8 wrapS;
/* 0x07 */ u8 wrapT;
/* 0x08 */ u8 indexTexture;
/* 0x09 */ u8 colorFormat;
/* 0x0A */ u16 numColors;
2021-10-11 09:38:53 -07:00
/* 0x0C */ u32 paletteOffset;
/* 0x10 */ u8 mipmapEnabled;
/* 0x11 */ u8 doEdgeLOD;
/* 0x12 */ u8 biasClamp;
2021-10-11 09:38:53 -07:00
/* 0x13 */ u8 maxAnisotropy;
/* 0x14 */ u8 minFilter;
/* 0x15 */ u8 magFilter;
/* 0x16 */ s8 minLOD;
/* 0x17 */ s8 maxLOD;
/* 0x18 */ u8 mipmapCount;
/* 0x19 */ u8 unknown;
/* 0x1A */ s16 LODBias;
/* 0x1C */ u32 imageOffset;
2022-03-22 20:42:16 -07:00
}; // Size: 0x20
2021-08-28 07:25:03 -07:00
class JUTTexture {
public:
JUTTexture() {
setCaptureFlag(false);
mEmbPalette = NULL;
mTexInfo = NULL;
}
JUTTexture(const ResTIMG* p_timg, u8 param_1) {
mEmbPalette = NULL;
storeTIMG(p_timg, param_1);
setCaptureFlag(false);
}
2021-08-28 07:25:03 -07:00
~JUTTexture();
void storeTIMG(ResTIMG const*, JUTPalette*, _GXTlut);
void storeTIMG(ResTIMG const*, u8);
void storeTIMG(ResTIMG const*, JUTPalette*);
void attachPalette(JUTPalette*);
void init();
void initTexObj(_GXTlut);
void initTexObj();
void load(_GXTexMapID);
const ResTIMG* getTexInfo() const { return mTexInfo; }
void setCaptureFlag(bool flag) { mFlags &= 2 | flag; }
u8 getCaptureFlag() const { return mFlags & 1; }
u8 getEmbPaletteDelFlag() const { return mFlags & 2; }
2023-08-06 06:12:26 +03:00
void setEmbPaletteDelFlag(bool flag) { mFlags = (mFlags & 1) | (flag << 1);}
u8 getTlutName() const { return mTlutName; }
2021-08-28 07:25:03 -07:00
private:
/* 0x00 */ GXTexObj mTexObj;
2021-08-28 07:25:03 -07:00
/* 0x20 */ const ResTIMG* mTexInfo;
/* 0x24 */ void* mTexData;
/* 0x28 */ JUTPalette* mEmbPalette;
/* 0x2C */ JUTPalette* field_0x2c;
/* 0x30 */ u8 mWrapS;
/* 0x31 */ u8 mWrapT;
/* 0x32 */ u8 mMinFilter;
/* 0x33 */ u8 mMagFilter;
2023-08-06 06:12:26 +03:00
/* 0x34 */ u16 mMinLOD;
/* 0x36 */ u16 mMaxLOD;
2021-08-28 07:25:03 -07:00
/* 0x38 */ s16 mLODBias;
/* 0x3A */ u8 mTlutName;
/* 0x3B */ u8 mFlags;
/* 0x3C */ void* field_0x3c;
};
2021-03-28 22:49:05 +02:00
#endif /* JUTTEXTURE_H */