mirror of
https://github.com/zeldaret/ss
synced 2026-05-24 23:21:41 -04:00
64 lines
1.9 KiB
C++
64 lines
1.9 KiB
C++
#ifndef EGG_G3D_UTILITY_H
|
|
#define EGG_G3D_UTILITY_H
|
|
|
|
#include "egg/egg_types.h"
|
|
#include "nw4r/g3d/g3d_scnmdl.h"
|
|
#include "nw4r/g3d/res/g3d_resmat.h"
|
|
#include "nw4r/math/math_types.h"
|
|
#include "rvl/MEM/mem_allocator.h"
|
|
|
|
namespace EGG {
|
|
|
|
class G3DUtility {
|
|
public:
|
|
static MEMAllocator *getAllocator() {
|
|
return sAllocator;
|
|
}
|
|
|
|
struct SetTextureResult {
|
|
/* 0x00 */ u8 _0x00[2];
|
|
/* 0x02 */ s8 texMapId;
|
|
/* 0x03 */ s8 texCoordId;
|
|
};
|
|
|
|
struct SearchResult {
|
|
/* 0x00 */ u16 nodeIdx;
|
|
/* 0x04 */ const char *name;
|
|
};
|
|
|
|
static u16 SetTexture(
|
|
nw4r::g3d::ResMat resMat, nw4r::g3d::ScnMdl::CopiedMatAccess *param_2, const char *name, const GXTexObj *texObj,
|
|
bool copy, SetTextureResult *pResult, int maxNumResults, int param_8
|
|
);
|
|
|
|
static int ApplyLightMat(nw4r::g3d::ResMdl mdl, const char *prefix);
|
|
|
|
static bool setUpLightSet(nw4r::g3d::LightSetting &, nw4r::g3d::ResAnmScn, int);
|
|
|
|
static void *BumpAlloc(u32 size, u32 align);
|
|
static void ResetBumpAlloc() {
|
|
sOffset = 0;
|
|
}
|
|
|
|
static void create(u32 size, Heap *pHeap);
|
|
|
|
static int searchStringResNode(nw4r::g3d::ResMdl mdl, const char * name, bool exactMatch, SearchResult *pResults, int maxNumResults);
|
|
static int searchStringResMat(nw4r::g3d::ResMdl mdl, const char * name, bool exactMatch, SearchResult *pResults, int maxNumResults);
|
|
static int searchStringResTexPlttInfo(nw4r::g3d::ResMdl mdl, const char * name, bool exactMatch, SearchResult *pResults, int maxNumResults);
|
|
|
|
typedef int (*MdlSearch)(nw4r::g3d::ResMdl mdl, const char * name, bool exactMatch, SearchResult *pResults, int maxNumResults);
|
|
|
|
private:
|
|
static void defaultTexMtxFunc(nw4r::math::MTX34 *pMtx, s8 camRef, s8 lightRef);
|
|
|
|
static MEMAllocator *sAllocator;
|
|
static void *sBuf;
|
|
static u32 sSize;
|
|
static u32 sOffset;
|
|
static u8 sId;
|
|
};
|
|
|
|
} // namespace EGG
|
|
|
|
#endif
|