mirror of
https://github.com/zeldaret/ss
synced 2026-06-25 01:32:01 -04:00
9c3c480b24
* g3d_calcvtx GetData seems to have changed -> dwarf says r is a local and using ofs_to_ptr didnt work * g3d_light and g3d_fog sdata2 splits and func ordering * g3d_scnproc * g3d_init * g3d_scnmdl * g3d_scnmdlsmpl * g3d_scnroot * g3d_scnobj * g3d_res* progress * g3d_resmdl OK * g3d_restev OK * g3d_resmat OK * g3d_resvtx and g3d_restex OK * g3d_resnode OK * g3d_resanm OK * g3d_resanmchr Progress * the rest of g3d_res* OK * g3d_anmvis OK * g3d_anmclr OK * Some Splitting * more OK, Inline Issue in g3d_anmtexsrt * g3d_obj, g3d_anmobj, g3d_gpu, g3d_tmem, g3d_cpu OK * g3d_state OK * g3d/dcc OK * Include fixup * More Fixups * g3d_camera OK * g3d_draw OK * g3d_calcworld OK * g3d_calcworld actually OK * g3d_workmem, g3d_dcc OK * g3d_calcview OK * g3d_anmtexsrt OK with DONT_INLINE * g3d_transform OK (Feels Cheaty) * g3d_resanmchr OK * g3d_draw1mat1shp Close * g3d_draw1mat1shp OK (Thanks Lago!). Ran symbol applying script
55 lines
1.7 KiB
C++
55 lines
1.7 KiB
C++
#ifndef NW4R_G3D_DRAW_H
|
|
#define NW4R_G3D_DRAW_H
|
|
#include <nw4r/types_nw4r.h>
|
|
|
|
#include "nw4r/g3d/res/g3d_resmat.h"
|
|
#include "nw4r/g3d/res/g3d_resmdl.h"
|
|
#include "nw4r/g3d/res/g3d_resnode.h"
|
|
#include "nw4r/g3d/res/g3d_resshp.h"
|
|
|
|
#include "nw4r/math.h" // IWYU pragma: export
|
|
|
|
namespace nw4r {
|
|
namespace g3d {
|
|
|
|
// Forward declarations
|
|
namespace G3DState {
|
|
class IndMtxOp;
|
|
}
|
|
|
|
namespace detail {
|
|
|
|
G3DState::IndMtxOp *GetIndMtxOp(ResMat mat, ResNode node, ResShp shp);
|
|
|
|
} // namespace detail
|
|
|
|
struct DrawResMdlReplacement {
|
|
u32 flag; // at 0x0
|
|
u8 *visArray; // at 0x4
|
|
ResTexObjData *texObjDataArray; // at 0x8
|
|
ResTlutObjData *tlutObjDataArray; // at 0xC
|
|
ResTexSrtData *texSrtDataArray; // at 0x10
|
|
ResChanData *chanDataArray; // at 0x14
|
|
ResGenModeData *genModeDataArray; // at 0x18
|
|
ResMatMiscData *matMiscDataArray; // at 0x1C
|
|
ResPixDL *pixDLArray; // at 0x20
|
|
ResTevColorDL *tevColorDLArray; // at 0x24
|
|
ResIndMtxAndScaleDL *indMtxAndScaleDLArray; // at 0x28
|
|
ResTexCoordGenDL *texCoordGenDLArray; // at 0x2C
|
|
ResTevData *tevDataArray; // at 0x30
|
|
ResVtxPosData **vtxPosTable; // at 0x34
|
|
ResVtxNrmData **vtxNrmTable; // at 0x38
|
|
ResVtxClrData **vtxClrTable; // at 0x3C
|
|
};
|
|
|
|
void DrawResMdlDirectly(
|
|
const ResMdl mdl, const math::MTX34 *pViewPosMtxArray, const math::MTX33 *pViewNrmMtxArray,
|
|
const math::MTX34 *pViewEnvMtxArray, const u8 *pByteCodeOpa, const u8 *pByteCodeXlu,
|
|
DrawResMdlReplacement *pReplacement, u32 drawMode
|
|
);
|
|
|
|
} // namespace g3d
|
|
} // namespace nw4r
|
|
|
|
#endif
|