Vigilante Game Framework  1.0.0.8
A 2D/3D C++ Game Framework using SFML.
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
VRenderGroup Class Reference

Processes a group of objects and renders them all to a sprite object. More...

#include <VRenderGroup.h>

Inheritance diagram for VRenderGroup:
VGroup VBase V3DScene VTrailArea

Public Types

enum  VRenderGroupOutside : unsigned char { VRENDERGROUP_NO, VRENDERGROUP_BEFORE, VRENDERGROUP_AFTER, VRENDERGROUP_BOTH }
 Options for what happens to renderable objects outside of the VRenderGroup area. More...
 
typedef VGroup VSUPERCLASS
 Used to call parent class functions when they are overrided in class.
 
- Public Types inherited from VGroup
typedef VBase VSUPERCLASS
 Used to call parent class functions when they are overrided in class.
 

Public Member Functions

 VRenderGroup (unsigned int maxSize=0)
 Default Constructor for VRenderGroup.
 
 VRenderGroup (float x, float y, unsigned int width, unsigned int height, unsigned int maxSize=0)
 
 VRenderGroup (sf::Vector2f position, sf::Vector2u size, unsigned int maxSize=0)
 
virtual void Resize (int width, int height)
 
virtual const sf::Texture & GetTexture ()
 
virtual void Destroy () override
 Removes and/or destroys all objects inside the group and sprite before destroying extra data. (If an object is referenced in another VGroup, the object won't be destroyed)
 
virtual void Kill () override
 Kills all living objects before killing the group and the sprite themselves.
 
virtual void Revive () override
 Revives all dead objects before reviving the group and the sprite themselves.
 
virtual void Update (float dt) override
 
virtual void Draw (sf::RenderTarget &RenderTarget) override
 
- Public Member Functions inherited from VGroup
 VGroup (unsigned int maxSize=0)
 
int Length ()
 
VBaseAdd (VBase *object)
 
VBaseRemove (VBase *object, bool splice=false)
 
VBaseFirstAvailable ()
 
int FirstNULL ()
 
VBaseFirstExisting ()
 
VBaseFirstAlive ()
 
VBaseFirstDead ()
 
int CountAlive (bool Recursive=false)
 
int CountDead (bool Recursive=false)
 
VBaseGetRandom (int min=0, int max=0)
 
void ForEach (std::function< void(VBase *)> function, bool recursive=false)
 
void ForEachAlive (std::function< void(VBase *)> function, bool recursive=false)
 
void ForEachDead (std::function< void(VBase *)> function, bool recursive=false)
 
void ForEachExists (std::function< void(VBase *)> function, bool recursive=false)
 
VBaseGetGroupItem (int index)
 
template<class T >
T * GetGroupItemAsType (int index)
 
int GetIndexOfItem (VBase *object)
 
void OrganiseNULLS ()
 Sort nullptr members to the bottom of the group.
 
void Swap (int a, int b)
 
void Sort (std::function< bool(VBase *, VBase *)> func)
 
void Reverse ()
 Reverse order of group.
 
void Clear ()
 Clears the whole group (does not destroy any of the members, that must be done using the Destroy method).
 

Public Attributes

std::unique_ptr< VSpriteSprite = nullptr
 The sprite that the group will render to. Refer to this if you want to transform the render output.
 
sf::Color BackgroundTint = sf::Color::Transparent
 The background colour the sprite will have.
 
std::unique_ptr< VPostEffectBasePostEffect = nullptr
 Post Process (Shader) Effect to apply to the sprite.
 
std::unique_ptr< VCameraCamera = nullptr
 Camera for the sprite's render view.
 
bool RenderViewTransform = true
 If true, the camera's render view will be transformed based on the sprite's current transform, else it will use the camera's render view.
 
VRenderGroupOutside RenderOutside = VRENDERGROUP_NO
 If true, the content data would also be rendered outside of the sprite area. Used if you want an effect to apply to a specific area.
 
- Public Attributes inherited from VBase
bool active = true
 Base can be updated using Update if true.
 
bool visible = true
 Base can be rendered using Draw if true.
 
bool alive = true
 Helper member that is mainly used filter out behaviours to objects which aren't alive in the scene.
 
bool exists = true
 Base can be updated and rendered if true, else it would no longer be treated as being part of the scene.
 
VType type = NONE
 Base object type, typically set in the constructor of an inherited object to specify what type it is.
 
uint32_t RefCount = 0
 Counts the amount of times the object is referenced in groups, ensures an object is only destroyed when no longer part of a single group.
 

Protected Member Functions

void updateTransform ()
 Updates the transform.
 
void updateTexture (const sf::Texture &texture)
 Update the texture of the sprite.
 

Protected Attributes

sf::RenderTexture renderTex
 The sf::RenderTexture to render all the objects to.
 
sf::RenderTexture postProcessTex
 Another sf::RenderTexture for outputting the post process effect onto.
 
- Protected Attributes inherited from VGroup
std::vector< VBase * > members
 VBase List.
 
int length = 0
 Current amount of members in the list.
 
unsigned int MaxSize = 0
 Maximum Size of the list, used if VGroup is set to have a fixed size.
 

Additional Inherited Members

- Static Public Member Functions inherited from VBase
static const wchar_t * VString (const char *fmt,...)
 
static void VLog (const char *fmt,...)
 
static void VLogError (const char *fmt,...)
 
static void VClearLog ()
 

Detailed Description

Processes a group of objects and renders them all to a sprite object.

Member Enumeration Documentation

◆ VRenderGroupOutside

enum VRenderGroup::VRenderGroupOutside : unsigned char

Options for what happens to renderable objects outside of the VRenderGroup area.

Enumerator
VRENDERGROUP_NO 

No rendering.

VRENDERGROUP_BEFORE 

Render before the final texture of the render group.

VRENDERGROUP_AFTER 

Render after the final texture of the render group.

VRENDERGROUP_BOTH 

Render both before and after the final texture of the render group.

Constructor & Destructor Documentation

◆ VRenderGroup() [1/2]

VRenderGroup::VRenderGroup ( float  x,
float  y,
unsigned int  width,
unsigned int  height,
unsigned int  maxSize = 0 
)
Parameters
xX position of the sprite.
yY position of the sprite
widthWidth of the sprite (also sets the width of the render area).
heightHeight of the sprite (also sets the height of the render area).
maxSizeThe fixed length of the group. If 0, then the VGroup has no limit in size.

◆ VRenderGroup() [2/2]

VRenderGroup::VRenderGroup ( sf::Vector2f  position,
sf::Vector2u  size,
unsigned int  maxSize = 0 
)
Parameters
positionPosition of the sprite.
sizeSize of the sprite (also sets the size of the render area).
maxSizeThe fixed length of the group. If 0, then the VGroup has no limit in size.

Member Function Documentation

◆ Draw()

virtual void VRenderGroup::Draw ( sf::RenderTarget &  RenderTarget)
overridevirtual

Renders all alive and visible objects in the group.

Parameters
RenderTargetThe game's sf::RenderTarget object to render data onto.

Reimplemented from VGroup.

Reimplemented in V3DScene, and VTrailArea.

◆ GetTexture()

virtual const sf::Texture& VRenderGroup::GetTexture ( )
virtual
Returns
The sprite's texture after the scene is rendered to it.

Reimplemented in V3DScene.

◆ Resize()

virtual void VRenderGroup::Resize ( int  width,
int  height 
)
virtual

Resizes sprite and render area of the group.

Parameters
widthWidth of the sprite and texture area.
heightHeight of the sprite and texture area.

Reimplemented in V3DScene.

◆ Update()

virtual void VRenderGroup::Update ( float  dt)
overridevirtual

Updates all alive and active objects in the group.

Parameters
dtDelta Time between the previous and current frame.

Reimplemented from VGroup.

Reimplemented in V3DScene.


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