14GX_CORE_NAMESPACE_BEGIN()
17class GxPrimitiveModel;
71 COPY_RENDER_TARGET_TO_TEXTURE,
149 static constexpr u32 VERTEX_BLOCK_SIZE =
sizeof(
GxPrimitiveVertex) * DRAW_LIST_MAX_VERTEX_NUM;
157 static const GxVector4 REMAP_VECTOR_INSTANCE[6];
171 virtual b32 initialize(
GxAllocator* pAllocator, u32 commandBufferSize, u32 vertexBufferSize, u32 indexBufferSize,
RENDER_TYPE type, u32 maxProjection2DId,
b32 use32bitIndex =
false);
174 void terminate(
void);
192 constexpr void end(
void) {}
195 void beginRender(
b32 isSort);
198 void render(
GxRect* pRect =
nullptr);
201 void endRender(
void);
205 u32 buildCommand(
b32 isSort, GxPacket** ppPacket);
211 void resetPrimitiveRenderState(
GxRenderContext* pRenderContext,
const GxRect& rect, s32 stateMask = 0xffffffff);
215 GX_FORCE_INLINE GxPacket* allocatePacketBlock(
void);
217 GX_FORCE_INLINE
void* allocateCommandBlock(
void);
238 void setProjectionMatrix2D(u32 projectionId,
const GxMatrix44& matrix);
241 const GxMatrix44& getProjectionMatrix2D(u32 projectionId)
const;
243 u32 allocateProjectionMatrix2DId(
void);
245 void freeProjectionMatrix2DId(u32 projectionId);
256 constexpr u32 getMaxCommandBufferSize(
void)
const {
return _maxCommandBufferSize; }
258 constexpr u32 getUsedCommandBufferSize(
void)
const {
return _usedCommandBufferSize; }
260 constexpr u32 getMaxVertexBufferSize(
void)
const {
return _maxVertexBufferSize; }
262 constexpr u32 getUsedVertexBufferSize(
void)
const {
return _usedVertexBufferSize; }
264 constexpr u32 getMaxIndexBufferSize(
void)
const {
return _maxIndexBufferSize; }
266 constexpr u32 getUsedIndexBufferSize(
void)
const {
return _usedIndexBufferSize; }
275 RENDER_TYPE _renderType;
301 u8* _pProjectionMatrix2DIdBuffer;
315#if defined(_PS4) || defined(_PS5)
325 void* _pCommandBuffer;
331 u32 _commandBufferSize;
332 u32 _vertexBufferSize;
333 u32 _indexBufferSize;
335 u32 _maxCommandBufferSize;
336 u32 _maxVertexBufferSize;
337 u32 _maxIndexBufferSize;
338 u32 _usedCommandBufferSize;
339 u32 _usedVertexBufferSize;
340 u32 _usedIndexBufferSize;
341 u32 _maxProjectionMatrix2DIdCount;
346 void* _currentIndexBufferRaw;
353GX_CORE_NAMESPACE_END()
355#include "GxPrimitiveManager.inl"
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
void GxTypedObject
その他
Definition GxDefine.h:213
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
@ RENDER_BUFFER_COUNT_MAX
トリプルバッファリング
Definition GxRender.h:20
フレームアロケータ
Definition GxAllocatorFrame.h:19
メモリアロケータ基底クラス
Definition GxAllocator.h:82
ハンドラ基本クラス
Definition GxCallback.h:27
オブジェクト基底クラス
Definition GxBase.h:88
クリティカルセクションクラス
Definition GxThread.h:20
static constexpr u32 VALUE_1K
1K
Definition GxMath.h:129
static constexpr u32 VALUE_256
256
Definition GxMath.h:127
プリミティブの並列発行を管理します。
Definition GxPrimitiveContext.h:22
プリミティブの描画発行単位を管理します。
Definition GxPrimitiveManager.h:23
GX_FORCE_INLINE void setOutputOffset2D(const GxPoint2 &offset)
2Dプリミティブ全体の位置オフセットを設定
Definition GxPrimitiveManager.h:249
COMMAND_TYPE
コマンドタイプ
Definition GxPrimitiveManager.h:66
GX_FORCE_INLINE b32 isRenderType(RENDER_TYPE type) const
描画タイプを判定
Definition GxPrimitiveManager.h:234
constexpr void end(void)
パケット収集完了
Definition GxPrimitiveManager.h:192
constexpr void setDefaultRenderTarget(GxRenderTexture *pRenderTarget, GxRenderTexture *pDepth)
Definition GxPrimitiveManager.h:252
RENDER_TYPE
描画タイプ
Definition GxPrimitiveManager.h:54
GX_FORCE_INLINE const GxPoint2 & getOutputOffset2D(void) const
2Dプリミティブ全体の位置オフセットを取得
Definition GxPrimitiveManager.h:247
プロパティクラス
Definition GxProperty.h:48
描画コマンドの並列発行を管理します。
Definition GxRenderContext.h:28
インデックスバッファを管理する
Definition GxRenderIndexBuffer.h:20
ピクセルシェーダを管理する
Definition GxRenderPixelShader.h:20
テクスチャクラス
Definition GxRenderTexture.h:19
頂点バッファを管理する
Definition GxRenderVertexBuffer.h:20
頂点シェーダに渡す頂点の宣言を管理する
Definition GxRenderVertexDeclaration.h:22
頂点シェーダを管理する
Definition GxRenderVertexShader.h:22
ピクセルシェーダリソース
Definition GxResShader.h:247
頂点シェーダリソース
Definition GxResShader.h:164
実行時型情報クラス
Definition GxRtti.h:154
4×4行列(GPU用)
Definition GxMatrix.h:915
4×4行列(行優先)
Definition GxMatrix.h:607
座標
Definition GxStruct.h:867
画面クリアコマンド
Definition GxPrimitiveManager.h:130
GxColor _color
クリアカラー
Definition GxPrimitiveManager.h:131
レンダーターゲットをテクスチャにコピーするコマンド
Definition GxPrimitiveManager.h:119
const GxRect * _pSrcRect
描画元矩形ポインタ
Definition GxPrimitiveManager.h:123
u16 _dstMipLevel
ミップレベル
Definition GxPrimitiveManager.h:121
u16 _index
インデックス
Definition GxPrimitiveManager.h:120
GxRect _srcRect
描画元矩形
Definition GxPrimitiveManager.h:124
GxRenderTexture * _pTexture
テクスチャ
Definition GxPrimitiveManager.h:122
GxPoint2 _dstPoint
描画先座標
Definition GxPrimitiveManager.h:125
描画コマンド(アライメントの関係で、サイズは16の倍数である必要がある!)
Definition GxPrimitiveManager.h:92
GxVector3 _priorityPoint
優先度判定用の座標(3Dのみ)
Definition GxPrimitiveManager.h:94
u32 _vertexCount
頂点数
Definition GxPrimitiveManager.h:95
GxPrimitiveVertex * _pVertex
頂点バッファに渡すための頂点情報
Definition GxPrimitiveManager.h:96
GxPrimitiveMaterial _material
マテリアル
Definition GxPrimitiveManager.h:93
レンダーターゲット設定コマンド
Definition GxPrimitiveManager.h:113
GxRenderTexture * _pRenderTarget
レンダーターゲット
Definition GxPrimitiveManager.h:114
シザリング矩形設定コマンド
Definition GxPrimitiveManager.h:107
GxRect _rect
矩形
Definition GxPrimitiveManager.h:108
スクリーンサイズ設定コマンド
Definition GxPrimitiveManager.h:101
GxSize _size
サイズ
Definition GxPrimitiveManager.h:102
カスタムシェーダコールバックパラメータ
Definition GxPrimitiveManager.h:40
GxRenderPixelShader * _pPixelShaderTexRefAlphatest
テクスチャ付きテクスチャ参照アルファテスト付きピクセルシェーダ
Definition GxPrimitiveManager.h:46
GxRenderVertexShader * _pVertexShader3D
3D描画用頂点シェーダ
Definition GxPrimitiveManager.h:42
GxRenderPixelShader * _pPixelShaderTexture
テクスチャ付きピクセルシェーダ
Definition GxPrimitiveManager.h:44
GxRenderPixelShader * _pPixelShader
ピクセルシェーダ
Definition GxPrimitiveManager.h:43
GxRenderVertexShader * _pVertexShader2D
2D描画用頂点シェーダ
Definition GxPrimitiveManager.h:41
GxRenderPixelShader * _pPixelShaderAlphatest
テクスチャ付きアルファテスト付きピクセルシェーダ
Definition GxPrimitiveManager.h:45
描画パケット
Definition GxPrimitiveManager.h:136
GxPrimitiveManager::COMMAND_TYPE _type
コマンドタイプ
Definition GxPrimitiveManager.h:137
void * _pCommand
コマンドのポインタ
Definition GxPrimitiveManager.h:140
u32 _priority
優先度
Definition GxPrimitiveManager.h:138
u32 _viewFlag
ビューフラグ
Definition GxPrimitiveManager.h:139
プリミティブマテリアル
Definition GxPrimitive.h:103
プリミティブ頂点
Definition GxPrimitive.h:20
矩形
Definition GxStruct.h:951
サイズ
Definition GxStruct.h:730
3次元ベクトル
Definition GxVector.h:245
4次元ベクトル
Definition GxVector.h:582
32bitブーリアン
Definition GxDefine.h:173