OROCHI
 
Loading...
Searching...
No Matches
GxResUnitInstance.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CORE_NAMESPACE_BEGIN()
13class GxUnitBase;
14//===========================================================================
16//===========================================================================
18{
19 //-------------------------------------------------------------
21 //-------------------------------------------------------------
23public:
24 // RTTI定義
26 // GxClassBaseReference継承クラス用禁止宣言
28
29
30 //-----------------------------------------------------------
32 //-----------------------------------------------------------
34public:
36 GxResUnitInstance( void );
38 void cleanup( void ) override;
39
41 //-----------------------------------------------------------
43 //-----------------------------------------------------------
45protected:
47 b32 load( GxStream& in, u32 dataSize );
48#if GX_DEVELOP
50 b32 save( GxStream& out );
51#endif //GX_DEVELOP
53 void serializeUnit(void);
54public:
56 GxUnitBase* createUnit(void);
57
59 //-----------------------------------------------------------
61 //-----------------------------------------------------------
63public:
65 constexpr GxUnitBase* getDefaultUnit(void) const { return _pUnit; }
66#if GX_DEVELOP
68 void setDefaultUnit(GxUnitBase* pUnit);
69#endif //GX_DEVELOP
70
72 //-----------------------------------------------------------
74 //-----------------------------------------------------------
76protected:
77 GX_CHAR* _pBuffer;
79
81
83};
84
85#if GX_DEVELOP
86//===========================================================================
88//===========================================================================
89class GxResUnitInstanceXml : public GxResUnitInstance
90{
91 //-------------------------------------------------------------
93 //-------------------------------------------------------------
95public:
96 // RTTI定義
97 GX_RTTI_RESOURCE(GxResUnitInstanceXml, GxResUnitInstance)
98 // GxClassBaseReference継承クラス用禁止宣言
99 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxResUnitInstanceXml)
100
101
102 //-----------------------------------------------------------
104 //-----------------------------------------------------------
106public:
108 GxResUnitInstanceXml( void ) {}
109
111 //-----------------------------------------------------------
113 //-----------------------------------------------------------
115protected:
117 GX_FORCE_INLINE b32 load(GxStream& in, u32 /*dataSize*/) { return GxResBase::loadXml(in); }
119 b32 save(GxStream& out);
121 b32 finalize(void);
122
124};
125#endif // GX_DEVELOP
126
127GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_RTTI_RESOURCE(__THIS__, __BASE__)
リソースクラス型情報宣言
Definition GxRttiResource.h:102
リソース基底クラス
Definition GxResBase.h:23
ユニットインスタンスリソース
Definition GxResUnitInstance.h:18
GX_CHAR * _pBuffer
finalizeデータ
Definition GxResUnitInstance.h:77
constexpr GxUnitBase * getDefaultUnit(void) const
デフォルトユニットを取得
Definition GxResUnitInstance.h:65
u32 _bufferSize
finalizeデータサイズ
Definition GxResUnitInstance.h:78
GxUnitBase * _pUnit
デフォルトユニット
Definition GxResUnitInstance.h:80
b32 load(GxStream &in, u32 dataSize)
リソースのロード
Definition GxResUnitInstance.cpp:54
ストリーム基礎クラス
Definition GxStream.h:20
ユニット基礎クラス
Definition GxUnitBase.h:45
32bitブーリアン
Definition GxDefine.h:173