NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
eggScreen.h
1#pragma once
2
3#include <types.h>
4#include <lib/egg/gfxe/eggFrustum.h>
5#include <nw4r/math.h>
6
7namespace EGG {
8
9class Screen : public Frustum {
10public:
11 enum TVMode {
12 TV_MODE_4_3,
13 TV_MODE_16_9,
14 TV_MODE_UNK_3,
15 TV_MODE_MAX
16 };
17
18 struct DataEfb {
19 // Required for struct copy
20 struct Viewport {
21 f32 x1;
22 f32 y1;
23 f32 x2;
24 f32 y2;
25 f32 z1;
26 f32 z2;
27 } vp;
28
29 u32 sc_x;
30 u32 sc_y;
31 u32 sc_w;
32 u32 sc_h;
33
34 s32 sc_ox;
35 s32 sc_oy;
36 };
37
38 struct TVModeInfo {
39 u16 width;
40 u16 height;
41 nw4r::math::VEC2 ratios;
42 };
43
44 Screen();
45 void SetProjectionGX() const;
46 void CopyFromAnother(const Screen &);
47
48 static void Initialize(const unsigned short *, const unsigned short *, Screen *);
49 static void SetTVModeDefault();
50
51 const Screen *mParent;
52 nw4r::math::VEC2 mPosition;
53 nw4r::math::VEC2 field_0x48;
54 nw4r::math::VEC2 field_0x50;
55 mutable DataEfb mDataEfb;
56
57 static TVMode sTVMode;
58 static TVModeInfo sTVModeInfo[Screen::TV_MODE_MAX];
59};
60
61} // namespace EGG