Gorgon Game Engine
TintedObject Class Reference

This is a tinted object resource. More...

Inheritance diagram for TintedObject:
[legend]

Public Member Functions

 TintedObject ()
 Creates a new empty tinted object. More...
 
 TintedObject (Graphics::TintedBitmapAnimationProvider &&prov)
 Creates a new tinted object using another tinted object provider. More...
 
 TintedObject (Graphics::TintedBitmapAnimationProvider &prov)
 Creates a new tinted object using another tinted object provider. More...
 
 TintedObject (Graphics::TintedBitmapProvider &&prov)
 Creates a new tinted object using another tinted object provider. More...
 
 TintedObject (Graphics::TintedBitmapProvider &prov)
 Creates a new tinted object using another tinted object provider. More...
 
 TintedObject (Graphics::TintedObjectProvider &&prov)
 Creates a new tinted object using another tinted object provider. More...
 
 TintedObject (Graphics::TintedObjectProvider &prov)
 Creates a new tinted object using another tinted object provider. More...
 
void AssumeProvider (Graphics::TintedBitmapAnimationProvider &value)
 Changes the provider stored in this tinted object, ownership will be transferred. More...
 
void AssumeProvider (Graphics::TintedBitmapProvider &value)
 Changes the provider stored in this tinted object, ownership will be transferred. More...
 
void AssumeProvider (Graphics::TintedObjectProvider &value)
 Changes the provider stored in this tinted object, ownership will be transferred. More...
 
virtual Graphics::TintedObjectCreateAnimation (bool create=true) const override
 This function should create and animation and depending on the create parameter, it should create its own timer. More...
 
virtual Graphics::TintedObjectCreateAnimation (Gorgon::Animation::ControllerBase &timer) const override
 This function should create a new animation with the given controller and if owner parameter is set to true, it should assume ownership of the controller. More...
 
virtual Graphics::RectangularAnimationCreateBase () const override
 
virtual Graphics::RGBAf GetColor () const override
 
GID::Type GetGID () const override
 This function shall return Gorgon ID of this resource. More...
 
virtual Geometry::Size GetSize () const override
 
ITintedObjectProvider & MoveOutProvider () override
 This function moves this animation provider into a new provider. More...
 
void RemoveProvider ()
 Removes the provider, if it is own by this resource it will be deleted. More...
 
virtual void SetColor (const Graphics::RGBAf &value) override
 
void SetProvider (Graphics::TintedBitmapAnimationProvider &value)
 Changes the provider stored in this tinted object, ownership will not be transferred. More...
 
void SetProvider (Graphics::TintedBitmapProvider &value)
 Changes the provider stored in this tinted object, ownership will not be transferred. More...
 
void SetProvider (Graphics::TintedObjectProvider &value)
 Changes the provider stored in this tinted object, ownership will not be transferred. More...
 
- Public Member Functions inherited from RectangularAnimationProvider
int GetHeight () const
 
int GetWidth () const
 
- Public Member Functions inherited from AnimationProvider
virtual ~AnimationProvider ()
 
- Public Member Functions inherited from Provider
virtual ~Provider ()
 Virtual destructor. More...
 
- Public Member Functions inherited from AnimationStorage
Graphics::RectangularAnimationStorage MoveOut ()
 Moves this animation out as a generic value type animation. More...
 
- Public Member Functions inherited from Base
 Base ()
 Default constructor. More...
 
const Containers::Collection< Base >::ConstIterator begin () const
 Allows easy iteration through range based fors. More...
 
const Containers::Collection< Base >::ConstIterator cbegin () const
 Beginning of children. More...
 
const Containers::Collection< Base >::ConstIterator cend () const
 End of children. More...
 
bool DeleteResource ()
 Safely deletes the resource. More...
 
virtual void Discard ()
 This function shall discard any transitional data which is not vital after Prepare function is issued. More...
 
const Containers::Collection< Base >::ConstIterator end () const
 Allows easy iteration through range based fors. More...
 
virtual SGuid GetGuid () const
 Returns the guid of the object. More...
 
const std::string & GetName () const
 Returns the name of this object. More...
 
BaseGetParent () const
 Returns the parent. If no parent set, this function throws std::runtime_error. More...
 
BaseGetParentPtr () const
 Returns the pointer to the parent. This function may return nullptr. More...
 
const BaseGetRoot () const
 Returns the root of this resource. More...
 
bool HasParent () const
 Returns whether this object has a parent. More...
 
virtual bool IsEqual (const SGuid &guid) const
 This function tests whether this object has the given SGuid. More...
 
virtual void Prepare ()
 This function shall prepare this resource to be used after resource is loaded. More...
 
virtual void Resolve (File &file)
 This function shall resolve links or similar constructs. More...
 
void Save (Writer &writer)
 Saves this object into the given writer. The writer should be open prior to this call. More...
 
virtual void SetGuid (SGuid guid)
 Changes the guid of the object. More...
 
virtual void SetName (const std::string &name)
 Sets the name of the object. More...
 

Static Public Member Functions

static TintedObjectLoadResource (std::weak_ptr< File > file, std::shared_ptr< Reader > reader, unsigned long size)
 This function loads a tinted object resource from the file. More...
 
static void SaveThis (Writer &writer, const Graphics::ITintedObjectProvider &provider)
 

Protected Member Functions

virtual Graphics::RectangularAnimationStorage animmoveout () override
 
void save (Writer &writer) const override
 
- Protected Member Functions inherited from Base
virtual ~Base ()
 Destructor, Always children gets destroyed first. More...
 
