Running out of ideas for G3DUtility

This commit is contained in:
robojumper
2025-03-28 18:42:09 +01:00
parent 0766801142
commit d35c4adeef
14 changed files with 488 additions and 45 deletions
+28 -9
View File
@@ -1,6 +1,7 @@
#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"
@@ -20,23 +21,41 @@ public:
/* 0x03 */ s8 texCoordId;
};
static u32 SetTexture(
nw4r::g3d::ResMat resMat, nw4r::g3d::ScnMdl::CopiedMatAccess *param_2, const char *name, GXTexObj *texObj,
bool copy, SetTextureResult *pResult, int param_7, int param_8
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 void setUpLightSet(nw4r::g3d::LightSetting &, nw4r::g3d::ResAnmScn, int);
static int ApplyLightMat(nw4r::g3d::ResMdl mdl, const char *prefix);
static nw4r::math::MTX34 *GetWorldMtxArray(int, int);
static bool setUpLightSet(nw4r::g3d::LightSetting &, nw4r::g3d::ResAnmScn, int);
static int searchStringResNode(nw4r::g3d::ResMdl, const char *, u16 *, u32);
static int searchStringResMat(nw4r::g3d::ResMdl, const char *, u16 *, u32);
static int searchStringResTexPlttInfo(nw4r::g3d::ResMdl, const char *, u16 *, u32);
static void *BumpAlloc(u32 size, u32 align);
static void ResetBumpAlloc() {
sOffset = 0;
}
typedef int (*MdlSearch)(nw4r::g3d::ResMdl, const char *, u16 *, u32);
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
+2 -2
View File
@@ -30,8 +30,8 @@ public:
bool setBinaryToTexture(const void *data);
bool deleteTexture(int idx);
int replaceModelTextures(nw4r::g3d::ResMdl) const;
int replaceModelTexture(int, nw4r::g3d::ResMdl) const;
u16 replaceModelTextures(nw4r::g3d::ResMdl) const;
u16 replaceModelTexture(int, nw4r::g3d::ResMdl) const;
void drawAndCaptureTexture(f32, f32, f32, f32);
void frameReset();
void correctLightObject();