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

リソース実行時型情報クラス More...

#include <GxRttiResource.h>

Inheritance diagram for GxRttiResource:
Collaboration diagram for GxRttiResource:

Protected Attributes

メンバ変数
u32 _version
 バージョン
 
u32 _magicNumber
 識別用番号
 
u32 _resourceAttribute
 リソース属性
 
RESOURCE_CREATE_FUNCTION _pResourceCreateFunction
 リソース生成時コールバック関数ポインタ
 
RESOURCE_LOAD_FUNCTION _pResourceLoadFunction
 リソースロード関数ポインタ
 
GX_CSTR _extension
 拡張子
 

定義

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 GxRttiResourcefindNodeFromExtension (GX_CSTR extension) const
 RTTI木ノード探索 (拡張子指定)
 
const GxRttiResourceenumerate (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 GxRttiResourcecastRtti (const GxRtti *pRtti)
 Rtti* → GxRttiResource* 動的キャスト
 
static const GxRttiResourcegetRtti (u32 id)
 RTTI探索 (ID指定)
 
static const GxRttiResourcegetRttiFromExtension (GX_CSTR extension)
 RTTI探索 (拡張子指定)
 
static const GxRttiResourcegetRttiFromPath (GX_CSTR path)
 RTTI探索 (パス指定)
 

アクセサ

b32 isRootRtti (void) const
 ルートリソースRTTI判定
 
GX_FORCE_INLINE b32 isResourceAttribute (RESOURCE_ATTRIBUTE attribute) const
 リソース属性判定
 
const GxRttiResourcegetParent (void) const
 親のRTTIを取得
 
const GxRttiResourcegetChild (void) const
 子のRTTIを取得
 
const GxRttiResourcegetNext (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 GxRttienumerate (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 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 Public Member Functions inherited from GxRtti
static void copyObject (GxTypedObject *pObjectDst, const GxTypedObject *pObjectSrc, const GxRtti &rtti)
 指定オブジェクトをコピー
 
static void forceUsage (GxRtti &rtti)
 最適化回避呼び出し
 
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)
 全てのデフォルトオブジェクトを削除
 
- Static Public Attributes inherited from GxRtti
static constexpr u32 DEFAULT_ID = 0xffffffffL
 GxRttiのIDを定義しなかったときのデフォルト値
 
static volatile GxRtti_pUsageCall = nullptr
 最適化回避呼び出し
 
static GX_CHAR _usageDummy [8]
 最適化回避用バッファ
 

Detailed Description

リソース実行時型情報クラス

Member Enumeration Documentation

◆ COMPRESS_TYPE

enum class GxRttiResource::COMPRESS_TYPE
strong

圧縮タイプ定義

Enumerator
NONE 

無圧縮

ZLIB 

Zlib圧縮

◆ RESOURCE_ATTRIBUTE

属性定義

Enumerator
RESOURCE_ATTRIBUTE_NOTHING 

なし

RESOURCE_ATTRIBUTE_ORIGINAL 

オリジナルリソース

RESOURCE_ATTRIBUTE_FINALIZED 

ファイナライズリソース

RESOURCE_ATTRIBUTE_CONFIG 

コンフィグリソース

RESOURCE_ATTRIBUTE_RAW 

RAWデータリソース (※RAWデータ → ファイナライズがオリジナルの純粋コピーであるデータ)

RESOURCE_ATTRIBUTE_HAVE_CONFIG 

コンフィグファイル所持

RESOURCE_ATTRIBUTE_SAVABLE 

セーブ有効

RESOURCE_ATTRIBUTE_HAVE_HEADER 

ヘッダー所持

RESOURCE_ATTRIBUTE_COMPRESS_ZLIB 

Zlib圧縮

RESOURCE_ATTRIBUTE_HARDWARE_COMMON 

ハードウェア間共通リソース (※ファイナライズリソースの追加属性)

RESOURCE_ATTRIBUTE_DYNAMIC_REFERENCE 

動的なリソース参照をする

RESOURCE_ATTRIBUTE_PACK_ORIGINAL_DEFAULT 

オリジナルリソース :基本

RESOURCE_ATTRIBUTE_PACK_ORIGINAL_IMPORT 

オリジナルリソース :外部インポート (モデル、テクスチャ)

RESOURCE_ATTRIBUTE_PACK_FINALIZED_DEFAULT 

ファイナライズリソース :基本 (圧縮有効)

RESOURCE_ATTRIBUTE_PACK_FINALIZED_NO_COMPRESS 

ファイナライズリソース :基本 (圧縮無効)

RESOURCE_ATTRIBUTE_PACK_FINALIZED_RAW 

ファイナライズリソース :RAWデータ

RESOURCE_ATTRIBUTE_PACK_FINALIZED_COMMON 

ファイナライズリソース :ハードウェア間共通 (圧縮有効)

RESOURCE_ATTRIBUTE_PACK_FINALIZED_COMMON_NO_COMPRESS 

ファイナライズリソース :ハードウェア間共通 (圧縮無効)

RESOURCE_ATTRIBUTE_PACK_CONFIG_DEFAULT 

コンフィグリソース :基本

Member Function Documentation

◆ castRtti()

GX_FORCE_INLINE const GxRttiResource * GxRttiResource::castRtti ( const GxRtti * pRtti)
static

Rtti* → GxRttiResource* 動的キャスト

Parameters
pRtti[in] 実行時型情報
Returns
キャスト後ポインタ (※型が異なればnullptr返却)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createCallback()

void GxRttiResource::createCallback ( GxResBase * pResource,
void * pUser ) const

生成時コールバック

Parameters
pResource[in] 生成したリソース
pUser[in,out] ユーザ定義任意ポインタ
Here is the caller graph for this function:

◆ enumerate()

const GxRttiResource * GxRttiResource::enumerate ( const GxRttiResource * pRootRtti) const

RTTI木ノード列挙

Parameters
pRootRtti[in] ルートRTTI
Returns
発見したGxRttiResourceポインタ (nullptrの場合:発見できず)
Here is the call graph for this function:

◆ findNodeFromExtension()

const GxRttiResource * GxRttiResource::findNodeFromExtension ( GX_CSTR extension) const

RTTI木ノード探索 (拡張子指定)

Parameters
extension[in] 拡張子文字列
Returns
発見したRTTIノードポインタ (nullptrの場合:発見できず)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ forceFinalizedDefault()

void GxRttiResource::forceFinalizedDefault ( const GxRtti & rtti)
static

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

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

◆ getRtti()

const GxRttiResource * GxRttiResource::getRtti ( u32 id)
static

RTTI探索 (ID指定)

Parameters
id[in] クラスID
Returns
発見したGxRttiResourceポインタ (nullptrの場合:発見できず)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRttiFromExtension()

const GxRttiResource * GxRttiResource::getRttiFromExtension ( GX_CSTR extension)
static

RTTI探索 (拡張子指定)

Parameters
extension[in] 拡張子文字列
Returns
発見したGxRttiResourceポインタ (nullptrの場合:発見できず)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getRttiFromPath()

const GxRttiResource * GxRttiResource::getRttiFromPath ( GX_CSTR path)
static

RTTI探索 (パス指定)

Parameters
path[in] パス (※拡張子必要)
Returns
発見したGxRttiResourceポインタ (nullptrの場合:発見できず)
Note
拡張子抜き出しを省略できる補助インターフェース。
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load()

b32 GxRttiResource::load ( GxResBase * pResource,
GxStream & stream,
u32 size ) const

ロード

Parameters
pResource[in] ロードを実行するリソース
stream[in] ロード対象のストリーム
size[in] ロードサイズ
Returns
成功ならtrue
Here is the caller graph for this function:

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