OROCHI
 
Loading...
Searching...
No Matches
GxRtti Class Reference

実行時型情報クラス More...

#include <GxRtti.h>

Inheritance diagram for GxRtti:
Collaboration diagram for GxRtti:

定義

enum  ATTRIBUTE {
  ATTRIBUTE_NONE = 0 , ATTRIBUTE_CREATABLE = (1 << 0) , ATTRIBUTE_HIDE = (1 << 1) , ATTRIBUTE_STRUCT = (1 << 2) ,
  ATTRIBUTE_ALL = 0xFFFFFFFF
}
 属性 More...
 
enum class  TYPE { NORMAL , RESOURCE }
 種類 More...
 
enum class  ICON_TYPE {
  INVALID = -1 , CORE = 0 , SHADER , FILTER ,
  EFFECT , MOTION , PHYSICS , HUD ,
  DUMMY_1 , CHARACTER , UTILITY , P2P ,
  NETWORK , MOVIE , SOUND , UNIT_PLAYER ,
  UNIT_ENEMY , UNIT_NPC , UNIT_LIGHT , UNIT_EFFECT ,
  UNIT_SOUND , UNIT_MOVIE , UNIT_CAMERA , UNIT_GIMMICK ,
  WINDOW , OROCHI , TOOL_VIEWER , TOOL_EDITOR ,
  WARNING , ERROR_ , LOCATE_POSITION , LOCATE_ROTATE ,
  LOCATE_SCALE , CHECK_BOX_OFF , CHECK_BOX_ON , FOLDER ,
  FOLDER_OPEN , FOLDER_ADD , LAYOUT_SINGLE , LAYOUT_MULTI ,
  LAYOUT_CUSTOM , VISIBLE_ON , VISIBLE_OFF , SEARCH ,
  SEARCH_WEB , INFORMATION , SCREEN_SHOT , SAVE ,
  SETTINGS , REVERT , RELOAD , PLAY ,
  PAUSE , STOP , RECORD , PLUG_IN ,
  SINGLE_STEP , IMAGE , MESH , MATERIAL ,
  LEVEL , SHAPE , TEXT , DUMMY_2 ,
  CHECK_BOX_DIFFERENT , MAX
}
 アイコンタイプ定義 More...
 
enum class  ICON_TYPE_64 {
  INVALID = -1 , UNIT_EFFECT = 0 , UNIT_SOUND , UNIT_MOVIE ,
  UNIT_CAMERA , MOTION , MOVIE , FOLDER ,
  DYMMY_1 , IMAGE , MESH , MATERIAL ,
  LEVEL , SHAPE , TEXT , OROCHI ,
  DUMMY_3 , MAX
}
 アイコンタイプ定義(サイズ64) More...
 
typedef void *(*) CREATE_INSTANCE_FUNCTION(void)
 
typedef void(*) CREATE_GUI_FUNCTION(void)
 
typedef GxProperty *(*) GET_PROPERTIES_FUNCTION(void)
 
typedef u32(*) GET_PROPERTY_NUM_FUNCTION(void)
 
typedef GxFunction *(*) GET_FUNCTIONS_FUNCTION(void)
 
typedef u32(*) GET_FUNCTION_NUM_FUNCTION(void)
 
static constexpr u32 DEFAULT_ID = 0xffffffffL
 GxRttiのIDを定義しなかったときのデフォルト値
 

メンバ変数

static volatile GxRtti_pUsageCall = nullptr
 最適化回避呼び出し
 
static GX_CHAR _usageDummy [8]
 最適化回避用バッファ
 

初期化

 GxRtti (void)
 デフォルトコンストラクタ
 
 GxRtti (TYPE type, u32 size, u32 id, u32 attribute, GxRtti *pBaseRtti, CREATE_INSTANCE_FUNCTION pCreateInstanceFunction, GET_PROPERTIES_FUNCTION pGetPropertiesFunction, GET_PROPERTY_NUM_FUNCTION pGetPropertyNumFunction, GET_FUNCTIONS_FUNCTION pGetFunctionsFunction, GET_FUNCTION_NUM_FUNCTION pGetFunctionNumFunction)
 コンストラクタ
 
GX_FORCE_INLINE b32 operator== (const GxRtti &rtti) const
 一致演算子
 
GX_FORCE_INLINE b32 operator!= (const GxRtti &rtti) const
 不一致演算子
 

