Visualization Library 2.1.0

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Classes | Public Member Functions | Protected Attributes | List of all members
vl::DrawPixels Class Reference

Wraps the OpenGL function glDrawPixels(). More...

#include <DrawPixels.hpp>

+ Inheritance diagram for vl::DrawPixels:

Classes

class  Pixels
 Represents a bitmap to be drawn on the screen. More...
 

Public Member Functions

 DrawPixels ()
 
void computeBounds_Implementation ()
 
void render_Implementation (const Actor *actor, const Shader *shader, const Camera *camera, OpenGLContext *gl_context) const
 Renders the bitamps. More...
 
const Collection< Pixels > * draws () const
 
Collection< Pixels > * draws ()
 
void deletePixelBufferObjects ()
 deallocate PBOs More...
 
void releaseImages ()
 Iterates on the Pixels objects and sets their Image references to NULL. More...
 
bool generatePixelBufferObjects (EBufferObjectUsage usage, bool discard_local_storage)
 generates PBOs only for Pixels objects without a PBO handle More...
 
void setUsePixelBufferObject (bool use_pbo)
 
bool usePixelBufferObject () const
 
virtual void updateDirtyBufferObject (EBufferObjectUpdateMode)
 Uploads the data stored in the local buffers on the GPU memory. More...
 
virtual void deleteBufferObject ()
 Destroys the BufferObject (vertex buffer objects) associated to this a Renderable. More...
 
- Public Member Functions inherited from vl::Renderable
 Renderable ()
 Constructor. More...
 
virtual ~Renderable ()
 Destructor. More...
 
void render (const Actor *actor, const Shader *shader, const Camera *camera, OpenGLContext *gl_context)
 Renders the Renderable and if necessary compiles the display list and updates the BufferObjects. More...
 
void computeBounds ()
 Recomputes the bounding box and bounding sphere of a Renderable. More...
 
long long boundsUpdateTick () const
 Returns the bounds-update-tick which is a counter incremented every time the bounding box or bounding sphere is updated. More...
 
void setBoundsDirty (bool dirty)
 Marks the bounding box and bounding sphere as dirty in order to be recomputed at the next rendering. More...
 
bool boundsDirty () const
 Returns whether the bounding sphere or bounding box are "dirty", that is, meant to be recomputed. More...
 
void setBoundingBox (const AABB &aabb)
 Sets the bounding box of a Renderable. More...
 
void setBoundingSphere (const Sphere &sphere)
 Sets the bounding sphere of a Renderable. More...
 
const AABBboundingBox () const
 Returns the bounding box of a Renderable without recomputing the bounds if dirty. More...
 
const SphereboundingSphere () const
 Returns the bounding sphere of a Renderable without recomputing the bounds if dirty. More...
 
const AABBboundingBox ()
 Returns the bounding box of a Renderable recomputing the bounds if dirty. More...
 
const SphereboundingSphere ()
 Returns the bounding sphere of a Renderable recomputing the bounds if dirty. More...
 
unsigned int displayList () const
 Returns the display list associated to a Renderable or 0 (zero) if no display list is associated. More...
 
void setDisplayList (unsigned int disp_list)
 Manually assciates a display list to a Renderable (to be used with care). More...
 
bool isDisplayListEnabled () const
 Returns true if display lists are enabled for a Renderable (disabled by default). More...
 
void setDisplayListEnabled (bool enabled)
 Enable/disable display lists (disabled by default). More...
 
bool displayListDirty () const
 Whether the display list associated to a Renderable should be recompiled at the next rendering. More...
 
void setDisplayListDirty (bool dirty)
 Whether the display list associated to a Renderable should be recompiled at the next rendering. More...
 
bool isBufferObjectEnabled () const
 Returns true if BufferObject (vertex buffer object) are enabled for a Renderable (enabled by default). More...
 
void setBufferObjectEnabled (bool enabled)
 Enable/disable BufferObject (vertex buffer object) (enabled by default). More...
 
bool isBufferObjectDirty () const
 Whether BufferObjects associated to a Renderable should be recomputed on the next rendering. More...
 
void setBufferObjectDirty (bool dirty=true)
 Whether BufferObjects associated to a Renderable should be recomputed on the next rendering. More...
 
void deleteDisplayList ()
 Deletes the display list currently associated to a Renderable. More...
 
- Public Member Functions inherited from vl::Object
 Object ()
 Constructor. More...
 
 Object (const Object &other)
 Copy constructor: copies the name, ref count mutex and user data. More...
 
Objectoperator= (const Object &other)
 Copy operator: copies the object's name, ref count mutex and user data. More...
 
const std::string & objectName () const
 The name of the object, by default set to the object's class name. More...
 
void setObjectName (const char *name)
 The name of the object, by default set to the object's class name in debug builds. More...
 
void setObjectName (const std::string &name)
 The name of the object, by default set to the object's class name in debug builds. More...
 
void setRefCountMutex (IMutex *mutex)
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
IMutexrefCountMutex ()
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
const IMutexrefCountMutex () const
 The mutex used to protect the reference counting of an Object across multiple threads. More...
 
