13GX_CORE_NAMESPACE_BEGIN()
45 enum class PARAMETER_TYPE
82 b32 initializeThreadLocalStorage(
void);
91#if defined(GX_THREAD_LOCAL_STORAGE)
92 GX_FORCE_INLINE
static GxRenderContext* getContext(
void) {
return _pContext; }
97 constexpr u32 getPacketCount(void) const { return _packetCount; }
115 GX_FORCE_INLINE
void setSubPriority(u32 subPriority);
117 GX_FORCE_INLINE
void setSubPriorityF32(f32 subPriority);
122 void setRenderState(
RENDER_STATE renderState, u32 value);
132 void setViewport(
const GxRect& rect, f32 nearZ, f32 farZ);
134 void setScissorRect(
const GxRect& rect);
154 void setInt4(
GX_HANDLE handle,
const s32 int4[4]);
166 void setRenderTarget(u32 index,
GxRenderTexture* pRenderTarget,
b32 forceRenderToTexture =
false);
171 void forceDrawState(
void);
181 void setPredication(
void* pFlag, u32 size,
b32 value);
192 void drawIndexed(
RENDER_PRIMITIVE_TYPE type, s32 baseVertexIndex, u32 minIndex, u32 vertexCount, u32 startIndex, u32 indexCount, u32 instanceCount = 0, s32* pQueryIndex =
nullptr);
196 void drawIndexedMemory(
RENDER_PRIMITIVE_TYPE type, u32 minIndex, u32 vertexCount, u32 indexCount,
const void* pVertex,
const void* pIndex, u32 vertexStride,
RENDER_INDEX_TYPE indexType);
197#if GX_ENABLE_COMPUTE_SHADER
199 void dispatch(u32 threadGroupCountX, u32 threadGroupCountY, u32 threadGroupCountZ);
201#if GX_ENABLE_OCCLUSION_CULLING
203 void resolveOcclusionQuery(
void);
207 void clear(u32 clearFlags,
const GxColor clearColor, f32 clearZ, u32 clearStencil);
209 void clearHDR(u32 clearFlags,
const GxColorHDR& clearColor, f32 clearZ, u32 clearStencil);
211#if GX_ENABLE_HTILE_STENCIL_MASK
217 void copyRenderTargetToTexture(u32 index = 0,
GxRenderTexture* pTexture =
nullptr, u32 dstMipLevel = 0,
const GxRect* pSrcRect =
nullptr,
const GxPoint2* pDstPoint =
nullptr);
219 void copyDepthStencilToTexture(
GxRenderTexture* pTexture =
nullptr, u32 dstMipLevel = 0,
const GxRect* pSrcRect =
nullptr,
const GxPoint2* pDstPoint =
nullptr);
221 void copyRenderTargetToTextureStretch(u32 index = 0,
GxRenderTexture* pTexture =
nullptr, u32 dstMipLevel = 0,
const GxRect* pSrcRect =
nullptr,
const GxRect* pDstRect =
nullptr);
223 void copyDepthStencilToTextureStretch(
GxRenderTexture* pTexture =
nullptr, u32 dstMipLevel=0,
const GxRect* pSrcRect =
nullptr,
const GxRect* pDstRect =
nullptr);
225 void copyRenderTargetToTextureWithMipmap(u32 index = 0,
GxRenderTexture* pTexture =
nullptr);
237 void setTiledCacheAction(GxNativeTiledCacheAction action);
239 void setTiledCacheTileSize(s32 width, s32 height);
242 void saveZCullData(
void);
244 void restoreZCullData(
void);
249 void beginMarker(GX_CSTR name);
251 void endMarker(GX_CSTR name);
254 constexpr void beginMarker(GX_CSTR
) {}
260 void flushGpuCommandBuffer(
void);
267 GX_FORCE_INLINE
void* setParameter(GxParameter& parameter, PARAMETER_TYPE type, u32 size);
269 GX_FORCE_INLINE
void sendPacket(
void* pCommand);
271 void* sendDrawCommandCommonInfo(
void* pData);
286 GX_FORCE_INLINE
void* allocParameter(u32 size);
291 void buildPacket(
void* pPacketBuffer);
305 u32 _packetCountBlock;
307 void* _pCommandBlock;
308 u32 _commandSizeBlock;
313#if GX_ENABLE_COMPUTE_SHADER
316 GxParameter* _pParameter;
320 b32 _doNotSkipThisFrame;
322#if defined(GX_THREAD_LOCAL_STORAGE)
328 GxRenderDevice::GxPerformanceCounterView _performanceCounter[
static_cast<s32
>(
RENDER_VIEW::MAX)];
329 GxRenderDevice::GxPerformanceCounter* _pPerformanceCounter;
338GX_CORE_NAMESPACE_END()
340#include "GxRenderContext.inl"
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
RENDER_VIEW
描画優先度(ビュー)
Definition GxRender.h:442
RENDER_INDEX_TYPE
インデックスバッファ形式
Definition GxRender.h:147
RENDER_STATE
描画ステート
Definition GxRender.h:550
RENDER_PRIMITIVE_TYPE
プリミティブ形式
Definition GxRender.h:131
RENDER_SHADER
Definition GxRender.h:75
RENDER_PASS
描画優先度(パス)
Definition GxRender.h:515
@ RENDER_VERTEX_STREAM_COUNT_MAX
サポートする頂点ストリーム数
Definition GxRender.h:26
RENDER_SUB_VIEW
描画優先度(サブビュー)
Definition GxRender.h:485
RENDER_STREAM_FREQUENCY_TYPE
頂点頻度タイプ
Definition GxRender.h:225
ハンドラ基本クラス
Definition GxCallback.h:27
オブジェクト基底クラス
Definition GxBase.h:88
コンピュートシェーダを管理する
Definition GxRenderComputeShader.h:21
描画コマンドの並列発行を管理します。
Definition GxRenderContext.h:28
constexpr void endMarker(GX_CSTR)
マーカー終了
Definition GxRenderContext.h:256
constexpr RENDER_SUB_VIEW getSubView(void) const
サブビューの取得(シャドウマップや反射マップなど)
Definition GxRenderContext.h:107
GX_FORCE_INLINE b32 canNotSkipThisFrame(void) const
このフレームのスキップが禁止されているか
Definition GxRenderContext.h:233
constexpr RENDER_VIEW getView(void) const
ビューの取得(画面分割など、別のビューポート)
Definition GxRenderContext.h:102
void setCallbackAsync(GxCallback::GxHandlerBase handle, void *pSource, void *pArgument)
コールバックの設定(非同期用)
constexpr u32 getSubPriority(void) const
サブプライオリティの取得(パス内での優先度)
Definition GxRenderContext.h:119
GX_FORCE_INLINE void doNotSkipThisFrame(void)
このフレームのスキップを禁止
Definition GxRenderContext.h:231
constexpr RENDER_PASS getPass(void) const
パスの取得(Zプリパス、不透明パスなど)
Definition GxRenderContext.h:112
static GX_FORCE_INLINE GxRenderContext * getContext(void)
カレントスレッドのコンテキストを取得
Definition GxRenderContext.h:94
void assembleFinalVrImage(void *pPacket, u32 packetSize)
VR用の最終的な両目の画像を作成
描画関連の依存をこのクラスで吸収します
Definition GxRenderDevice.h:450
COMMAND_TYPE
コマンドタイプ
Definition GxRenderDevice.h:528
インデックスバッファを管理する
Definition GxRenderIndexBuffer.h:20
ピクセルシェーダを管理する
Definition GxRenderPixelShader.h:20
シェーダ共通の処理を記述
Definition GxRenderShader.h:20
テクスチャクラス
Definition GxRenderTexture.h:19
頂点バッファを管理する
Definition GxRenderVertexBuffer.h:20
頂点シェーダに渡す頂点の宣言を管理する
Definition GxRenderVertexDeclaration.h:22
頂点シェーダを管理する
Definition GxRenderVertexShader.h:22
描画システムクラス
Definition GxSysRenderBase.h:115
static GxThread * getCurrentThread(void)
カレントスレッドを取得
Definition GxThread.cpp:505
constexpr u32 getIndex(void) const
インデックスを取得
Definition GxThread.h:251
static constexpr u32 THREAD_MAX
スレッドの最大数
Definition GxThread.h:188
色(HDR)
Definition GxColor.h:241
4×4行列(GPU用)
Definition GxMatrix.h:915
アフィン変換行列(GPU用)
Definition GxMatrix.h:874
座標
Definition GxStruct.h:867
矩形
Definition GxStruct.h:951
アルファテストステート
Definition GxRender.h:731
ブレンドステート
Definition GxRender.h:847
深度テストステート
Definition GxRender.h:601
描画パケット
Definition GxRenderDevice.h:2427
レジスタセット情報
Definition GxRenderDevice.h:2449
頂点ストリーム情報
Definition GxRenderDevice.h:480
サンプラステート
Definition GxRender.h:1046
ステンシルテストステート
Definition GxRender.h:654
頂点宣言に使用する、頂点要素を定義するための構造体
Definition GxRenderVertexDeclaration.h:125
4次元ベクトル
Definition GxVector.h:582
32bitブーリアン
Definition GxDefine.h:173
描画優先度
Definition GxRenderDevice.h:505