操作

u32 createPropertyTable (GxPropertyTable &propertyTable, b32 searchParentFlag=true) const
 プロパティ配列を作成
 
u32 createDifferencePropertyTable (GxPropertyTable &propertyTable, GxTypedObject *pTargetObject, b32 searchParentFlag=true, const GxTypedObject *pDefaultObject=nullptr)
 差分のプロパティ配列を作成
 
const GxRttienumerate (const GxRtti *pRootRtti) const
 指定以下のRTTIを列挙
 
GX_FORCE_INLINE void * createInstance (void) const
 インスタンスを生成
 
void trace (GxTypedObject *pObject)
 デバッグ出力
 
static void copyObject (GxTypedObject *pObjectDst, const GxTypedObject *pObjectSrc, const GxRtti &rtti)
 指定オブジェクトをコピー
 
static void forceUsage (GxRtti &rtti)
 最適化回避呼び出し
 

アクセサ

GX_FORCE_INLINE b32 isDerived (const GxRtti &rtti) const
 継承されている型か判定
 
b32 isDerived (u32 id) const
 継承されている型か判定
 
constexpr u32 getId (void) const
 IDを取得
 
GX_FORCE_INLINE b32 isId (u32 id) const
 IDを判定
 
constexpr u32 getAttribute (void) const
 属性を取得
 
GX_FORCE_INLINE b32 isAttribute (ATTRIBUTE attribute) const
 属性を判定
 
constexpr GxRtti::TYPE getType (void) const
 種類を取得
 
constexpr GxRttigetParent (void) const
 親を取得
 
constexpr GxRttigetChild (void) const
 子を取得
 
constexpr GxRttigetNext (void) const
 次の兄弟を取得
 
u32 getPropertyCount (void) const
 プロパティ数を取得
 
GxPropertygetProperty (u32 id, b32 searchParentFlag=false) const
 プロパティを取得
 
void getReferenceRttiList (GxArray &list, b32 searchParentFlag=false) const
 参照リソースRTTIリストを取得
 
void getReferencePropertyList (GxArray &list, b32 searchParentFlag=false) const
 参照リソースプロパティリストを取得
 
u32 getFunctionCount (void) const
 関数型の数を取得
 
GxFunctiongetFunction (u32 index) const
 関数型を取得
 
const GxTypedObjectgetDefaultObject (GxTypedObject *pCustomObject=nullptr)
 デフォルトオブジェクトを取得
 
constexpr GxTypedObjectgetSingletonInstance (void) const
 シングルトンインスタンスを取得
 
constexpr void setSingletonInstance (GxTypedObject *pSingletonInstance)
 シングルトンインスタンスを設定
 
void deleteDefaultObjectSub (void)
 デフォルトオブジェクトを削除するサブ関数
 
static const GxRttigetRtti (u32 id, const GxRtti &root=getRttiRoot())
 RTTIを取得
 
static void getRttiList (GxArray &list, const GxRtti &root=getRttiRoot(), ATTRIBUTE attributeOn=ATTRIBUTE_ALL, ATTRIBUTE attributeOff=ATTRIBUTE_NONE)
 RTTIリストを取得
 
static GxRttigetNextRtti (const GxRtti &rttiRoot, const GxRtti &rttiTarget)
 次のRTTIを取得
 
static GxRttigetRttiRoot (void)
 RTTIルートを取得
 
static void deleteDefaultObjectAll (void)
 全てのデフォルトオブジェクトを削除
 

Detailed Description

実行時型情報クラス

Member Enumeration Documentation

◆ ATTRIBUTE

属性

Enumerator
ATTRIBUTE_NONE 

全フラグOFF

ATTRIBUTE_CREATABLE 

createInstance()を実行できる

ATTRIBUTE_HIDE 

GUIを表示しない

ATTRIBUTE_STRUCT 

構造体

ATTRIBUTE_ALL 

全フラグON

◆ ICON_TYPE

enum class GxRtti::ICON_TYPE
strong

アイコンタイプ定義

Enumerator
INVALID 

未定義

CORE 

CORE.

SHADER 

SHADER.

FILTER 

FILTER.

EFFECT 

EFFECT.

MOTION 

MOTION.

PHYSICS 

PHYSICS.

HUD 

HUD.

DUMMY_1 

