ULIS  dev4.0.7
Utility Library for Imaging Systems
Public Member Functions | Static Public Member Functions | List of all members
TLayerStack< BlockType, RendererType, TSuperStackExtra > Class Template Reference

The TLayerStack class provides a class to store a layer stack for painting applications.

Inheritance diagram for TLayerStack< BlockType, RendererType, TSuperStackExtra >:

Public Member Functions

 TLayerStack (const TLayerStack &)=delete
 
template<typename ... Args>
 TLayerStack (uint16 iWidth, uint16 iHeight, eFormat iFormat=eFormat::Format_RGBA8, const FColorSpace *iColorSpace=nullptr, const FOnSelfChanged &iOnSelfChanged=FOnSelfChanged(), const FOnNodeAdded &iOnLayerAdded=FOnNodeAdded(), const FOnNodeRemoved &iOnLayerRemoved=FOnNodeRemoved(), const FOnUserDataAdded &iOnUserDataAdded=FOnUserDataAdded(), const FOnUserDataChanged &iOnUserDataChanged=FOnUserDataChanged(), const FOnUserDataRemoved &iOnUserDataRemoved=FOnUserDataRemoved(), Args ... args)
 
 ~TLayerStack () override
 
TLayerStackoperator= (const TLayerStack &)=delete
 
FEvent RenderImage (FContext &iCtx, BlockType &ioBlock, const FRectI &iRect=FRectI::Auto, const FVec2I &iPos=FVec2I(0), const FSchedulePolicy &iPolicy=FSchedulePolicy(), uint32 iNumWait=0, const FEvent *iWaitList=nullptr) override
 
template<typename ... Args>
void Reset (uint16 iWidth, uint16 iHeight, eFormat iFormat=eFormat::Format_RGBA8, const FColorSpace *iColorSpace=nullptr, const FOnSelfChanged &iOnSelfChanged=FOnSelfChanged(), const FOnNodeAdded &iOnLayerAdded=FOnNodeAdded(), const FOnNodeRemoved &iOnLayerRemoved=FOnNodeRemoved(), const FOnUserDataAdded &iOnUserDataAdded=FOnUserDataAdded(), const FOnUserDataChanged &iOnUserDataChanged=FOnUserDataChanged(), const FOnUserDataRemoved &iOnUserDataRemoved=FOnUserDataRemoved(), Args ... args)
 
virtual const FString Type () const override
 
virtual const uint32 TypeID () const override
 
- Public Member Functions inherited from TAbstractLayerDrawable< BlockType >
virtual ~TAbstractLayerDrawable () override=0
 
 ILayer (const FString &iName="Untitled", bool iLocked=false, bool iVisible=true, const FColor &iPrettyColor=FColor::Transparent, const TRoot< ILayer > *iParent=nullptr, const FOnNameChanged &iOnNameChanged=FOnNameChanged(), const FOnBoolChanged &iOnLockChanged=FOnBoolChanged(), const FOnBoolChanged &iOnVisibleChanged=FOnBoolChanged(), const FOnColorChanged &iOnColorChanged=FOnColorChanged(), const FOnUserDataAdded &iOnUserDataAdded=FOnUserDataAdded(), const FOnUserDataChanged &iOnUserDataChanged=FOnUserDataChanged(), const FOnUserDataRemoved &iOnUserDataRemoved=FOnUserDataRemoved(), const FOnParentChanged &iOnParentChanged=FOnParentChanged(), const FOnSelfChanged &iOnSelfChanged=FOnSelfChanged())
 
void OnChangeNotifiedInternal () override
 
- Public Member Functions inherited from ILayer
 ILayer (const FString &iName="Untitled", bool iLocked=false, bool iVisible=true, const FColor &iPrettyColor=FColor::Transparent, const TRoot< ILayer > *iParent=nullptr, const FOnNameChanged &iOnNameChanged=FOnNameChanged(), const FOnBoolChanged &iOnLockChanged=FOnBoolChanged(), const FOnBoolChanged &iOnVisibleChanged=FOnBoolChanged(), const FOnColorChanged &iOnColorChanged=FOnColorChanged(), const FOnUserDataAdded &iOnUserDataAdded=FOnUserDataAdded(), const FOnUserDataChanged &iOnUserDataChanged=FOnUserDataChanged(), const FOnUserDataRemoved &iOnUserDataRemoved=FOnUserDataRemoved(), const FOnParentChanged &iOnParentChanged=FOnParentChanged(), const FOnSelfChanged &iOnSelfChanged=FOnSelfChanged())
 
