OROCHI
 
Loading...
Searching...
No Matches
GxRenderShader Class Referenceabstract

シェーダ共通の処理を記述 More...

#include <GxRenderShader.h>

Inheritance diagram for GxRenderShader:
Collaboration diagram for GxRenderShader:

Classes

struct  GxConstantRegisterParameter
 定数レジスタパラメータ More...
 
struct  GxRegisterSet
 定数レジスタ情報 More...
 

Public Member Functions

アクセサ
constexpr u32 getUsageInputSemantics (void) const
 使用する入力セマンティックス
 
constexpr u32 getParameterCount (void) const
 パラメータ数の合計を取得
 
constexpr u32 getConstantBufferSize (void) const
 定数バッファサイズを取得
 
constexpr void * getBuffer (void) const
 バッファを取得
 
constexpr u32 getBufferSize (void) const
 バッファサイズを取得
 
constexpr u32 getParameterCount (REGISTER_SET_TYPE type) const
 パラメータ数を取得
 
constexpr GX_HANDLE getParameterHandle (REGISTER_SET_TYPE type, u32 index) const
 パラメータのハンドルを取得
 
constexpr PARAMETER_TYPE getParameterType (REGISTER_SET_TYPE type, u32 index) const
 パラメータのパラメータの種類を取得
 
constexpr u32 getParameterRegisterIndex (REGISTER_SET_TYPE type, u32 index) const
 パラメータの定数レジスタインデックスを取得
 
constexpr u32 getParameterRegisterCount (REGISTER_SET_TYPE type, u32 index) const
 パラメータの定数レジスタ数を取得
 
constexpr GX_CSTR getParameterName (REGISTER_SET_TYPE type, u32 index) const
 パラメータの名前を取得
 
constexpr u32 getRegisterStart (REGISTER_SET_TYPE type) const
 使用定数レジスタ開始位置を取得
 
constexpr u32 getRegisterCount (REGISTER_SET_TYPE type) const
 使用定数レジスタ数を取得
 
virtual void getAssembledCode (void *pBuffer, u32 size) const
 シェーダ命令コードの取得
 
virtual u32 getAssembledCodeSize (void) const
 シェーダ命令コードサイズの取得
 
virtual GX_FORCE_INLINE void releaseDiscardBuffer (b32 isStoreDevelopMemory=true)
 シェーダ命令コードのバッファなど中間データを解放
 
操作
virtual b32 map (GxRegisterSet *&pRegisterSet, void *&pConstantRegisterParameterTable, u32 mappingType=0)
 マッピング開始
 
virtual void unmap (void)
 マッピング終了
 
- Public Member Functions inherited from GxRenderResource
GX_FORCE_INLINE void onLostDevice (void) override
 デバイスが消失した時点で通知
 
GX_FORCE_INLINE b32 onResetDevice (void) override
 デバイスのリセット後に通知
 
virtual GX_FORCE_INLINE void onRender (void)
 描画通知
 
constexpr void forceDelayRelease (void)
 強制遅延解放
 
- Public Member Functions inherited from GxClassBaseReference
 GxClassBaseReference (void)
 コンストラクタ
 
 GxClassBaseReference (const GxClassBaseReference &base)
 コピーコンストラクタ
 
 ~GxClassBaseReference (void) override
 デストラクタ
 
constexpr GxClassBaseReferenceoperator= (const GxClassBaseReference &base)
 代入演算子
 
virtual s32 addReference (void)
 参照カウンタを加算
 
virtual s32 release (void)
 解放
 
virtual s32 getReferenceCount (void) const
 参照カウンタを取得
 
constexpr void setDelayReleaseCount (s32 count)
 遅延解放カウンタを設定
 
void setDelayReleaseCountInfinity (b32 on)
 無限解放待ちの設定
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 
- Public Member Functions inherited from GxRenderNotifier

Protected Attributes

メンバ変数
GxRegisterSet _registerSet [static_cast< s32 >(REGISTER_SET_TYPE::MAX)]
 定数レジスタ情報
 
void * _pConstantRegisterParameterTable
 定数レジスタパラメータを格納しておくメモリ領域
 
u32 _constantRegisterParameterCount
 シェーダ内の定数レジスタパラメータ数の合計
 
u32 _usageInputSemantics
 使用する入力セマンティックス
 
u32 _constantBufferSize
 定数バッファサイズ
 
u32 _mappingType
 マップタイプ
 
void * _pBuffer
 データバッファ
 
u32 _bufferSize
 バッファサイズ
 
- Protected Attributes inherited from GxClassBaseReference
s32 _referenceCount
 参照カウンタ
 
s32 _delayReleaseCount
 遅延解放カウンタ
 

定義

enum class  REGISTER_SET_TYPE {
  BOOL , INT4 , FLOAT4 , SAMPLER ,
  MAX
}
 定数レジスタの種類 More...
 
enum class  PARAMETER_TYPE {
  VOID_POINTER , BOOL , INT , FLOAT ,
  STRING , TEXTURE , TEXTURE_1D , TEXTURE_2D ,
  TEXTURE_3D , TEXTURE_CUBE , SAMPLER , SAMPLER_1D ,
  SAMPLER_2D , SAMPLER_3D , SAMPLER_CUBE , PIXEL_SHADER ,
  VERTEX_SHADER , PIXEL_FRAGMENT , VERTEX_FRAGMENT , MAX
}
 パラメータの種類 More...
 
class GxRenderDevice
 

初期化

void cleanup (void) override
 delete直前に呼び出される関数
 
virtual b32 initialize (const void *pAssembledCode, u32 assembledCodeSize, u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize)=0
 初期化関数
 