予備1

CHARACTER 

CHARACTER.

UTILITY 

UTILITY.

P2P 

P2P.

NETWORK 

NETWORK.

MOVIE 

MOVIE.

SOUND 

SOUND.

UNIT_PLAYER 

プレイヤーユニット

UNIT_ENEMY 

敵ユニット

UNIT_NPC 

NPCユニット

UNIT_LIGHT 

ライトユニット

UNIT_EFFECT 

エフェクトユニット

UNIT_SOUND 

サウンドユニット

UNIT_MOVIE 

ムービーユニット

UNIT_CAMERA 

カメラユニット

UNIT_GIMMICK 

ギミックユニット

WINDOW 

ウィンドウ

OROCHI 

OROCHI.

TOOL_VIEWER 

ビューワー

TOOL_EDITOR 

エディター

WARNING 

警告

ERROR_ 

エラー

LOCATE_POSITION 

移動操作

LOCATE_ROTATE 

回転操作

LOCATE_SCALE 

拡縮操作

CHECK_BOX_OFF 

チェックボックスOFF

CHECK_BOX_ON 

チェックボックスON

FOLDER 

フォルダ

FOLDER_OPEN 

開いたフォルダ

FOLDER_ADD 

フォルダ追加

LAYOUT_SINGLE 

レイアウト(単体)

LAYOUT_MULTI 

レイアウト(複数)

LAYOUT_CUSTOM 

レイアウト(カスタマイズ)

VISIBLE_ON 

描画ON

VISIBLE_OFF 

描画OFF

SEARCH 

検索

SEARCH_WEB 

Web検索

INFORMATION 

情報

SCREEN_SHOT 

スクリーンショット

SAVE 

保存

SETTINGS 

設定

REVERT 

元に戻す

RELOAD 

再読み込み

PLAY 

再生

PAUSE 

一時停止

STOP 

停止

RECORD 

録画

PLUG_IN 

プラグイン

SINGLE_STEP 

コマ送り

IMAGE 

画像

MESH 

メッシュ

MATERIAL 

マテリアル

LEVEL 

レベル

SHAPE 

形状

TEXT 

テキスト

DUMMY_2 

予備2

CHECK_BOX_DIFFERENT 

予備3

MAX 

定義数

◆ ICON_TYPE_64

enum class GxRtti::ICON_TYPE_64
strong

アイコンタイプ定義(サイズ64)

Enumerator
INVALID 

未定義

UNIT_EFFECT 

エフェクトユニット

UNIT_SOUND 

サウンドユニット

UNIT_MOVIE 

ムービーユニット

UNIT_CAMERA 

カメラユニット

MOTION 

MOTION.

MOVIE 

MOVIE.

FOLDER 

フォルダ

DYMMY_1 

予備1

IMAGE 

画像

MESH 

メッシュ

MATERIAL 

マテリアル

LEVEL 

レベル

SHAPE 

形状

TEXT 

テキスト

OROCHI 

OROCHI.

DUMMY_3 

予備3

MAX 

定義数

◆ TYPE

enum class GxRtti::TYPE
strong

種類

Enumerator
NORMAL 

通常

RESOURCE 

リソース用

Member Function Documentation

◆ copyObject()

void GxRtti::copyObject ( GxTypedObject * pObjectDst,
const GxTypedObject * pObjectSrc,
const GxRtti & rtti )
static

指定オブジェクトをコピー

Parameters
pObjectDst[in] コピー先オブジェクト
pObjectSrc[in] コピー元オブジェクト
rtti[in] RTTI
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createDifferencePropertyTable()

u32 GxRtti::createDifferencePropertyTable ( GxPropertyTable & propertyTable,
GxTypedObject * pTargetObject,
b32 searchParentFlag = true,
const GxTypedObject * pDefaultObject = nullptr )

差分のプロパティ配列を作成

Parameters
propertyTable[in/out] プロパティテーブル
pTargetObject[in] ターゲットオブジェクト
searchParentFlag[in] 親を探索するか
pDefaultObject[in] デフォルトオブジェクト
Returns
作成プロパティ数
Here is the call graph for this function:

◆ createPropertyTable()

u32 GxRtti::createPropertyTable ( GxPropertyTable & propertyTable,
b32 searchParentFlag = true ) const

プロパティ配列を作成