virtual ~ILayer () override=0
 
- Public Member Functions inherited from TNode< ILayer >
 TNode (const tParent *iParent=nullptr, const TOnParentChanged< ILayer > &iParentChangedDelegate=TOnParentChanged< ILayer >(), const TOnSelfChanged< ILayer > &iSelfChangedDelegate=TOnSelfChanged< ILayer >())
 
virtual ~TNode ()
 
ILayerDef (std::function< void(ILayer &) > iFunc)
 
void NotifyChange () const
 
const tParentParent () const
 
ILayerSelf ()
 
const ILayerSelf () const
 
void SetParent (const tParent *iParent)
 
const tParentTopLevelParent () const
 
- Public Member Functions inherited from TCallbackCapable< DelegateType, _ID >
 TCallbackCapable (const DelegateType &iDelegate=DelegateType())
 
 TCallbackCapable (typename DelegateType::tFptr iDelegateFPTR)
 
const DelegateType & GetDelegate () const
 
template<typename ... Args>
void Invoke (Args ... args) const
 
void SetDelegate (const DelegateType &iDelegate)
 
void SetDelegate (const TCallbackCapable< DelegateType, _ID > &iOther)
 
void SetDelegate (typename DelegateType::tFptr iDelegateFPTR)
 
- Public Member Functions inherited from IHasUserData
void AddOrSetUserData (IUserData *iData)
 
template<class TUserData >
const TUserData * GetUserData () const
 
const IUserDataGetUserData (uint32 iTypeID) const
 
const TArray< IUserData * > & GetUserDataArray () const
 
template<class TUserData >
bool HasUserData () const
 
template<class TUserData >
void RemoveUserData ()
 
void RemoveUserData (uint32 iTypeID)
 
void ResetUserData ()
 
bool UserDataExists (uint32 iTypeID) const
 
- Public Member Functions inherited from IHasName
 IHasName (const FString &iValue, const FOnNameChanged &iDelegate=FOnNameChanged())
 
const FStringName () const
 
void SetName (const FString &iValue)
 
- Public Member Functions inherited from IHasLock
bool IsLocked () const
 
void SetLocked (bool i)
 
- Public Member Functions inherited from IHasVisibility
bool IsVisible () const
 
void SetVisible (bool i)
 
- Public Member Functions inherited from IHasPrettyColor
const FColorPrettyColor () const
 
void SetPrettyColor (const FColor &iValue)
 
- Public Member Functions inherited from TDrawable< BlockType >
virtual void InvalidImageCache ()
 
bool IsImageCacheValid () const
 
virtual FEvent RenderImageCache (FContext &iCtx)
 
- Public Member Functions inherited from TRoot< ILayer >
 TRoot (tParent *iParent=nullptr, const TOnParentChanged< ILayer > &iParentChangedDelegate=TOnParentChanged< ILayer >(), const TOnSelfChanged< ILayer > &iSelfChangedDelegate=TOnSelfChanged< ILayer >(), const TOnNodeAdded< ILayer > &iNodeAddedDelegate=TOnNodeAdded< ILayer >(), const TOnNodeRemoved< ILayer > &iNodeRemovedDelegate=TOnNodeRemoved< ILayer >())
 
virtual ~TRoot () override
 
tSelfAddChild (tNode *iNode, uint64 iIndex=0xFFFFFFFFFFFFFFFF)
 
TArray< tNode * > & Children ()
 
const TArray< tNode * > & Children () const
 
void DeleteChild (int iIndex)
 
ILayeroperator[] (uint64 iIndex)
 
const ILayeroperator[] (uint64 iIndex) const
 