b32 initializeParameter (u32 constantRegisterParameterCount, u32 usageInputSemantics, u32 constantBufferSize)
 パラメータ初期化関数
 
 GxRenderShader (void)
 デフォルトコンストラクタ(RenderDevice以外でのインスタンス化禁止)
 

Additional Inherited Members

- Static Public Member Functions inherited from GxRenderResource
static b32 initializeThreadLocalStorage (void)
 スレッドローカルストレージ初期化関数
 
static GX_FORCE_INLINE void disableDelayRelease (void)
 遅延解放を無効化
 
static GX_FORCE_INLINE void enableDelayRelease (void)
 遅延解放を有効化
 
- Static Public Member Functions inherited from GxClassBaseReference
static void initializeDelayRelease (void)
 遅延解放リストの初期化
 
static void terminateDelayRelease (void)
 遅延解放リストの終了
 
static void updateDelayRelease (void)
 遅延解放リストの更新
 
static b32 isDelayReleaseEnable (void)
 遅延解放システムの有効判定
 
static u32 getDelayReleaseListCount (void)
 遅延解放待ちの数を取得
 
- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Attributes inherited from GxClassBaseReference
static constexpr s32 DELAY_RELEASE_COUNT_INFINITY = -1
 遅延解放の無限待ち定義
 
- Protected Member Functions inherited from GxRenderResource
 GxRenderResource (void)
 デフォルトコンストラクタ(RenderDevice以外でのインスタンス化禁止)
 
- Protected Member Functions inherited from GxRenderNotifier
 GxRenderNotifier (b32 callRender=false)
 コンストラクタ(インスタンス化禁止)
 
virtual ~GxRenderNotifier (void)
 デストラクタ(インスタンス化禁止)
 
- Static Protected Attributes inherited from GxRenderResource
static s32 _disableDelayRelease [GxThread::THREAD_MAX] = {0}
 遅延解放無効化フラグ
 

Detailed Description

シェーダ共通の処理を記述

シェーダ基底クラス

Member Enumeration Documentation

◆ PARAMETER_TYPE

enum class GxRenderShader::PARAMETER_TYPE
strong

パラメータの種類

Enumerator
VOID_POINTER 

voidポインタ

BOOL 

ブール型

INT 

整数型

FLOAT 

浮動小数点型

STRING 

文字列型

TEXTURE 

テクスチャ

TEXTURE_1D 

1Dテクスチャ

TEXTURE_2D 

2Dテクスチャ

TEXTURE_3D 

3Dテクスチャ

TEXTURE_CUBE 

キューブテクスチャ

SAMPLER 

サンプラー

SAMPLER_1D 

1Dサンプラー

SAMPLER_2D 

2Dサンプラー

SAMPLER_3D 

3Dサンプラー

SAMPLER_CUBE 

キューブサンプラー

PIXEL_SHADER 

ピクセルシェーダ

VERTEX_SHADER 

頂点シェーダ

PIXEL_FRAGMENT 

ピクセルフラグメント

VERTEX_FRAGMENT 

頂点フラグメント

MAX 

種類数

◆ REGISTER_SET_TYPE

定数レジスタの種類

Enumerator
BOOL 

ブール型

INT4 

整数ベクトル型

FLOAT4 

浮動小数点ベクトル型

SAMPLER 

サンプラ

MAX 

種類数

Member Function Documentation

◆ cleanup()

void GxRenderShader::cleanup ( void )
overridevirtual

delete直前に呼び出される関数

Reimplemented from GxRenderResource.

Reimplemented in GxRenderVertexShader.

◆ getAssembledCode()

void GxRenderShader::getAssembledCode ( void * pBuffer,
u32 size ) const
virtual

シェーダ命令コードの取得

Parameters
pBuffer[in/out] シェーダ命令コードを返すバッファを指定する
size[in] シェーダ命令コードを返すバッファのサイズ

◆ getAssembledCodeSize()

u32 GxRenderShader::getAssembledCodeSize ( void ) const
virtual

シェーダ命令コードサイズの取得

Returns
シェーダ命令コードサイズ
Here is the caller graph for this function:

◆ initialize()

virtual b32 GxRenderShader::initialize ( const void * pAssembledCode,
u32 assembledCodeSize,
u32 constantRegisterParameterCount,
u32 usageInputSemantics,
u32 constantBufferSize )
protectedpure virtual

初期化関数

Implemented in GxRenderComputeShader, GxRenderPixelShader, and GxRenderVertexShader.

◆ initializeParameter()

b32 GxRenderShader::initializeParameter ( u32 constantRegisterParameterCount,
u32 usageInputSemantics,
u32 constantBufferSize )
protected

パラメータ初期化関数

Parameters
constantRegisterParameterCount[in] シェーダ内の定数レジスタパラメータ数の合計
usageInputSemantics[in] 使用する入力セマンティックス
constantBufferSize[in] 定数バッファサイズ
Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ map()

b32 GxRenderShader::map ( GxRegisterSet *& pRegisterSet,
void *& pConstantRegisterParameterTable,
u32 mappingType = 0 )
virtual

マッピング開始

Parameters
pRegisterSet[out] 定数レジスタ情報の先頭
pConstantRegisterParameterTable[out] 定数レジスタパラメータを格納しておくメモリ領域の先頭
mappingType[in] マッピングタイプ
Returns
成功ならtrue
Here is the caller graph for this function:

◆ releaseDiscardBuffer()

virtual GX_FORCE_INLINE void GxRenderShader::releaseDiscardBuffer ( b32 isStoreDevelopMemory = true)
inlinevirtual

シェーダ命令コードのバッファなど中間データを解放

Reimplemented in GxRenderPixelShader.


The documentation for this class was generated from the following files: