|
KarmaEngine
Game Engine for practical learning and research purposes
|
Base class for all UObject types that contain fields. More...
#include <Class.h>


Public Member Functions | |
| bool | IsChildOf (const UStruct *SomeBase) const |
| UStruct * | GetSuperStruct () const |
| FORCEINLINE size_t | GetPropertiesSize () const |
| Total size of all UProperties, the allocated structure may be larger due to alignment. | |
| virtual void | SetSuperStruct (UStruct *NewSuperStruct) |
Public Member Functions inherited from Karma::UObject | |
| UObject () | |
| virtual void | FinishDestroy () |
| virtual const std::string & | GetDesc () |
| Return a one line description of an object for viewing in the thumbnail view of the generic browser. | |
| virtual class UWorld * | GetWorld () const |
| Returns what UWorld this object is contained within. | |
| bool | IsValidChecked (const UObject *Test) |
| virtual void | BeginDestroy () |
| Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process. | |
| FORCEINLINE bool | Modify (bool bAlwaysMarkDirty=true) |
| bool | IsSelected () const |
| Test the selection state of a UObject. | |
Public Member Functions inherited from Karma::UObjectBase | |
| UObjectBase (UClass *inClass, EObjectFlags inFlags, EInternalObjectFlags inInternalFlags, UObject *inOuter, const std::string &inName) | |
| UPackage * | GetPackage () const |
| UPackage * | GetExternalPackage () const |
| bool | IsUnreachable () const |
| FORCEINLINE void | SetInternalIndex (uint32_t StoreIndex) |
| FORCEINLINE uint32_t | GetInternalIndex () const |
| void | MarkAsGarbage () |
| void | ClearGarbage () |
| FORCEINLINE const std::string & | GetName () const |
| FORCEINLINE void | SetObjectName (const std::string &aName) |
| FORCEINLINE UObject * | GetOuter () const |
| UObject * | GetTypedOuter (UClass *Target) const |
| template<typename T> | |
| T * | GetTypedOuter () const |
| bool | IsValidLowLevel () const |
| template<typename OtherClassType> | |
| FORCEINLINE bool | IsA (OtherClassType SomeBase) const |
| FORCEINLINE UClass * | GetClass () const |
| FORCEINLINE EObjectFlags | GetFlags () const |
| FORCEINLINE void | SetFlags (EObjectFlags NewFlags) |
| FORCEINLINE void | ClearFlags (EObjectFlags FlagsToClear) |
| FORCEINLINE bool | HasAnyFlags (EObjectFlags FlagsToCheck) const |
| FORCEINLINE bool | HasAnyInternalFlags (EInternalObjectFlags FlagsToCheck) const |
| FORCEINLINE void | SetInternalFlags (EInternalObjectFlags FlagsToSet) const |
| FORCEINLINE void | AddToRoot () |
Public Attributes | |
| size_t | m_PropertiesSize |
| size_t | m_MinAlignment |
Additional Inherited Members | |
Static Public Member Functions inherited from Karma::UObject | |
| static const char * | StaticConfigName () |
Static Public Member Functions inherited from Karma::UObjectBase | |
| static FORCEINLINE EInternalObjectFlags | FixGarbageOrPendingKillInternalObjectFlags (const EInternalObjectFlags InFlags) |
Protected Member Functions inherited from Karma::UObjectBase | |
| UObjectBase () | |
| Providing a default constructor. | |
| FORCEINLINE void | SetFlagsTo (EObjectFlags NewFlags) |
Base class for all UObject types that contain fields.
|
inline |
Total size of all UProperties, the allocated structure may be larger due to alignment.
The size, in bytes, of the UObject object whose UStruct (rather UClass) is this object.
|
inline |
Struct this inherits from, may be null
| bool Karma::UStruct::IsChildOf | ( | const UStruct * | SomeBase | ) | const |
Returns true if this struct either is SomeBase, or is a child of SomeBase. This will not crash on null structs
|
virtual |
Sets the super struct pointer.
Reimplemented in Karma::UClass.
| size_t Karma::UStruct::m_MinAlignment |
Alignment of structure in memory, structure will be at least this large
| size_t Karma::UStruct::m_PropertiesSize |
Total size of all UProperties, the allocated structure may be larger due to alignment
From Epic's code, seems like the size of this object is m_ProperitesSize, for details see https://github.com/EpicGames/UnrealEngine/blob/5ca9da84c694c6eee288c30a547fcaa1a40aed9b/Engine/Source/Runtime/CoreUObject/Public/UObject/ObjectMacros.h#L2016
Ponder why in the world this field is public.