OROCHI
 
Loading...
Searching...
No Matches
GxMovieCaption.h
Go to the documentation of this file.
1//===========================================================================
10//===========================================================================
11#pragma once
12
13GX_MOVIE_NAMESPACE_BEGIN()
14
15//===========================================================================
17//===========================================================================
19{
20 //-------------------------------------------------------------
22 //-------------------------------------------------------------
24public:
25 // RTTI宣言
26 GX_RTTI_CLASS( GxMovieCaption, GxClassBase)
27 // システムのアロケータからnewを行う
28 GX_OPERATOR_NEW_DELETE_USE_ARRAY(GxAllocatorList::ALLOCATOR_TYPE::SYSTEM)
29 // GxClassBase継承クラス用禁止宣言
31
32 // インナークラス
33 class GxDataCaption;
34 class GxDataRuby;
35
37 enum class ALIGN
38 {
39 LEFT = 0,
40 CENTER,
41 RIGHT,
42 };
43
45 struct GxRuby
46 {
47 GX_CSTR _text;
50 };
51
53 struct GxCaption
54 {
55 u32 _id;
61
64
65 GX_CSTR _text;
66 };
67
69 //-------------------------------------------------------------
71 //-------------------------------------------------------------
73public:
75 GxMovieCaption( void );
77 ~GxMovieCaption( void ) override;
78
80 b32 initialize( GX_CSTR filePath, GX_CSTR rubyfilePath );
82 b32 isFinishedInitialize(void);
84 void terminate( void );
85
87 //-------------------------------------------------------------
89 //-------------------------------------------------------------
91
93 s32 getCaption(GxCaption* pCation, u32 numArray, f32 time);
94
96 s32 getRuby(GxRuby* pRuby, u32 numArray, const GxCaption& caption);
97
99 //-------------------------------------------------------------
101 //-------------------------------------------------------------
103private:
104 GxDataCaption* _pDataCaption;
105 GxDataRuby* _pDataRuby;
106
108};
109
110//===========================================================================
112//===========================================================================
114{
115 //-------------------------------------------------------------
117 //-------------------------------------------------------------
119public:
120 // RTTI宣言
121 GX_RTTI_CLASS(GxDataCaption, GxClassBase)
122 // システムのアロケータからnewを行う
123 GX_OPERATOR_NEW_DELETE_USE_ARRAY(GxAllocatorList::ALLOCATOR_TYPE::SYSTEM)
124
125private:
127 enum class COLUMN
128 {
129 START_TIME = 0,
130 END_TIME,
131 POSITION_X,
132 POSITION_Y,
133 ALIGNMENT,
134 FONT_SIZE,
135 RUBY_SIZE,
136 TEXT,
137 };
138
139 enum class DATA
140 {
141 NULL_ = -1,
142 };
143
145 static constexpr u32 ROW_START = 0;
146
148 //-----------------------------------------------------------
150 //-----------------------------------------------------------
152public:
154 GxDataCaption(void);
156 ~GxDataCaption(void) override;
158 b32 loadResource(GX_CSTR path);
161
163 //-----------------------------------------------------------
165 //-----------------------------------------------------------
167
169 GX_FORCE_INLINE b32 isLoad(void) const { return ((_pResource == nullptr) ? false : true); }
171 constexpr u32 getMaxLine(void) const { return (_pResource->getNumRow() - ROW_START); }
173 GX_FORCE_INLINE f32 getStartTime(u32 id) const { return *static_cast<f32*>(_pResource->getValue(static_cast<u32>(COLUMN::START_TIME), ROW_START + id)); }
175 GX_FORCE_INLINE f32 getEndTime(u32 id) const { return *static_cast<f32*>(_pResource->getValue(static_cast<u32>(COLUMN::END_TIME), ROW_START + id)); }
177 GX_FORCE_INLINE f32 getPositionX(u32 id) const { return *static_cast<f32*>(_pResource->getValue(static_cast<u32>(COLUMN::POSITION_X), ROW_START + id)); }
179 GX_FORCE_INLINE f32 getPositionY(u32 id) const { return *static_cast<f32*>(_pResource->getValue(static_cast<u32>(COLUMN::POSITION_Y), ROW_START + id)); }
181 GX_FORCE_INLINE s32 getAlignType(u32 id) const { return *static_cast<s32*>(_pResource->getValue(static_cast<u32>(COLUMN::ALIGNMENT), ROW_START + id)); }
183 GX_FORCE_INLINE f32 getFontSize(u32 id) const { return *static_cast<f32*>(_pResource->getValue(static_cast<u32>(COLUMN::FONT_SIZE), ROW_START + id)); }
185 GX_FORCE_INLINE f32 getRubySize(u32 id) const { return *static_cast<f32*>(_pResource->getValue(static_cast<u32>(COLUMN::RUBY_SIZE), ROW_START + id)); }
187 GX_FORCE_INLINE GX_CSTR getText(u32 id) const { return static_cast<GX_CSTR>(_pResource->getValue(static_cast<u32>(COLUMN::TEXT), ROW_START + id)); }
188
190 //-----------------------------------------------------------
192 //-----------------------------------------------------------
194protected:
196
198};
199
200//===========================================================================
202//===========================================================================
204{
205 //-------------------------------------------------------------
207 //-------------------------------------------------------------
209public:
210 // RTTI定義
211 GX_RTTI_CLASS(GxDataRuby, GxClassBase)
212 // システムのアロケータからnewを行う
213 GX_OPERATOR_NEW_DELETE_USE_ARRAY(GxAllocatorList::ALLOCATOR_TYPE::SYSTEM)
214
215private:
217 enum class COLUMN
218 {
219 ID = 0,
220 START_POSITION,
221 END_POSITION,
222 TEXT,
223 };
224
226 enum class DATA
227 {
228 NULL_ = -1,
229 };
231 static constexpr u32 ROW_START = 0;
232
234 //-----------------------------------------------------------
236 //-----------------------------------------------------------
238public:
240 GxDataRuby(void);
242 ~GxDataRuby(void) override;
244 b32 loadResource(GX_CSTR path);
247
249 //-----------------------------------------------------------
251 //-----------------------------------------------------------
253
255 GX_FORCE_INLINE b32 isLoad(void) const { return _pResource ? true : false; }
257 constexpr u32 getMaxLine(void) const { return (_pResource->getNumRow() - ROW_START); }
259 GX_FORCE_INLINE s32 getId(u32 id) const { return *static_cast<s32*>(_pResource->getValue(static_cast<u32>(COLUMN::ID), ROW_START + id)); }
261 GX_FORCE_INLINE s32 getStartPosition(u32 id) const { return *static_cast<s32*>(_pResource->getValue(static_cast<u32>(COLUMN::START_POSITION), ROW_START + id)); }
263 GX_FORCE_INLINE s32 getEndPosition(u32 id) const { return *static_cast<s32*>(_pResource->getValue(static_cast<u32>(COLUMN::END_POSITION), ROW_START + id)); }
265 GX_FORCE_INLINE GX_CSTR getText(u32 id) const { return static_cast<GX_CSTR>(_pResource->getValue(static_cast<u32>(COLUMN::TEXT), ROW_START + id)); }
266
268 //-----------------------------------------------------------
270 //-----------------------------------------------------------
272protected:
274
276};
277
278GX_MOVIE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
オブジェクト基底クラス
Definition GxBase.h:88
GxDataCaption.
Definition GxMovieCaption.h:114
GX_FORCE_INLINE f32 getPositionX(u32 id) const
X座標取得
Definition GxMovieCaption.h:177
constexpr u32 getMaxLine(void) const
MAXラインの取得
Definition GxMovieCaption.h:171
b32 isFinishedLoadResource(void)
リソースの読み込み終了チェック
Definition GxMovieCaption.cpp:248
~GxDataCaption(void) override
デストラクタ
Definition GxMovieCaption.cpp:202
GX_FORCE_INLINE f32 getPositionY(u32 id) const
Y座標取得
Definition GxMovieCaption.h:179
b32 loadResource(GX_CSTR path)
リソースの読み込み
Definition GxMovieCaption.cpp:212
GX_FORCE_INLINE GX_CSTR getText(u32 id) const
テキスト取得
Definition GxMovieCaption.h:187
GX_FORCE_INLINE f32 getEndTime(u32 id) const
終了時間取得
Definition GxMovieCaption.h:175
GX_FORCE_INLINE f32 getFontSize(u32 id) const
フォントサイズ取得
Definition GxMovieCaption.h:183
GxResMovieCellSheet * _pResource
リソース
Definition GxMovieCaption.h:195
GX_FORCE_INLINE f32 getRubySize(u32 id) const
ルビサイズ取得
Definition GxMovieCaption.h:185
GX_FORCE_INLINE f32 getStartTime(u32 id) const
開始時間取得
Definition GxMovieCaption.h:173
GX_FORCE_INLINE s32 getAlignType(u32 id) const
アラインメントタイプ取得
Definition GxMovieCaption.h:181
GxDataCaption(void)
デフォルトコンストラクタ
Definition GxMovieCaption.cpp:194
GX_FORCE_INLINE b32 isLoad(void) const
ロードされているかどうか判定
Definition GxMovieCaption.h:169
ルビデータクラス
Definition GxMovieCaption.h:204
GX_FORCE_INLINE s32 getEndPosition(u32 id) const
終了位置取得
Definition GxMovieCaption.h:263
constexpr u32 getMaxLine(void) const
MAXラインの取得
Definition GxMovieCaption.h:257
GxResMovieCellSheet * _pResource
リソース
Definition GxMovieCaption.h:273
b32 isFinishedLoadResource(void)
リソースの読み込み終了判定
Definition GxMovieCaption.cpp:331
~GxDataRuby(void) override
デストラクタ
Definition GxMovieCaption.cpp:285
GxDataRuby(void)
デフォルトコンストラクタ
Definition GxMovieCaption.cpp:277
GX_FORCE_INLINE b32 isLoad(void) const
ロードされているか判定
Definition GxMovieCaption.h:255
b32 loadResource(GX_CSTR path)
リソースの読み込み
Definition GxMovieCaption.cpp:295
GX_FORCE_INLINE s32 getId(u32 id) const
ID取得
Definition GxMovieCaption.h:259
GX_FORCE_INLINE GX_CSTR getText(u32 id) const
テキスト取得
Definition GxMovieCaption.h:265
GX_FORCE_INLINE s32 getStartPosition(u32 id) const
開始位置取得
Definition GxMovieCaption.h:261
ムービー字幕クラス
Definition GxMovieCaption.h:19
ALIGN
基準位置指定
Definition GxMovieCaption.h:38
セルシートリソースクラス
Definition GxResMovieCellSheet.h:19
constexpr u32 getNumRow(void) const
行の数取得
Definition GxResMovieCellSheet.h:69
GX_FORCE_INLINE void * getValue(u32 column, u32 row) const
セルの値を取得
Definition GxResMovieCellSheet.h:65
字幕情報構造体
Definition GxMovieCaption.h:54
f32 _rubyFontSize
ルビフォントサイズ
Definition GxMovieCaption.h:63
f32 _fontSize
フォントサイズ
Definition GxMovieCaption.h:62
GX_CSTR _text
テキスト
Definition GxMovieCaption.h:65
u32 _id
ID.
Definition GxMovieCaption.h:55
f32 _positionX
X座標
Definition GxMovieCaption.h:58
f32 _positionY
Y座標
Definition GxMovieCaption.h:59
f32 _endTime
終了時間
Definition GxMovieCaption.h:57
ALIGN _align
アラインメント
Definition GxMovieCaption.h:60
f32 _startTime
開始時間
Definition GxMovieCaption.h:56
ルビ構造体
Definition GxMovieCaption.h:46
s32 _startPosition
開始位置
Definition GxMovieCaption.h:48
s32 _endPosition
終了位置
Definition GxMovieCaption.h:49
GX_CSTR _text
テキスト
Definition GxMovieCaption.h:47
32bitブーリアン
Definition GxDefine.h:173