int referenceCount () const
 Returns the number of references of an object. More...
 
void incReference () const
 Increments the reference count of an object. More...
 
void decReference ()
 Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More...
 
void setAutomaticDelete (bool autodel_on)
 If set to true the Object is deleted when its reference count reaches 0. More...
 
bool automaticDelete () const
 If set to true the Object is deleted when its reference count reaches 0. More...
 
template<class T >
T * as ()
 Casts an Object to the specified class. More...
 
template<class T >
const T * as () const
 Casts an Object to the specified class. More...
 

Protected Attributes

Collection< PixelsmDraws
 
bool mUsePixelBufferObject
 
- Protected Attributes inherited from vl::Object
std::string mObjectName
 
IMutexmRefCountMutex
 
int mReferenceCount
 
bool mAutomaticDelete
 

Additional Inherited Members

- Protected Member Functions inherited from vl::Renderable
Renderableoperator= (const Renderable &)=default
 operator= More...
 
- Protected Member Functions inherited from vl::Object
virtual ~Object ()
 

Detailed Description

Wraps the OpenGL function glDrawPixels().

Bind it to an Actor in order to render one or more bitmaps on the screen. DrawPixels supports multiple bitmaps, can draw a subsection of a bitmap, and supports also PBOs (GL_EXT_pixel_buffer_object). See also DrawPixels::Pixels.

Note
If the given Actor has an associated transform the bitmap position will follow it.
Remarks
Be aware that depth test, stencil test, alpha test, clipping planes etc. can affect the rendering of the bitmap. Since this function uses the glRasterPos OpenGL function lighting, texturing and the current color might affect the rendering. For more information look at the glRasterPos documentation.

Definition at line 60 of file DrawPixels.hpp.

Constructor & Destructor Documentation

◆ DrawPixels()

DrawPixels::DrawPixels ( )

Definition at line 112 of file DrawPixels.cpp.

References mDraws, and mUsePixelBufferObject.

Member Function Documentation

◆ computeBounds_Implementation()

void vl::DrawPixels::computeBounds_Implementation ( )
inlinevirtual

Implements vl::Renderable.

Definition at line 134 of file DrawPixels.hpp.

◆ deleteBufferObject()

virtual void vl::DrawPixels::deleteBufferObject ( )
inlinevirtual

Destroys the BufferObject (vertex buffer objects) associated to this a Renderable.

Note
This function does not touch the local (non GPU) data stored in the buffers associated to the vertex attributes and DrawCall.

Implements vl::Renderable.

Definition at line 163 of file DrawPixels.hpp.

◆ deletePixelBufferObjects()

void DrawPixels::deletePixelBufferObjects ( )

deallocate PBOs

Definition at line 259 of file DrawPixels.cpp.

References mDraws, and VL_CHECK_OGL.

◆ draws() [1/2]

const Collection<Pixels>* vl::DrawPixels::draws ( ) const
inline

Definition at line 142 of file DrawPixels.hpp.

Referenced by render_Implementation().

◆ draws() [2/2]

Collection<Pixels>* vl::DrawPixels::draws ( )
inline

Definition at line 144 of file DrawPixels.hpp.

◆ generatePixelBufferObjects()

bool DrawPixels::generatePixelBufferObjects ( EBufferObjectUsage  usage,
bool  discard_local_storage 
)

generates PBOs only for Pixels objects without a PBO handle

Definition at line 276 of file DrawPixels.cpp.

References vl::DrawPixels::Pixels::hasPixelBufferObject(), mDraws, vl::DrawPixels::Pixels::mImage, and NULL.

◆ releaseImages()

void DrawPixels::releaseImages ( )

Iterates on the Pixels objects and sets their Image references to NULL.

Definition at line 269 of file DrawPixels.cpp.

References mDraws, vl::DrawPixels::Pixels::mImage, and NULL.

◆ render_Implementation()

void DrawPixels::render_Implementation ( const Actor actor,
const Shader shader,
const Camera camera,
OpenGLContext gl_context 
) const
virtual

◆ setUsePixelBufferObject()

void DrawPixels::setUsePixelBufferObject ( bool  use_pbo)

Definition at line 299 of file DrawPixels.cpp.

References mUsePixelBufferObject.

◆ updateDirtyBufferObject()

virtual void vl::DrawPixels::updateDirtyBufferObject ( EBufferObjectUpdateMode  )
inlinevirtual

Uploads the data stored in the local buffers on the GPU memory.

If 'discard_local_data' is set to true the memory used by the local buffers is released.

Implements vl::Renderable.

Definition at line 161 of file DrawPixels.hpp.

◆ usePixelBufferObject()

bool vl::DrawPixels::usePixelBufferObject ( ) const
inline

Definition at line 157 of file DrawPixels.hpp.

Member Data Documentation

◆ mDraws

Collection<Pixels> vl::DrawPixels::mDraws
protected

◆ mUsePixelBufferObject

bool vl::DrawPixels::mUsePixelBufferObject
protected

Definition at line 167 of file DrawPixels.hpp.

Referenced by DrawPixels(), and setUsePixelBufferObject().


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