![]() |
scg3
0.6
|
A core that contains geometry information to be rendered. More...
#include "GeometryCore.h"
Public Member Functions | |
GeometryCore (GLenum primitiveType, DrawMode drawMode) | |
virtual | ~GeometryCore () |
GeometryCore * | addAttributeData (GLuint location, const GLfloat *data, GLsizeiptr size, GLint dim, GLenum usage) |
GeometryCore * | setElementIndexData (const GLuint *data, GLsizeiptr size, GLenum usage) |
int | getNTriangles () const |
virtual void | render (RenderState *renderState) |
![]() | |
Core () | |
virtual | ~Core ()=0 |
virtual void | renderPost (RenderState *renderState) |
Static Public Member Functions | |
static GeometryCoreSP | create (GLenum primitiveType, DrawMode drawMode) |
Protected Attributes | |
GLenum | primitiveType_ |
DrawMode | drawMode_ |
std::function< void(GLenum, GLsizei)> | drawFunc_ |
GLuint | vao_ |
std::vector< GLuint > | vboAttributes_ |
GLuint | vboIndex_ |
GLsizei | nElements_ |
A core that contains geometry information to be rendered.
Vertices and indices are stored in vertex buffer objects (VBOs). Each geometry core has its own vertex array object (VAO) that is used to store attribute and element index bindings.
Definition at line 53 of file GeometryCore.h.
scg::GeometryCore::GeometryCore | ( | GLenum | primitiveType, |
DrawMode | drawMode | ||
) |
Constructor.
primitiveType | GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, or GL_TRIANGLE_FAN |
drawMode | DrawMode::ARRAYS or DrawMode::ELEMENTS |
|
virtual |
Destructor.
GeometryCore* scg::GeometryCore::addAttributeData | ( | GLuint | location, |
const GLfloat * | data, | ||
GLsizeiptr | size, | ||
GLint | dim, | ||
GLenum | usage | ||
) |
Add vertex attribute data that is stored in its own vertex buffer object (VBO).
location | attribute location the VBO is bound to |
data | attribute data |
size | buffer size in bytes |
dim | dimension of each attribute value, e.g., 3 for xyz vertices |
usage | GL_STATIC_DRAW, GL_DYNAMIC_DRAW, or GL_STREAM_DRAW |
|
static |
Create shared pointer.
int scg::GeometryCore::getNTriangles | ( | ) | const |
Get approximate number of triangles, called by Shape::getNTriangles().
|
virtual |
Render geometry.
Implements scg::Core.
GeometryCore* scg::GeometryCore::setElementIndexData | ( | const GLuint * | data, |
GLsizeiptr | size, | ||
GLenum | usage | ||
) |
Set element index data that is stored in its own vertex buffer object (VBO).
data | element data |
size | buffer size in bytes |
usage | GL_STATIC_DRAW, GL_DYNAMIC_DRAW, or GL_STREAM_DRAW |
|
protected |
Definition at line 111 of file GeometryCore.h.
|
protected |
Definition at line 110 of file GeometryCore.h.
|
protected |
Definition at line 115 of file GeometryCore.h.
|
protected |
Definition at line 109 of file GeometryCore.h.
|
protected |
Definition at line 112 of file GeometryCore.h.
|
protected |
Definition at line 113 of file GeometryCore.h.
|
protected |
Definition at line 114 of file GeometryCore.h.