summaryrefslogtreecommitdiff
path: root/include/f_op/f_op_view.h
blob: 6fabaee548ed050ecc5c90887a8f20f53d465113 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef F_F_OP_VIEW_H_
#define F_F_OP_VIEW_H_

#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/mtx/mtx.h"
#include "f_pc/f_pc_leaf.h"

struct view_process_profile_definition {
    /* 0x00 */ leaf_process_profile_definition base;
    /* 0x24 */ leafdraw_method_class* sub_method; // Subclass methods
    /* 0x28 */ u8 unk28;
    /* 0x2C */ u32 unk2C;
    /* 0x30 */ u32 unk30;
    /* 0x34 */ u32 unk34;
    /* 0x38 */ u32 unk38;
};

class lookat_class {
public:
    /* 0x00 */ cXyz mEye;
    /* 0x0C */ cXyz mCenter;
    /* 0x18 */ cXyz mUp;
};

struct scissor_class {
    /* 0x0 */ f32 mXOrig;
    /* 0x4 */ f32 mYOrig;
    /* 0x8 */ f32 mWidth;
    /* 0xC */ f32 mHeight;
};

struct view_port_class {
    /* 0x00 */ f32 mXOrig;
    /* 0x04 */ f32 mYOrig;
    /* 0x08 */ f32 mWidth;
    /* 0x0C */ f32 mHeight;
    /* 0x10 */ f32 mNearZ;
    /* 0x14 */ f32 mFarZ;
    /* 0x18 */ scissor_class mScissor;
};

struct view_class {
    /* 0x000 */ leafdraw_class base;
    /* 0x0C0 */ leafdraw_method_class* sub_method;
    /* 0x0C4 */ u8 field_0xc4;
    /* 0x0C8 */ f32 mNear;
    /* 0x0CC */ f32 mFar;
    /* 0x0D0 */ f32 mFovy;
    /* 0x0D4 */ f32 mAspect;
    /* 0x0D8 */ lookat_class mLookat;
    /* 0x0FC */ s16 mBank;
    /* 0x100 */ Mtx44 mProjMtx;
    /* 0x140 */ Mtx mViewMtx;
    /* 0x170 */ Mtx mInvViewMtx;
    /* 0x1A0 */ Mtx44 mProjViewMtx;
    /* 0x1E0 */ Mtx mViewMtxNoTrans;
};

extern leafdraw_method_class g_fopVw_Method;

#endif