thunderbrew/src/gx/Texture.hpp
2023-01-02 13:17:18 -06:00

83 lines
2.8 KiB
C++

#ifndef GX_TEXTURE_HPP
#define GX_TEXTURE_HPP
#include "gx/Types.hpp"
#include "gx/texture/CGxTex.hpp"
#include "gx/texture/CTexture.hpp"
typedef HOBJECT HTEXTURE;
typedef void (TEXTURE_CALLBACK)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, const void*&);
class CImVector;
void AsyncTextureWait(CTexture*);
uint32_t CalcLevelCount(uint32_t, uint32_t);
uint32_t CalcLevelOffset(uint32_t, uint32_t, uint32_t, uint32_t);
uint32_t CalcLevelSize(uint32_t, uint32_t, uint32_t, uint32_t);
uint32_t GetBitDepth(uint32_t);
uint32_t GxCalcTexelStrideInBytes(EGxTexFormat, uint32_t);
int32_t GxTexCreate(CGxTexParms const&, CGxTex*&);
int32_t GxTexCreate(EGxTexTarget, uint32_t, uint32_t, uint32_t, EGxTexFormat, EGxTexFormat, CGxTexFlags, void*, void (*)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, const void*&), const char*, CGxTex*&);
void GxTexDestroy(CGxTex* texId);
void GxTexParameters(const CGxTex* texId, CGxTexParms& parms);
bool GxTexReusable(CGxTexParms&);
void GxTexSetWrap(CGxTex* texId, EGxTexWrapMode wrapU, EGxTexWrapMode wrapV);
void GxTexUpdate(CGxTex*, int32_t, int32_t, int32_t, int32_t, int32_t);
void GxTexUpdate(CGxTex*, CiRect&, int32_t);
TEXTURE_CALLBACK GxuUpdateSingleColorTexture;
MipBits* MippedImgAllocA(uint32_t, uint32_t, uint32_t, const char*, int32_t);
uint32_t MippedImgCalcSize(uint32_t, uint32_t, uint32_t);
CGxTex* TextureAllocGxTex(EGxTexTarget, uint32_t, uint32_t, uint32_t, EGxTexFormat, CGxTexFlags, void*, void (*userFunc)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, const void*&), EGxTexFormat);
HTEXTURE TextureCacheGetTexture(char*, char*, CGxTexFlags);
HTEXTURE TextureCacheGetTexture(const CImVector&);
void TextureCacheNewTexture(CTexture*, CGxTexFlags);
void TextureCacheNewTexture(CTexture*, const CImVector&);
HTEXTURE TextureCreate(const char*, CGxTexFlags, CStatus*, int32_t);
HTEXTURE TextureCreate(uint32_t, uint32_t, EGxTexFormat, EGxTexFormat, CGxTexFlags, void*, void (*)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, const void*&), const char*, int32_t);
HTEXTURE TextureCreate(EGxTexTarget, uint32_t, uint32_t, uint32_t, EGxTexFormat, EGxTexFormat, CGxTexFlags, void*, void (*)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, const void*&), const char*, int32_t);
HTEXTURE TextureCreateSolid(const CImVector&);
int32_t TextureGetDimensions(HTEXTURE, uint32_t*, uint32_t*, int32_t);
void TextureIncreasePriority(CTexture*);
void TextureInitialize(void);
int32_t TextureIsSame(HTEXTURE textureHandle, const char* fileName);
void TextureFreeGxTex(CGxTex* texId);
CGxTex* TextureGetGxTex(CTexture*, int32_t, CStatus*);
CGxTex* TextureGetGxTex(HTEXTURE, int32_t, CStatus*);
CTexture* TextureGetTexturePtr(HTEXTURE);
#endif