GL Studio C++ Runtime API
GlsQuadListVCT_2D Class Reference

#include <gls_quad_storage.h>

Inheritance diagram for GlsQuadListVCT_2D:
NonCopyable

Classes

class  TextureGroup
 

Public Member Functions

 GlsQuadListVCT_2D ()
 
virtual ~GlsQuadListVCT_2D ()
 
void SetTexCoords (const float x1, const float y1, const float x2, const float y2)
 
void SetTexture (IFontImage *image)
 
void SetColor (const glsColor &color)
 
void StartBuilding ()
 
void Bake (IGlsStateManager *stateManager)
 
void AddQuad2D (const float x1, const float y1, const float x2, const float y2)
 
void Draw (IGlsStateManager *stateManager, const bool enableColor, const bool enableTexture)
 
unsigned int NumQuads ()
 

Static Public Attributes

static const GLuint VERT_SIZE = sizeof( V2f )
 Size of a vertex in bytes.
 
static const GLuint TEX_SIZE = sizeof( V2f )
 Size of a texture coordinate in bytes.
 
static const GLuint COLOR_SIZE = sizeof( glsColor )
 Size of a color in bytes.
 
static const void *const VERT_OFFSET
 
static const void *const TEX_COORD_OFFSET
 
static const void *const COLOR_OFFSET
 

Protected Attributes

DynamicArray< TextureGroup *, false > _textureGroups
 The list of all textured quad groups.
 
unsigned int _numTextureGroups
 The number of textured quad groups in the list.
 
TextureGroup_currentTextureGroup
 Pointer to the current texture group that quads will be added to with the next call to AddQuad.
 
unsigned int _numQuads
 
V2f _currentTex [4]
 
glsColor _currentColor
 

Detailed Description

Constructor & Destructor Documentation

◆ GlsQuadListVCT_2D()

Default constructor

◆ ~GlsQuadListVCT_2D()

virtual ~GlsQuadListVCT_2D ( )
virtual

Destructor

Member Function Documentation

◆ AddQuad2D()

void AddQuad2D ( const float  x1,
const float  y1,
const float  x2,
const float  y2 
)

Add a quad defined by a 2D rectangle from x1,y1 to x2,y2

Parameters
x1X coord of point 1
y1Y coord of point 1
x2X coord of point 2
y2Y coord of point 2

◆ Bake()

void Bake ( IGlsStateManager stateManager)

Bakes the quad list, creating VBOs within the GL context. The VBOs created by Bake are used when the object is later drawn with Draw

Parameters
stateManagerThe StateManager object to create the VBOs within

◆ Draw()

void Draw ( IGlsStateManager stateManager,
const bool  enableColor,
const bool  enableTexture 
)

Draws this quad list

Parameters
stateManagerOpenGL context to draw list in
enableColorWhether or not to use the per vertex colors when drawing
enableTextureWhether or not to use the texture when drawing

◆ NumQuads()

unsigned int NumQuads ( )
inline
Returns
Returns the number of quads in the list

◆ SetColor()

void SetColor ( const glsColor color)

Set the current drawing color. When a quad is added, its vertex colors are set to the current color

Parameters
colorThe color to set

◆ SetTexCoords()

void SetTexCoords ( const float  x1,
const float  y1,
const float  x2,
const float  y2 
)

Set the current texture coordinates. When a quad is added, these texture coordinates will be used. x1,y1 will map to quad vertex[0] and x2,y2 will map to quad vertex[1]

Parameters
x1X coord of point 1
y1Y coord of point 1
x2X coord of point 2
y2Y coord of point 2

◆ SetTexture()

void SetTexture ( IFontImage image)

Set the current texture. This texture will be used when drawing the quad list (if not NULL)

Parameters
imageThe texture to set, NULL for no texture

◆ StartBuilding()

void StartBuilding ( )

Put the quad list in list building mode. Process for using this quad list:

  1. Build the list
  2. Bake the list (creates VBOs)
  3. Draw the list

Member Data Documentation

◆ _currentColor

glsColor _currentColor
protected

Last color that was set. Used only while building a list

◆ _currentTex

V2f _currentTex[4]
protected

Current texture coordinates supplied for current quad (Texture coordinates are not required to change per quad). Used only while building list.

◆ _numQuads

unsigned int _numQuads
protected

Number of quads in the list (total)

◆ COLOR_OFFSET

const void* const COLOR_OFFSET
static

Constant offsets to the primitive color attribute.

Note
Strange casting is to support OpenGL's repurposed functions that pass offsets as pointers.

◆ TEX_COORD_OFFSET

const void* const TEX_COORD_OFFSET
static

Constant offsets to the primitive texture coordinate attribute.

Note
Strange casting is to support OpenGL's repurposed functions that pass offsets as pointers.

◆ VERT_OFFSET

const void* const VERT_OFFSET
static

Constant offsets to the primitive vertex attribute.

Note
Strange casting is to support OpenGL's repurposed functions that pass offsets as pointers.

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