リソース実行時型情報クラス 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 | |
![]() | |
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) |
![]() | |
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 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 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] ロードサイズ |