void destroychildren ()
 Destroys the children of this resource. More...
 
void setparenttonullptr (Base &base)
 Sets the parent of an object to nullptr, provides access. More...
 

Additional Inherited Members

- Public Types inherited from RectangularAnimationProvider
using AnimationType = RectangularAnimation
 
- Public Types inherited from AnimationProvider
using AnimationType = Animation
 
- Public Types inherited from Provider
using AnimationType = Base
 
- Public Attributes inherited from Base
const Containers::Collection< Base > & Children
 The children this object have. More...
 
unsigned long refcount
 INTERNAL, Reference count, used in linking mechanism. More...
 
- Protected Attributes inherited from Base
Containers::Collection< Basechildren
 Child objects that this resource object have. More...
 
SGuid guid
 SGuid to identify this resource object. More...
 
std::string name
 Name of this resource object, may not be loaded. More...
 
Baseparent
 Immediate parent of this resource. More...
 
const Baseroot
 Root of this resource. More...
 

Detailed Description

This is a tinted object resource.

It stores a Graphics::TintedObjectProvider or compatible types: Graphics::TintedBitmapProvider and Graphics::TintedBitmapAnimationProvider.

Constructor & Destructor Documentation

◆ TintedObject() [1/7]

Creates a new tinted object using another tinted object provider.

◆ TintedObject() [2/7]

Creates a new tinted object using another tinted object provider.

◆ TintedObject() [3/7]

Creates a new tinted object using another tinted object provider.

◆ TintedObject() [4/7]

Creates a new tinted object using another tinted object provider.

◆ TintedObject() [5/7]

Creates a new tinted object using another tinted object provider.

◆ TintedObject() [6/7]

Creates a new tinted object using another tinted object provider.

◆ TintedObject() [7/7]

Creates a new empty tinted object.

Member Function Documentation

◆ animmoveout()

Graphics::RectangularAnimationStorage animmoveout ( )
overrideprotectedvirtual

◆ AssumeProvider() [1/3]

void AssumeProvider ( Graphics::TintedBitmapAnimationProvider value)

Changes the provider stored in this tinted object, ownership will be transferred.

References TintedObject::RemoveProvider().

◆ AssumeProvider() [2/3]

void AssumeProvider ( Graphics::TintedBitmapProvider value)

Changes the provider stored in this tinted object, ownership will be transferred.

References TintedObject::RemoveProvider().

◆ AssumeProvider() [3/3]

void AssumeProvider ( Graphics::TintedObjectProvider value)

Changes the provider stored in this tinted object, ownership will be transferred.

References TintedObject::RemoveProvider().

◆ CreateAnimation() [1/2]

virtual Graphics::TintedObject& CreateAnimation ( bool  create = true) const
overridevirtual

This function should create and animation and depending on the create parameter, it should create its own timer.

Implements RectangularAnimationProvider.

References basic_TintedObjectProvider< A_ >::CreateAnimation().

◆ CreateAnimation() [2/2]

virtual Graphics::TintedObject& CreateAnimation ( Gorgon::Animation::ControllerBase timer) const
overridevirtual

This function should create a new animation with the given controller and if owner parameter is set to true, it should assume ownership of the controller.

Implements RectangularAnimationProvider.

References basic_TintedObjectProvider< A_ >::CreateAnimation().

◆ CreateBase()

virtual Graphics::RectangularAnimation& CreateBase ( ) const
overridevirtual

◆ GetColor()

virtual Graphics::RGBAf GetColor ( ) const
overridevirtual

◆ GetGID()

GID::Type GetGID ( ) const
overridevirtual

This function shall return Gorgon ID of this resource.

Implements Base.

References Gorgon::Resource::GID::TintedObject.

◆ GetSize()

virtual Geometry::Size GetSize ( ) const
overridevirtual

◆ LoadResource()

TintedObject * LoadResource ( std::weak_ptr< File file,
std::shared_ptr< Reader reader,
unsigned long  size 
)
static

This function loads a tinted object resource from the file.

References TintedObject::TintedObject().

◆ MoveOutProvider()

Graphics::ITintedObjectProvider & MoveOutProvider ( )
overridevirtual

This function moves this animation provider into a new provider.

Ownership of this new object belongs to the caller and this object could be destroyed safely.

Implements ITintedObjectProvider.

References Base::children.

◆ RemoveProvider()

void RemoveProvider ( )

Removes the provider, if it is own by this resource it will be deleted.

◆ save()

void save ( Writer writer) const
overrideprotectedvirtual

Implements Base.

References Writer::WriteEnd(), and Writer::WriteObjectStart().

◆ SaveThis()

void SaveThis ( Writer writer,
const Graphics::ITintedObjectProvider provider 
)
static

◆ SetColor()

virtual void SetColor ( const Graphics::RGBAf value)
overridevirtual

◆ SetProvider() [1/3]

void SetProvider ( Graphics::TintedBitmapAnimationProvider value)

Changes the provider stored in this tinted object, ownership will not be transferred.

References TintedObject::RemoveProvider().

◆ SetProvider() [2/3]

void SetProvider ( Graphics::TintedBitmapProvider value)

Changes the provider stored in this tinted object, ownership will not be transferred.

References TintedObject::RemoveProvider().

◆ SetProvider() [3/3]

void SetProvider ( Graphics::TintedObjectProvider value)

Changes the provider stored in this tinted object, ownership will not be transferred.

References TintedObject::RemoveProvider().


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