2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _CTEXTURE
|
|
|
|
#define _CTEXTURE
|
2022-07-02 05:30:04 +00:00
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
2022-08-30 22:48:44 +00:00
|
|
|
#include <dolphin/gx/GXEnum.h>
|
|
|
|
|
2022-09-13 04:26:54 +00:00
|
|
|
class CInputStream;
|
|
|
|
|
2022-07-02 05:30:04 +00:00
|
|
|
class CTexture {
|
|
|
|
public:
|
|
|
|
enum EClampMode {
|
|
|
|
Clamp,
|
|
|
|
Repeat,
|
|
|
|
Mirror,
|
|
|
|
};
|
2022-09-13 04:26:54 +00:00
|
|
|
enum EAutoMipmap {
|
|
|
|
kAM_Zero,
|
|
|
|
};
|
|
|
|
enum EBlackKey {
|
|
|
|
kBK_Zero,
|
|
|
|
};
|
|
|
|
|
|
|
|
CTexture(CInputStream& stream, EAutoMipmap mip, EBlackKey bk);
|
2022-07-02 05:30:04 +00:00
|
|
|
|
|
|
|
void Load(GXTexMapID texMapId, EClampMode clampMode) const;
|
2022-08-30 22:48:44 +00:00
|
|
|
|
|
|
|
static void InvalidateTexmap(GXTexMapID id);
|
2022-09-13 04:26:54 +00:00
|
|
|
|
2022-10-09 05:37:23 +00:00
|
|
|
short GetWidth() const { return mWidth; }
|
|
|
|
short GetHeight() const { return mHeight; }
|
2022-10-09 05:13:17 +00:00
|
|
|
|
2022-09-13 04:26:54 +00:00
|
|
|
private:
|
2022-10-09 05:37:23 +00:00
|
|
|
uint mTexelFormat; // TODO: Enum
|
|
|
|
short mWidth;
|
|
|
|
short mHeight;
|
|
|
|
uchar pad[0x60];
|
2022-07-02 05:30:04 +00:00
|
|
|
};
|
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _CTEXTURE
|