void Reset (tParent *iParent=nullptr, const TOnParentChanged< ILayer > &iParentChangedDelegate=TOnParentChanged< ILayer >(), const TOnNodeAdded< ILayer > &iNodeAddedDelegate=TOnNodeAdded< ILayer >(), const TOnNodeRemoved< ILayer > &iNodeRemovedDelegate=TOnNodeRemoved< ILayer >())
 
- Public Member Functions inherited from TSearchable< TRoot< ILayer > >
 TSearchable ()
 
virtual ~TSearchable ()=0
 
T & Find (const FString &iName)
 
const T & Find (const FString &iName) const
 
InnerType & operator[] (const FString &iStr)
 
const InnerType & operator[] (const FString &iStr) const
 
- Public Member Functions inherited from IHasSize2D
 ~IHasSize2D ()
 
uint32 Area () const
 
uint16 Height () const
 
FRectI Rect () const
 
FVec2I Size () const
 
uint16 Width () const
 
- Public Member Functions inherited from IHasFormat
 ~IHasFormat ()
 
uint8 AlphaIndex () const
 
uint8 BytesPerPixel () const
 
uint8 BytesPerSample () const
 
uint8 DefaultProfileCode () const
 
eFormat Format () const
 
const FFormatMetricsFormatMetrics () const
 
bool HasAlpha () const
 
const uint8IndexTable () const
 
bool Linear () const
 
eColorModel Model () const
 
uint8 NumColorChannels () const
 
bool Planar () const
 
bool Premultiplied () const
 
uint8 RedirectedIndex (uint8 iIndex) const
 
bool Reversed () const
 
uint8 SamplesPerPixel () const
 
bool Swapped () const
 
eType Type () const
 
- Public Member Functions inherited from IHasColorSpace
 ~IHasColorSpace ()
 
void AssignColorSpace (const FColorSpace *iColorSpace)
 
const FColorSpaceColorSpace () const
 

Static Public Member Functions

constexpr static const char * StaticType ()
 
constexpr static const uint32 StaticTypeID ()
 

Additional Inherited Members

- Public Types inherited from TNode< ILayer >
using InnerType = ILayer
 
- Public Types inherited from TCallbackCapable< DelegateType, _ID >
using Delegate = DelegateType
 
- Public Types inherited from TRoot< ILayer >
using InnerType = ILayer
 
- Protected Member Functions inherited from IHasUserData
 IHasUserData (const FOnUserDataAdded &iDelegateAdd=FOnUserDataAdded(), const FOnUserDataChanged &iDelegateChanged=FOnUserDataChanged(), const FOnUserDataRemoved &iDelegateRemoved=FOnUserDataRemoved())
 
 IHasUserData (const IHasUserData &)=delete
 
 ~IHasUserData ()
 
IHasUserDataoperator= (const IHasUserData &)=delete
 
- Protected Member Functions inherited from IHasLock
 IHasLock (bool i=false, const FOn_bool_Changed &d=FOn_bool_Changed())
 
- Protected Member Functions inherited from IHasVisibility
 IHasVisibility (bool i=true, const FOn_bool_Changed &d=FOn_bool_Changed())
 
- Protected Member Functions inherited from IHasPrettyColor
 IHasPrettyColor (const FColor &iColor=FColor::Transparent, const FOnColorChanged &iDelegate=FOnColorChanged())
 
- Protected Member Functions inherited from TDrawable< BlockType >
 TDrawable ()
 
void ValidateImageCache ()
 
- Protected Member Functions inherited from TRoot< ILayer >
virtual void InitFromParent (const tParent *iParent) override
 
- Protected Member Functions inherited from IHasSize2D
 IHasSize2D (const FVec2UI16 &iSize)
 
void ReinterpretSize (const FVec2UI16 &iSize)
 
- Protected Member Functions inherited from IHasFormat
 IHasFormat (eFormat iFormat)
 
void ReinterpretFormat (eFormat iFormat)
 
- Protected Member Functions inherited from IHasColorSpace
 IHasColorSpace (const FColorSpace *iColorSpace=nullptr)
 

Constructor & Destructor Documentation

◆ ~TLayerStack()

