OROCHI
 
Loading...
Searching...
No Matches
GxResMaterial.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CORE_NAMESPACE_BEGIN()
13
14//===========================================================================
16//===========================================================================
18{
19 //-------------------------------------------------------------
21 //-------------------------------------------------------------
23public:
24 // RTTI定義
25 GX_RTTI_RESOURCE_NAME_ICON(GxResMaterial, GxResBase, "マテリアルリソース", GxRtti::ICON_TYPE::MATERIAL)
26 // GxClassBaseReference継承クラス用禁止宣言
28
29
30 class GxFunction : public GxClassBase
31 {
32 //-------------------------------------------------------------
34 //-------------------------------------------------------------
36 public:
37 // RTTI定義
38 GX_RTTI_CLASS(GxFunction, GxClassBase)
39
40
41 //-----------------------------------------------------------
43 //-----------------------------------------------------------
45
47 GxFunction(void) : _index(0) {}
48
50 //-----------------------------------------------------------
52 //-----------------------------------------------------------
54
56 u32 _index;
57
59 };
60
63 {
64 //-------------------------------------------------------------
66 //-------------------------------------------------------------
68 public:
69 // RTTI定義
70 GX_RTTI_CLASS(GxParameterSampler, GxClassBase)
71
72
73 //-----------------------------------------------------------
75 //-----------------------------------------------------------
77
79 GxParameterSampler(void) : _pTexture(nullptr), _samplerState(0) {}
80
82 //-----------------------------------------------------------
84 //-----------------------------------------------------------
86
88 GX_FORCE_INLINE void getPropertyTextureResource(void* const pValue) { *static_cast<GxResTexture**>(pValue) = _pTexture; }
90 GX_FORCE_INLINE void setPropertyTextureResource(const void* const pValue) { GX_SAFE_RELEASE(_pTexture); GX_SET_CLASS_BASE_REFERENCE(_pTexture, *static_cast<GxResTexture**>(const_cast<void*>(pValue))); }
91
93 //-----------------------------------------------------------
95 //-----------------------------------------------------------
97
101
103 };
104
107 {
108 //-------------------------------------------------------------
110 //-------------------------------------------------------------
112 public:
113 // RTTI定義
114 GX_RTTI_CLASS(GxParameterValue, GxClassBase)
115
116
117 //-----------------------------------------------------------
119 //-----------------------------------------------------------
121
124
126 //-----------------------------------------------------------
128 //-----------------------------------------------------------
130
133
135 };
136
138 //-----------------------------------------------------------
140 //-----------------------------------------------------------
142public:
144 GxResMaterial( void );
146 void cleanup( void ) override;
147
149 //-----------------------------------------------------------
151 //-----------------------------------------------------------
153public:
154#if GX_DEVELOP
156 void resetData(void);
157#endif //GX_DEVELOP
158protected:
160 b32 load( GxStream& in, u32 dataSize );
161#if GX_DEVELOP
163 b32 save( GxStream& out );
164#endif //GX_DEVELOP
166 void setup(void);
167
168public:
169#if GX_EDITOR
171 void getToolRtti( GxArray& arrayTool ) const override;
172#endif // GX_EDITOR
173
175 //-----------------------------------------------------------
177 //-----------------------------------------------------------
179public:
181 GX_FORCE_INLINE GxRenderMaterial* getMaterial(void) const { return const_cast<GxRenderMaterial*>(&_material); }
182
184 //-----------------------------------------------------------
186 //-----------------------------------------------------------
188protected:
193
195};
196
197#if GX_DEVELOP
198//===========================================================================
200//===========================================================================
201class GxResMaterialXml : public GxResMaterial
202{
203 //-------------------------------------------------------------
205 //-------------------------------------------------------------
207public:
208 // RTTI定義
209 GX_RTTI_RESOURCE(GxResMaterialXml, GxResMaterial)
210 // GxClassBaseReference継承クラス用禁止宣言
211 GX_PROHIBIT_CLASS_BASE_REFERENCE(GxResMaterialXml)
212
213
214 //-----------------------------------------------------------
216 //-----------------------------------------------------------
218public:
220 GxResMaterialXml( void ) {}
221
223 //-----------------------------------------------------------
225 //-----------------------------------------------------------
227protected:
229 b32 load(GxStream& stream, u32 dataSize);
231 b32 save(GxStream& stream);
232
234 //-----------------------------------------------------------
236 //-----------------------------------------------------------
238public:
239#if defined(_WINDOWS)
241 GX_FORCE_INLINE GxGuiFormShaderGraph::GxGraph* getGraph(void) { return &_graph; }
242#endif //_WINDOWS
243
245 //-----------------------------------------------------------
247 //-----------------------------------------------------------
249private:
250 GxGuiFormShaderGraph::GxGraph _graph;
251
253};
254#endif // GX_DEVELOP
255
256GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE_REFERENCE(__CLASS__)
GxClassBaseReference継承の禁止宣言(new以外の生成禁止 + コピー禁止)
Definition GxBase.h:244
#define GX_SAFE_RELEASE(__POINTER__)
解放(参照カウンタを使用する場合)
Definition GxBase.h:316
#define GX_SET_CLASS_BASE_REFERENCE(__DST__, __SRC__)
オブジェクト設定(参照カウンタを使用する場合)
Definition GxBase.h:318
#define GX_RTTI_RESOURCE(__THIS__, __BASE__)
リソースクラス型情報宣言
Definition GxRttiResource.h:102
配列クラス
Definition GxArray.h:18
オブジェクト基底クラス
Definition GxBase.h:88
マテリアル構造体
Definition GxRenderMaterial.h:18
リソース基底クラス
Definition GxResBase.h:23
関数クラス
Definition GxResMaterial.h:31
GxString _name
関数名
Definition GxResMaterial.h:55
u32 _index
関数のインデックス
Definition GxResMaterial.h:56
パラメータクラス(サンプラ)
Definition GxResMaterial.h:63
u32 _samplerState
サンプラステート
Definition GxResMaterial.h:100
GxString _name
パラメータ名
Definition GxResMaterial.h:98
GX_FORCE_INLINE void getPropertyTextureResource(void *const pValue)
テクスチャリソースを取得
Definition GxResMaterial.h:88
GX_FORCE_INLINE void setPropertyTextureResource(const void *const pValue)
テクスチャリソースを設定
Definition GxResMaterial.h:90
GxResTexture * _pTexture
テクスチャ
Definition GxResMaterial.h:99
パラメータクラス(値)
Definition GxResMaterial.h:107
GxString _name
パラメータ名
Definition GxResMaterial.h:131
GxVector4 _values
Definition GxResMaterial.h:132
マテリアルリソース
Definition GxResMaterial.h:18
GxArray _functions
関数リスト
Definition GxResMaterial.h:190
GX_FORCE_INLINE GxRenderMaterial * getMaterial(void) const
マテリアルを取得
Definition GxResMaterial.h:181
GxArray _values
パラメータ値リスト
Definition GxResMaterial.h:192
GxRenderMaterial _material
マテリアル
Definition GxResMaterial.h:189
GxArray _samplers
サンプラーリスト
Definition GxResMaterial.h:191
b32 load(GxStream &in, u32 dataSize)
リソースのロード
Definition GxResMaterial.cpp:66
テクスチャリソース
Definition GxResTexture.h:23
@ MATERIAL
マテリアル
ストリーム基礎クラス
Definition GxStream.h:20
文字列型クラス
Definition GxString.h:18
4次元ベクトル
Definition GxVector.h:582
32bitブーリアン
Definition GxDefine.h:173