OROCHI
 
Loading...
Searching...
No Matches
GxPrimitive.h
Go to the documentation of this file.
1//===========================================================================
11//===========================================================================
12#pragma once
13
14GX_CORE_NAMESPACE_BEGIN()
15
16//---------------------------------------------------------------------------
18//---------------------------------------------------------------------------
26
27//---------------------------------------------------------------------------
29//---------------------------------------------------------------------------
31{
32 WIRE,
33 SOLID,
35};
36
37//---------------------------------------------------------------------------
39//---------------------------------------------------------------------------
47
48//---------------------------------------------------------------------------
50//---------------------------------------------------------------------------
52{
53 ZERO,
54 ONE,
55 RGB,
56 R,
57 G,
58 B,
59 A,
60 L,
61 MAX,
62};
63
64//---------------------------------------------------------------------------
66//---------------------------------------------------------------------------
68{
69 ZERO,
70 HALF,
71 ONE,
72 A,
73 MAX,
74};
75
76//---------------------------------------------------------------------------
78//---------------------------------------------------------------------------
90
91//---------------------------------------------------------------------------
93//---------------------------------------------------------------------------
95{
96 SEPARATE_ALPHATEST = (1 << 0),
97};
98
99//---------------------------------------------------------------------------
101//---------------------------------------------------------------------------
103{
104 //-----------------------------------------------------------
106 //-----------------------------------------------------------
108public:
139
141 //-----------------------------------------------------------
143 //-----------------------------------------------------------
145public:
149 GxPrimitiveMaterial(GxRenderBlendState blendState, u32 attribute, PRIMITIVE_TEXTURE_REMAP_COLOR textureRemapColor, PRIMITIVE_TEXTURE_REMAP_ALPHA textureRemapAlpha);
150
152 //-------------------------------------------------------------
154 //-------------------------------------------------------------
156
158 friend GX_FORCE_INLINE b32 operator == (const GxPrimitiveMaterial& material0, const GxPrimitiveMaterial& material1) {
159 return ( material0._access32 == material1._access32) &&
160 (material0._hTexture == material1._hTexture) &&
161 (material0._hTextureSecond == material1._hTextureSecond) &&
162 (material0._samplerState._access32 == material1._samplerState._access32) &&
163 (material0._colorScale == material1._colorScale) &&
164 (material0._alphaRefValue == material1._alphaRefValue) &&
165 (material0._projectionMatrixId == material1._projectionMatrixId) &&
166 (material0._modifier == material1._modifier) &&
168 }
170 friend GX_FORCE_INLINE b32 operator != (const GxPrimitiveMaterial& material0, const GxPrimitiveMaterial& material1) { return !operator==(material0, material1); }
171
173 //-----------------------------------------------------------
175 // (パラメータを追加したら比較オペレータの実装を忘れないでください)
176 //-----------------------------------------------------------
178
179 union
180 {
181 struct
182 {
183#if GX_BITFIELD_LITTLEENDIAN // GxRenderBlendState と同じにする事
184 u32 _blendEnable :1;
185 u32 _colorOperation :3;
186 u32 _colorFactorSrc :4;
187 u32 _colorFactorDst :4;
188 u32 _alphaOperation :3;
189 u32 _alphaFactorSrc :4;
190 u32 _alphaFactorDst :4;
191 u32 _reserve :9;
192#else //GX_BITFIELD_LITTLEENDIAN
193 u32 _reserve :9;
201#endif // !GX_BITFIELD_LITTLEENDIAN
202 };
203 struct
204 {
205#if GX_BITFIELD_LITTLEENDIAN
206 u32 _padding :23;
207 u32 _attribute :4;
210#else //GX_BITFIELD_LITTLEENDIAN
213 u32 _attribute :4;
214 u32 _padding :23;
215#endif // !GX_BITFIELD_LITTLEENDIAN
216 };
218 };
228
229#if GX_DEVELOP
230 f32 _gradationParam[4];
231#endif //GX_DEVELOP
232
234};
235
236GX_CORE_NAMESPACE_END()
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
PRIMITIVE_TEXTURE_REMAP_COLOR
テクスチャリマップ(カラーチャンネル)
Definition GxPrimitive.h:52
PRIMITIVE_ATTRIBUTE
属性
Definition GxPrimitive.h:41
@ PRIMITIVE_ATTRIBUTE_LIGHTING
ライティング有効
Definition GxPrimitive.h:44
@ PRIMITIVE_ATTRIBUTE_DISABLE_ZTEST
Zテスト無効
Definition GxPrimitive.h:42
@ PRIMITIVE_ATTRIBUTE_CUSTOM
カスタムマテリアル
Definition GxPrimitive.h:45
@ PRIMITIVE_ATTRIBUTE_ZWRITE
Z書き込み有効
Definition GxPrimitive.h:43
PRIMITIVE_TEXTURE_REMAP_ALPHA
テクスチャリマップ(アルファチャンネル)
Definition GxPrimitive.h:68
PRIMITIVE_FILL_MODE
塗りつぶしモード
Definition GxPrimitive.h:31
@ SOLID_EDGE
塗りつぶし(エッジ付き)
@ WIRE
ワイヤーフレーム
@ SOLID
塗りつぶし
PRIMITIVE_RENDER_STATE
プリミティブ描画で使用される共通のステートを表すフラグ
Definition GxPrimitive.h:80
@ PRIMITIVE_RENDER_STATE_SCISSOR_TEST
RENDER_STATE_SCISSOR_TEST_ENABLE.
Definition GxPrimitive.h:83
@ PRIMITIVE_RENDER_STATE_COLOR_WRITE_MASK
RENDER_STATE_COLOR_WRITE_MASK.
Definition GxPrimitive.h:85
@ PRIMITIVE_RENDER_STATE_VIEWPORT
setViewport(), setScissorRect()
Definition GxPrimitive.h:81
@ PRIMITIVE_RENDER_STATE_FACE_CULLING_MODE
RENDER_STATE_FACE_CULLING_MODE.
Definition GxPrimitive.h:86
@ PRIMITIVE_RENDER_STATE_STENCIL_TEST
setStencilTestState()
Definition GxPrimitive.h:82
@ PRIMITIVE_RENDER_STATE_DEPTH_STENCIL
setDepthStencil()
Definition GxPrimitive.h:88
@ PRIMITIVE_RENDER_STATE_ALPHA_TEST
setAlphaTestState()
Definition GxPrimitive.h:84
@ PRIMITIVE_RENDER_STATE_RENDER_TARGET
setRenderTarget()
Definition GxPrimitive.h:87
PRIMITIVE_MODIFIER
その他フラグ
Definition GxPrimitive.h:95
@ SEPARATE_ALPHATEST
アルファテストは色と抜き値を分離する
ハンドラ基本クラス
Definition GxCallback.h:27
Definition GxColor.h:21
2次元浮動小数点数クラス
Definition GxStruct.h:22
3次元浮動小数点数クラス
Definition GxStruct.h:91
プリミティブマテリアル
Definition GxPrimitive.h:103
f32 _alphaRefValue
0以上ならアルファテストシェーダーを通る
Definition GxPrimitive.h:225
GxRenderSamplerState _samplerState
サンプラステート
Definition GxPrimitive.h:221
GX_HANDLE _hTextureSecond
テクスチャハンドル(2枚目)
Definition GxPrimitive.h:220
u32 _padding
BlendState用パディング
Definition GxPrimitive.h:214
u32 _attribute
属性
Definition GxPrimitive.h:213
static const GxPrimitiveMaterial OPACITY
不透明
Definition GxPrimitive.h:120
PRIMITIVE_TEXTURE_REMAP_COLOR _textureRemapColor
テクスチャカラーチャンネルリマップ
Definition GxPrimitive.h:212
static const GxPrimitiveMaterial COLOR_SCREEN_2D
2Dスクリーンブレンド
Definition GxPrimitive.h:134
static const GxPrimitiveMaterial DEFAULT_3D
3Dデフォルト
Definition GxPrimitive.h:122
u32 _access32
データ
Definition GxPrimitive.h:217
static const GxPrimitiveMaterial OPAQUE_2D
2D不透明
Definition GxPrimitive.h:138
static const GxPrimitiveMaterial SUB_2D
2D減算
Definition GxPrimitive.h:128
u32 _colorFactorDst
ブレンド係数
Definition GxPrimitive.h:197
u32 _projectionMatrixId
2D用射影行列ID 0(デフォルト)
Definition GxPrimitive.h:226
friend GX_FORCE_INLINE b32 operator!=(const GxPrimitiveMaterial &material0, const GxPrimitiveMaterial &material1)
不一致
Definition GxPrimitive.h:170
u32 _reserve
予備
Definition GxPrimitive.h:193
GxCallback::GxHandlerBase _handler
カスタムマテリアルコールバック
Definition GxPrimitive.h:222
void * _pUserData
ユーザーカスタム情報
Definition GxPrimitive.h:223
u32 _blendEnable
有効/無効
Definition GxPrimitive.h:200
u32 _colorOperation
ブレンド処理
Definition GxPrimitive.h:199
GxPrimitiveMaterial(void)
デフォルトコンストラクタ
Definition GxPrimitive.cpp:22
f32 _colorScale
色スケール
Definition GxPrimitive.h:224
u32 _alphaOperation
ブレンド処理
Definition GxPrimitive.h:196
static const GxPrimitiveMaterial BLEND
ブレンド
Definition GxPrimitive.h:110
u32 _alphaFactorDst
ブレンド係数
Definition GxPrimitive.h:194
static const GxPrimitiveMaterial COLOR_SUB_2D
2D減算(カラーのみ)
Definition GxPrimitive.h:130
GX_HANDLE _hTexture
テクスチャハンドル
Definition GxPrimitive.h:219
u32 _modifier
その他フラグ (enum PRIMITIVE_MODIFIER)
Definition GxPrimitive.h:227
u32 _colorFactorSrc
ブレンド係数
Definition GxPrimitive.h:198
u32 _alphaFactorSrc
ブレンド係数
Definition GxPrimitive.h:195
friend GX_FORCE_INLINE b32 operator==(const GxPrimitiveMaterial &material0, const GxPrimitiveMaterial &material1)
一致
Definition GxPrimitive.h:158
static const GxPrimitiveMaterial ADD_2D
2D加算
Definition GxPrimitive.h:124
static const GxPrimitiveMaterial MUL
乗算
Definition GxPrimitive.h:118
static const GxPrimitiveMaterial COLOR_ADD_2D
2D加算(カラーのみ)
Definition GxPrimitive.h:126
static const GxPrimitiveMaterial COLOR_MULTI_2D
2D乗算(カラーのみ)
Definition GxPrimitive.h:132
static const GxPrimitiveMaterial SUB
減算
Definition GxPrimitive.h:116
static const GxPrimitiveMaterial DEFAULT_2D
2Dデフォルト
Definition GxPrimitive.h:136
PRIMITIVE_TEXTURE_REMAP_ALPHA _textureRemapAlpha
テクスチャアルファチャンネルリマップ
Definition GxPrimitive.h:211
static const GxPrimitiveMaterial ADD
加算
Definition GxPrimitive.h:112
static const GxPrimitiveMaterial COLOR_ADD
加算(カラーのみ)
Definition GxPrimitive.h:114
プリミティブ頂点
Definition GxPrimitive.h:20
GxFloat2 _texCoordSecond
第2テクスチャ座標
Definition GxPrimitive.h:24
GxColor _color
Definition GxPrimitive.h:22
GxFloat2 _texCoord
テクスチャ座標
Definition GxPrimitive.h:23
GxFloat3 _position
座標
Definition GxPrimitive.h:21
ブレンドステート
Definition GxRender.h:847
サンプラステート
Definition GxRender.h:1046
u32 _access32
データ
Definition GxRender.h:1182
32bitブーリアン
Definition GxDefine.h:173