リソース実行時型情報クラス More...
#include <GxRttiResource.h>


定義 | |
| enum class | COMPRESS_TYPE { NONE = 0 , ZLIB } |
| 圧縮タイプ定義 More... | |
| enum | RESOURCE_ATTRIBUTE { RESOURCE_ATTRIBUTE_NOTHING = 0 , RESOURCE_ATTRIBUTE_ORIGINAL = (1 << 0) , RESOURCE_ATTRIBUTE_FINALIZED = (1 << 1) , RESOURCE_ATTRIBUTE_CONFIG = (1 << 2) , RESOURCE_ATTRIBUTE_RAW = (1 << 3) , RESOURCE_ATTRIBUTE_HAVE_CONFIG = (1 << 4) , RESOURCE_ATTRIBUTE_SAVABLE = (1 << 5) , RESOURCE_ATTRIBUTE_HAVE_HEADER = (1 << 6) , RESOURCE_ATTRIBUTE_COMPRESS_ZLIB = (1 << 7) , RESOURCE_ATTRIBUTE_HARDWARE_COMMON = (1 << 8) , RESOURCE_ATTRIBUTE_DYNAMIC_REFERENCE = (1 << 9) , RESOURCE_ATTRIBUTE_PACK_ORIGINAL_DEFAULT = (RESOURCE_ATTRIBUTE_ORIGINAL | RESOURCE_ATTRIBUTE_SAVABLE) , RESOURCE_ATTRIBUTE_PACK_ORIGINAL_IMPORT = (RESOURCE_ATTRIBUTE_ORIGINAL) , RESOURCE_ATTRIBUTE_PACK_FINALIZED_DEFAULT = (RESOURCE_ATTRIBUTE_FINALIZED | RESOURCE_ATTRIBUTE_SAVABLE | RESOURCE_ATTRIBUTE_HAVE_HEADER | RESOURCE_ATTRIBUTE_COMPRESS_ZLIB) , RESOURCE_ATTRIBUTE_PACK_FINALIZED_NO_COMPRESS = (RESOURCE_ATTRIBUTE_FINALIZED | RESOURCE_ATTRIBUTE_SAVABLE | RESOURCE_ATTRIBUTE_HAVE_HEADER) , RESOURCE_ATTRIBUTE_PACK_FINALIZED_RAW = (RESOURCE_ATTRIBUTE_FINALIZED | RESOURCE_ATTRIBUTE_SAVABLE | RESOURCE_ATTRIBUTE_RAW) , RESOURCE_ATTRIBUTE_PACK_FINALIZED_COMMON = (RESOURCE_ATTRIBUTE_PACK_FINALIZED_DEFAULT | RESOURCE_ATTRIBUTE_HARDWARE_COMMON) , RESOURCE_ATTRIBUTE_PACK_FINALIZED_COMMON_NO_COMPRESS = (RESOURCE_ATTRIBUTE_PACK_FINALIZED_NO_COMPRESS | RESOURCE_ATTRIBUTE_HARDWARE_COMMON) , RESOURCE_ATTRIBUTE_PACK_CONFIG_DEFAULT = (RESOURCE_ATTRIBUTE_CONFIG) } |
| 属性定義 More... | |
| typedef void(GxResBase::*) | RESOURCE_CREATE_FUNCTION(void *pUser) |
| typedef b32(GxResBase::*) | RESOURCE_LOAD_FUNCTION(GxStream &stream, u32 dataSize) |
| static constexpr u32 | VERSION_NOTHING = 0 |
| バージョン:なし | |
| static constexpr u32 | MAGIC_NUMBER_NOTHING = 0 |
| 識別子:なし | |
| static GX_CSTR | EXTENSION_NOTHING = "" |
| 拡張子:なし | |
初期化 | |
| GxRttiResource (GxRtti::TYPE type, u32 size, u32 id, u32 attribute, GxRtti *pBaseRtti, GxRtti::CREATE_INSTANCE_FUNCTION pCreateInstanceFunction, GxRtti::GET_PROPERTIES_FUNCTION pGetPropertiesFunction, GxRtti::GET_PROPERTY_NUM_FUNCTION pGetPropertyNumFunction, u32 version, u32 magicNumber, GX_CSTR extension, u32 resourceAttribute, RESOURCE_CREATE_FUNCTION pResourceCreateFunction, RESOURCE_LOAD_FUNCTION pResourceLoadFunction) | |
| コンストラクタ | |
操作 | |
| const GxRttiResource * | findNodeFromExtension (GX_CSTR extension) const |
| RTTI木ノード探索 (拡張子指定) | |
| const GxRttiResource * | enumerate (const GxRttiResource *pRootRtti) const |
| RTTI木ノード列挙 | |
| void | createCallback (GxResBase *pResource, void *pUser) const |
| 生成時コールバック | |
| b32 | load (GxResBase *pResource, GxStream &stream, u32 size) const |
| ロード | |
| static GX_FORCE_INLINE const GxRttiResource * | castRtti (const GxRtti *pRtti) |
| Rtti* → GxRttiResource* 動的キャスト | |
| static const GxRttiResource * | getRtti (u32 id) |
| RTTI探索 (ID指定) | |
| static const GxRttiResource * | getRttiFromExtension (GX_CSTR extension) |
| RTTI探索 (拡張子指定) | |
| static const GxRttiResource * | getRttiFromPath (GX_CSTR path) |
| RTTI探索 (パス指定) | |
アクセサ | |
| b32 | isRootRtti (void) const |
| ルートリソースRTTI判定 | |
| GX_FORCE_INLINE b32 | isResourceAttribute (RESOURCE_ATTRIBUTE attribute) const |
| リソース属性判定 | |
| const GxRttiResource * | getParent (void) const |
| 親のRTTIを取得 | |
| const GxRttiResource * | getChild (void) const |
| 子のRTTIを取得 | |
| const GxRttiResource * | getNext (void) const |
| 次のRTTIを取得 | |
| constexpr u32 | getVersion (void) const |
| バージョン取得 | |
| constexpr u32 | getMagicNumber (void) const |
| マジックナンバー取得 | |
| COMPRESS_TYPE | getCompressType (void) const |
| 圧縮タイプ取得 | |
| constexpr GX_CSTR | getExtension (void) const |
| 拡張子取得 | |
| constexpr u32 | getResourceAttribute (void) const |
| リソースの属性取得 | |
| constexpr void | setVersion (u32 version) |
| static void | forceFinalizedDefault (const GxRtti &rtti) |
| finalizedCommon リソースを強制的にプラットフォーム固有(finalizedXXX) へ変更します。 | |
Additional Inherited Members | |
Public Types inherited from 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) |
Public Member Functions inherited from GxRtti | |
| 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 GxRtti * | enumerate (const GxRtti *pRootRtti) const |
| 指定以下のRTTIを列挙 | |
| GX_FORCE_INLINE void * | createInstance (void) const |
| インスタンスを生成 | |
| void | trace (GxTypedObject *pObject) |
| デバッグ出力 | |
| 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 GxRtti * | getParent (void) const |
| 親を取得 | |
| constexpr GxRtti * | getChild (void) const |
| 子を取得 | |
| constexpr GxRtti * | getNext (void) const |
| 次の兄弟を取得 | |
| u32 | getPropertyCount (void) const |
| プロパティ数を取得 | |
| GxProperty * | getProperty (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 |
| 関数型の数を取得 | |
| GxFunction * | getFunction (u32 index) const |
| 関数型を取得 | |
| const GxTypedObject * | getDefaultObject (GxTypedObject *pCustomObject=nullptr) |
| デフォルトオブジェクトを取得 | |
| constexpr GxTypedObject * | getSingletonInstance (void) const |
| シングルトンインスタンスを取得 | |
| constexpr void | setSingletonInstance (GxTypedObject *pSingletonInstance) |
| シングルトンインスタンスを設定 | |
| void | deleteDefaultObjectSub (void) |
| デフォルトオブジェクトを削除するサブ関数 | |
Static Public Member Functions inherited from GxRtti | |
| static void | copyObject (GxTypedObject *pObjectDst, const GxTypedObject *pObjectSrc, const GxRtti &rtti) |
| 指定オブジェクトをコピー | |
| static void | forceUsage (GxRtti &rtti) |
| 最適化回避呼び出し | |
| static const GxRtti * | getRtti (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 GxRtti * | getNextRtti (const GxRtti &rttiRoot, const GxRtti &rttiTarget) |
| 次のRTTIを取得 | |
| static GxRtti & | getRttiRoot (void) |
| RTTIルートを取得 | |
| static void | deleteDefaultObjectAll (void) |
| 全てのデフォルトオブジェクトを削除 | |
Static Public Attributes inherited from GxRtti | |
| static constexpr u32 | DEFAULT_ID = 0xffffffffL |
| GxRttiのIDを定義しなかったときのデフォルト値 | |
| static volatile GxRtti * | _pUsageCall = nullptr |
| 最適化回避呼び出し | |
| static GX_CHAR | _usageDummy [8] |
| 最適化回避用バッファ | |
リソース実行時型情報クラス
|
strong |
属性定義
|
static |
Rtti* → GxRttiResource* 動的キャスト
| pRtti | [in] 実行時型情報 |


| void GxRttiResource::createCallback | ( | GxResBase * | pResource, |
| void * | pUser ) const |
生成時コールバック
| pResource | [in] 生成したリソース |
| pUser | [in,out] ユーザ定義任意ポインタ |

| const GxRttiResource * GxRttiResource::enumerate | ( | const GxRttiResource * | pRootRtti | ) | const |
RTTI木ノード列挙
| pRootRtti | [in] ルートRTTI |

| const GxRttiResource * GxRttiResource::findNodeFromExtension | ( | GX_CSTR | extension | ) | const |
RTTI木ノード探索 (拡張子指定)
| extension | [in] 拡張子文字列 |


|
static |
finalizedCommon リソースを強制的にプラットフォーム固有(finalizedXXX) へ変更します。
| rtti | [in] RTTI |

|
static |
RTTI探索 (ID指定)
| id | [in] クラスID |


|
static |
RTTI探索 (拡張子指定)
| extension | [in] 拡張子文字列 |


|
static |
RTTI探索 (パス指定)
| path | [in] パス (※拡張子必要) |


ロード
| pResource | [in] ロードを実行するリソース |
| stream | [in] ロード対象のストリーム |
| size | [in] ロードサイズ |