template<class BlockType , class RendererType , class TSuperStackExtra >
TLayerStack< BlockType, RendererType, TSuperStackExtra >::~TLayerStack ( )
override

◆ TLayerStack() [1/2]

template<class BlockType , class RendererType , class TSuperStackExtra >
template<typename ... Args>
TLayerStack< BlockType, RendererType, TSuperStackExtra >::TLayerStack ( uint16  iWidth,
uint16  iHeight,
eFormat  iFormat = eFormat::Format_RGBA8,
const FColorSpace iColorSpace = nullptr,
const FOnSelfChanged iOnSelfChanged = FOnSelfChanged(),
const FOnNodeAdded iOnLayerAdded = FOnNodeAdded(),
const FOnNodeRemoved iOnLayerRemoved = FOnNodeRemoved(),
const FOnUserDataAdded iOnUserDataAdded = FOnUserDataAdded(),
const FOnUserDataChanged iOnUserDataChanged = FOnUserDataChanged(),
const FOnUserDataRemoved iOnUserDataRemoved = FOnUserDataRemoved(),
Args ...  args 
)

◆ TLayerStack() [2/2]

template<class BlockType , class RendererType , class TSuperStackExtra >
TLayerStack< BlockType, RendererType, TSuperStackExtra >::TLayerStack ( const TLayerStack< BlockType, RendererType, TSuperStackExtra > &  )
delete

Member Function Documentation

◆ operator=()

template<class BlockType , class RendererType , class TSuperStackExtra >
TLayerStack& TLayerStack< BlockType, RendererType, TSuperStackExtra >::operator= ( const TLayerStack< BlockType, RendererType, TSuperStackExtra > &  )
delete

◆ RenderImage()

template<class BlockType , class RendererType , class TSuperStackExtra >
FEvent TLayerStack< BlockType, RendererType, TSuperStackExtra >::RenderImage ( FContext iCtx,
BlockType &  ioBlock,
const FRectI iRect = FRectI::Auto,
const FVec2I iPos = FVec2I(0),
const FSchedulePolicy iPolicy = FSchedulePolicy(),
uint32  iNumWait = 0,
const FEvent iWaitList = nullptr 
)
overridevirtual

◆ Reset()

template<class BlockType , class RendererType , class TSuperStackExtra >
template<typename ... Args>
void TLayerStack< BlockType, RendererType, TSuperStackExtra >::Reset ( uint16  iWidth,
uint16  iHeight,
eFormat  iFormat = eFormat::Format_RGBA8,
const FColorSpace iColorSpace = nullptr,
const FOnSelfChanged iOnSelfChanged = FOnSelfChanged(),
const FOnNodeAdded iOnLayerAdded = FOnNodeAdded(),
const FOnNodeRemoved iOnLayerRemoved = FOnNodeRemoved(),
const FOnUserDataAdded iOnUserDataAdded = FOnUserDataAdded(),
const FOnUserDataChanged iOnUserDataChanged = FOnUserDataChanged(),
const FOnUserDataRemoved iOnUserDataRemoved = FOnUserDataRemoved(),
Args ...  args 
)

◆ StaticType()

template<class BlockType , class RendererType , class TSuperStackExtra >
constexpr static const char* TLayerStack< BlockType, RendererType, TSuperStackExtra >::StaticType ( )
inlinestaticconstexpr

◆ StaticTypeID()

template<class BlockType , class RendererType , class TSuperStackExtra >
constexpr static const uint32 TLayerStack< BlockType, RendererType, TSuperStackExtra >::StaticTypeID ( )
inlinestaticconstexpr

◆ Type()

template<class BlockType , class RendererType , class TSuperStackExtra >
virtual const FString TLayerStack< BlockType, RendererType, TSuperStackExtra >::Type ( ) const
inlineoverridevirtual

Implements ITypeIdentifiable.

◆ TypeID()

template<class BlockType , class RendererType , class TSuperStackExtra >
virtual const uint32 TLayerStack< BlockType, RendererType, TSuperStackExtra >::TypeID ( ) const
inlineoverridevirtual

Implements ITypeIdentifiable.