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 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]
 最適化回避用バッファ
 

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: