Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
CharWriter.h
Go to the documentation of this file.
1#ifndef NW4HBM_UT_CHAR_WRITER_H
2#define NW4HBM_UT_CHAR_WRITER_H
3
4#include <revolution/types.h>
5
6#include "Color.h"
7#include "fontResources.h"
8
9#include "../math/types.h"
10
11#include <revolution/gx.h>
12
13namespace nw4hbm {
14 namespace ut {
15
16 class Font;
17
18 class CharWriter {
19 public:
20 typedef enum GradationMode {
21 /* 0 */ GRADMODE_NONE = 0,
22 /* 1 */ GRADMODE_H,
23 /* 2 */ GRADMODE_V,
24 /* 3 */ NUM_OF_GRADMODE
26
27 private:
28 typedef struct ColorMapping {
29 /* 0x00 */ Color min;
30 /* 0x04 */ Color max;
32
33 typedef struct VertexColor {
34 /* 0x00 */ Color lu, ru;
35 /* 0x08 */ Color ld, rd;
37
38 typedef struct TextureFilter {
39 public:
40 bool operator!=(const TextureFilter& rhs) const {
41 return atSmall != rhs.atSmall || atLarge != rhs.atLarge;
42 }
43
44 /* 0x00 */ GXTexFilter atSmall;
45 /* 0x04 */ GXTexFilter atLarge;
47
48 typedef struct TextColor {
49 /* 0x00 */ Color start;
50 /* 0x04 */ Color end;
53
54 typedef struct LoadingTexture {
55 public:
56 bool operator!=(const LoadingTexture& rhs) const {
57 return slot != rhs.slot || texture != rhs.texture || filter != rhs.filter;
58 }
59
60 void Reset() {
62 texture = NULL;
63 }
64
65 /* 0x00 */ GXTexMapID slot;
66 /* 0x04 */ void* texture;
69
70 public:
71 CharWriter();
73
74 const Font* GetFont() const;
75
76 f32 GetScaleH() const;
77 f32 GetScaleV() const;
78
79 f32 GetCursorX() const;
80 f32 GetCursorY() const;
81
82 void SetFont(const Font& font);
83 void SetColorMapping(Color min, Color max);
84
85 void SetScale(f32 hScale, f32 vScale);
86 void SetScale(f32 scale);
87
88 void SetCursor(f32 x, f32 y);
89 void SetCursor(f32 x, f32 y, f32 z);
90 void SetCursorX(f32 x);
91 void SetCursorY(f32 y);
92
93 f32 GetFontWidth() const;
94 f32 GetFontHeight() const;
95 f32 GetFontAscent() const;
96
97 bool IsWidthFixed() const;
99
100 f32 GetFixedWidth() const;
101 void SetFixedWidth(f32 width);
102
104
105 void SetTextColor(Color color);
108
109 void SetFontSize(f32 width, f32 height);
110 void SetFontSize(f32 height);
111
112 void SetupGX();
113
114 void ResetColorMapping();
115 void ResetTextureCache();
116
117 void EnableLinearFilter(bool atSmall, bool atLarge);
118
119 f32 Print(u16 code);
120
121 void MoveCursorX(f32 dx);
122 void MoveCursorY(f32 dy);
123
124 void PrintGlyph(f32 x, f32 y, f32 z, const Glyph& glyph);
125
126 void LoadTexture(const Glyph& glyph, GXTexMapID slot);
127
128 void UpdateVertexColor();
129
130 private:
131 static void SetupVertexFormat();
132
133 static void SetupGXDefault();
134 static void SetupGXWithColorMapping(Color min, Color max);
135 static void SetupGXForI();
136 static void SetupGXForRGBA();
137
141 /* 0x24 */ math::VEC2 mScale;
144 /* 0x40 */ u8 padding_[2];
145 /* 0x42 */ u8 mAlpha;
146 /* 0x43 */ bool mIsWidthFixed;
147 /* 0x44 */ f32 mFixedWidth;
148 /* 0x48 */ const Font* mFont;
149
150 static const u32 DEFAULT_COLOR_MAPPING_MIN = 0x00000000;
151 static const u32 DEFAULT_COLOR_MAPPING_MAX = 0xFFFFFFFF;
152
153 private:
155 }; // size = 0x4C
156
157 } // namespace ut
158} // namespace nw4hbm
159
160#endif
static BOOL flag
Definition DEMOAVX.c:20
static int min(int a, int b)
Definition JHIComm.cpp:155
Definition CharWriter.h:18
f32 GetFixedWidth() const
Definition ut_CharWriter.cpp:185
struct nw4hbm::ut::CharWriter::TextureFilter TextureFilter
void MoveCursorX(f32 dx)
Definition ut_CharWriter.cpp:241
struct nw4hbm::ut::CharWriter::ColorMapping ColorMapping
struct nw4hbm::ut::CharWriter::LoadingTexture LoadingTexture
void SetCursor(f32 x, f32 y)
Definition ut_CharWriter.cpp:218
f32 Print(u16 code)
Definition ut_CharWriter.cpp:190
static void SetupGXForRGBA()
Definition ut_CharWriter.cpp:408
static void SetupGXDefault()
Definition ut_CharWriter.cpp:354
const Font * mFont
Definition CharWriter.h:148
ColorMapping mColorMapping
Definition CharWriter.h:138
f32 GetFontHeight() const
Definition ut_CharWriter.cpp:162
math::VEC2 mScale
Definition CharWriter.h:141
void SetFontSize(f32 width, f32 height)
Definition ut_CharWriter.cpp:148
void PrintGlyph(f32 x, f32 y, f32 z, const Glyph &glyph)
Definition ut_CharWriter.cpp:261
static const u32 DEFAULT_COLOR_MAPPING_MAX
Definition CharWriter.h:151
static void SetupVertexFormat()
Definition ut_CharWriter.cpp:342
void SetFontSize(f32 height)
void SetCursorX(f32 x)
Definition ut_CharWriter.cpp:231
f32 GetScaleH() const
Definition ut_CharWriter.cpp:138
static void SetupGXWithColorMapping(Color min, Color max)
Definition ut_CharWriter.cpp:366
void ResetColorMapping()
Definition ut_CharWriter.cpp:102
const Font * GetFont() const
Definition ut_CharWriter.cpp:55
f32 GetCursorY() const
Definition ut_CharWriter.cpp:256
void SetCursorY(f32 y)
Definition ut_CharWriter.cpp:236
void LoadTexture(const Glyph &glyph, GXTexMapID slot)
Definition ut_CharWriter.cpp:301
void SetColorMapping(Color min, Color max)
Definition ut_CharWriter.cpp:96
f32 mFixedWidth
Definition CharWriter.h:147
bool IsWidthFixed() const
Definition ut_CharWriter.cpp:180
f32 GetCursorX() const
Definition ut_CharWriter.cpp:251
static const u32 DEFAULT_COLOR_MAPPING_MIN
Definition CharWriter.h:150
void SetScale(f32 scale)
bool mIsWidthFixed
Definition CharWriter.h:146
Color GetTextColor() const
GradationMode
Definition CharWriter.h:20
@ GRADMODE_NONE
Definition CharWriter.h:21
@ NUM_OF_GRADMODE
Definition CharWriter.h:24
@ GRADMODE_V
Definition CharWriter.h:23
@ GRADMODE_H
Definition CharWriter.h:22
void SetFont(const Font &font)
Definition ut_CharWriter.cpp:47
void EnableFixedWidth(bool flag)
struct nw4hbm::ut::CharWriter::VertexColor VertexColor
void ResetTextureCache()
Definition ut_CharWriter.cpp:107
VertexColor mVertexColor
Definition CharWriter.h:139
void UpdateVertexColor()
Definition ut_CharWriter.cpp:325
CharWriter()
Definition ut_CharWriter.cpp:34
void SetTextColor(Color color)
Definition ut_CharWriter.cpp:119
TextColor mTextColor
Definition CharWriter.h:140
f32 GetFontAscent() const
Definition ut_CharWriter.cpp:168
void SetScale(f32 hScale, f32 vScale)
Definition ut_CharWriter.cpp:132
static LoadingTexture mLoadingTexture
Definition CharWriter.h:154
~CharWriter()
Definition ut_CharWriter.cpp:45
TextureFilter mFilter
Definition CharWriter.h:143
void EnableLinearFilter(bool atSmall, bool atLarge)
Definition ut_CharWriter.cpp:174
f32 GetFontWidth() const
Definition ut_CharWriter.cpp:156
void SetFixedWidth(f32 width)
void SetupGX()
Definition ut_CharWriter.cpp:60
struct nw4hbm::ut::CharWriter::TextColor TextColor
u8 mAlpha
Definition CharWriter.h:145
void MoveCursorY(f32 dy)
Definition ut_CharWriter.cpp:246
void SetGradationMode(GradationMode mode)
Definition ut_CharWriter.cpp:112
u8 padding_[2]
Definition CharWriter.h:144
f32 GetScaleV() const
Definition ut_CharWriter.cpp:143
math::VEC3 mCursorPos
Definition CharWriter.h:142
static void SetupGXForI()
Definition ut_CharWriter.cpp:393
Definition Font.h:33
static void end(b_oh_class *i_this)
Definition d_a_b_oh.cpp:343
enum _GXTexMapID GXTexMapID
@ GX_TEXMAP_NULL
Definition GXEnum.h:200
enum _GXTexFilter GXTexFilter
u32 mode
Definition GXTev.c:56
double x double x
Definition e_atan2.c:58
double x double y
Definition e_atan2.c:58
z
Definition e_log.c:139
unsigned long u32
Definition types.h:12
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
struct nw4hbm::lyt::res::Font Font
Definition HBMAnmController.h:6
@ start
Definition strtold.c:23
Definition types.h:103
Definition types.h:125
Definition CharWriter.h:28
Color min
Definition CharWriter.h:29
Color max
Definition CharWriter.h:30
Definition CharWriter.h:54
TextureFilter filter
Definition CharWriter.h:67
void * texture
Definition CharWriter.h:66
void Reset()
Definition CharWriter.h:60
GXTexMapID slot
Definition CharWriter.h:65
bool operator!=(const LoadingTexture &rhs) const
Definition CharWriter.h:56
Definition CharWriter.h:48
Color start
Definition CharWriter.h:49
GradationMode gradationMode
Definition CharWriter.h:51
Color end
Definition CharWriter.h:50
Definition CharWriter.h:38
GXTexFilter atSmall
Definition CharWriter.h:44
bool operator!=(const TextureFilter &rhs) const
Definition CharWriter.h:40
GXTexFilter atLarge
Definition CharWriter.h:45
Definition CharWriter.h:33
Color ru
Definition CharWriter.h:34
Color rd
Definition CharWriter.h:35
Color ld
Definition CharWriter.h:35
Color lu
Definition CharWriter.h:34
Definition Color.h:10
Definition fontResources.h:24