Parameters
propertyTable[in] プロパティテーブル
searchParentFlag[in] 親を探索するか
Returns
作成プロパティ数
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteDefaultObjectSub()

void GxRtti::deleteDefaultObjectSub ( void )

デフォルトオブジェクトを削除するサブ関数

Parameters
pTarget[in] デフォルトオブジェクト
Here is the call graph for this function:
Here is the caller graph for this function:

◆ enumerate()

const GxRtti * GxRtti::enumerate ( const GxRtti * pRootRtti) const

指定以下のRTTIを列挙

Parameters
pRootRtti[in] ルートのRTTI
Returns
RTTI
Here is the caller graph for this function:

◆ forceUsage()

void GxRtti::forceUsage ( GxRtti & rtti)
static

最適化回避呼び出し

Parameters
rtti[in] RTTI
Here is the call graph for this function:

◆ getDefaultObject()

const GxTypedObject * GxRtti::getDefaultObject ( GxTypedObject * pCustomObject = nullptr)

デフォルトオブジェクトを取得

Parameters
pCustomObject[in] カスタムオブジェクト(デフォルト値を変更したい場合に使用)
Returns
デフォルトオブジェクト
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFunction()

GxFunction * GxRtti::getFunction ( u32 index) const

関数型を取得

Parameters
index[in] インデックス
Returns
関数型
Parameters
name[in] 名前
Returns
関数型

◆ getFunctionCount()

u32 GxRtti::getFunctionCount ( void ) const

関数型の数を取得

Returns
関数の数

◆ getNextRtti()

GxRtti * GxRtti::getNextRtti ( const GxRtti & rttiRoot,
const GxRtti & rttiTarget )
static

次のRTTIを取得

Parameters
rttiRoot[in] ルートのRTTI
rttiTarget[in] 対象RTTI
Returns
対象の次のRTTI
Here is the call graph for this function:

◆ getProperty()

GxProperty * GxRtti::getProperty ( u32 id,
b32 searchParentFlag = false ) const

プロパティを取得

Parameters
id[in] ID
searchParentFlag[in] 親を探索するか
Returns
プロパティ
Parameters
name[in] 名前
searchParentFlag[in] 親を探索するか
Returns
プロパティ
Here is the call graph for this function:

◆ getPropertyCount()

u32 GxRtti::getPropertyCount ( void ) const

プロパティ数を取得

Returns
プロパティ数

◆ getReferencePropertyList()

void GxRtti::getReferencePropertyList ( GxArray & list,
b32 searchParentFlag = false ) const

参照リソースプロパティリストを取得

Parameters
list[out] 参照プロパティリスト
searchParentFlag[in] 親を探索するならtrue
Here is the call graph for this function:

◆ getReferenceRttiList()

void GxRtti::getReferenceRttiList ( GxArray & list,
b32 searchParentFlag = false ) const

参照リソースRTTIリストを取得

Parameters
list[out] 参照RTTIリスト
searchParentFlag[in] 親を探索するならtrue
Here is the call graph for this function:

◆ getRtti()

const GxRtti * GxRtti::getRtti ( u32 id,
const GxRtti & root = getRttiRoot() )
static

RTTIを取得

Parameters
id[in] ID
root[in] ルートのRTTI
Returns
RTTI
Parameters
name[in] 名前
root[in] ルートのRTTI
Returns
RTTI
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRttiList()

void GxRtti::getRttiList ( GxArray & list,
const GxRtti & root = getRttiRoot(),
ATTRIBUTE attributeOn = ATTRIBUTE_ALL,
ATTRIBUTE attributeOff = ATTRIBUTE_NONE )
static

RTTIリストを取得

Parameters
list[out] RTTIリスト
root[in] 基底RTTI
attributeOn[in] 属性ONの条件
attributeOff[in] 属性OFFの条件
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRttiRoot()

GxRtti & GxRtti::getRttiRoot ( void )
static

RTTIルートを取得

Returns
RTTIルート
Here is the caller graph for this function:

◆ isDerived()

b32 GxRtti::isDerived ( u32 id) const

継承されている型か判定

Parameters
id[in] RTTIのID
Returns
idのRTTIを継承しているか
Here is the call graph for this function:

◆ trace()

void GxRtti::trace ( GxTypedObject * pObject)

デバッグ出力

Parameters
pObject[in] オブジェクト

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