include/cinder/gl/gl.h File Reference

Go to the source code of this file.

Classes

struct  cinder::gl::SaveTextureBindState
 Convenience class designed to push and pop the currently bound texture for a given texture unit. More...
struct  cinder::gl::SaveTextureEnabledState
 Convenience class designed to push and pop the enabled/disabled state of a given texture unit. More...
struct  cinder::gl::SaveColorState
 Convenience class designed to push and pop the current color. More...

Namespaces

namespace  cinder
namespace  cinder::gl

Functions

void cinder::gl::clear (const ColorA &color=ColorA::black(), bool clearDepthBuffer=true)
 Clears the OpenGL color buffer using color and optionally clears the depth buffer when clearDepthBuffer.
void cinder::gl::setMatrices (const Camera &cam)
 Sets the MODELVIEW and PROJECTION matrices to reflect the values of cam. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::setModelView (const Camera &cam)
 Sets the MODELVIEW matrix to reflect the values of cam. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::setProjection (const Camera &cam)
 Sets the PROJECTION matrix to reflect the values of cam. Leaves the MatrixMode as PROJECTION.
void cinder::gl::pushModelView ()
 Pushes the MODELVIEW matrix onto its stack, preserving the current values. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::popModelView ()
 Pops the MODELVIEW matrix off of its stack, restoring the values saved with the previous push. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::pushModelView (const Camera &cam)
 Pushes the MODELVIEW matrix onto its stack, preserving the current values, and then sets the matrix to reflect cam. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::pushProjection (const Camera &cam)
 Pushes the PROJECTION matrix onto its stack, preserving the current values, and then sets the matrix to reflect cam. Leaves the MatrixMode as PROJECTION.
void cinder::gl::pushMatrices ()
 Pushes the MODELVIEW and PROJECTION matrices onto their stacks, preserving the current values. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::popMatrices ()
 Pops the MODELVIEW and PROJECTION matrices off their stacks, restoring the values saved with the previous push. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::multModelView (const Matrix44f &mtx)
 Multiplies the current MODELVIEW matrix with mtx. Leaves the MatrixMode as MODELVIEW.
void cinder::gl::multProjection (const Matrix44f &mtx)
 Multiplies the current PROJECTION matrix with mtx. Leaves the MatrixMode as MODELVIEW.
Matrix44f cinder::gl::getModelView ()
 Returns the value of the current MODELVIEW matrix as a Matrix44f.
Matrix44f cinder::gl::getProjection ()
 Returns the value of the current PROJECTION matrix as a Matrix44f.
void cinder::gl::setMatricesWindowPersp (int screenWidth, int screenHeight, float fovDegrees=60.0f, float nearPlane=1.0f, float farPlane=1000.0f)
 Sets the viepwort and MODELVIEW and PROJECTION matrices to be a perspective projection with the upper-left corner at [0,0] and the lower-right at [screenWidth,screenHeight].
void cinder::gl::setMatricesWindowPersp (const Vec2i &screenSize, float fovDegrees=60.0f, float nearPlane=1.0f, float farPlane=1000.0f)
 Sets the viewport and MODELVIEW and PROJECTION matrices to be a perspective projection with the upper-left corner at [0,0] and the lower-right at [screenWidth,screenHeight].
void cinder::gl::setMatricesWindow (int screenWidth, int screenHeight, bool originUpperLeft=true)
 Sets the viewport and MODELVIEW and PROJECTION matrices to orthographic with the upper-left corner at [0,0] and the lower-right at [screenWidth,screenHeight] if originUpperLeft is true. Otherwise the origin is in the lower right.
void cinder::gl::setMatricesWindow (const Vec2i &screenSize, bool originUpperLeft=true)
 Sets the viewport and the MODELVIEW and PROJECTION matrices to orthographic with the upper-left corner at [0,0] and the lower-right at [size.x,size.y] if originUpperLeft is true. Otherwise the origin is in the lower right.
Area cinder::gl::getViewport ()
 Returns the current OpenGL Viewport as an Area.
void cinder::gl::setViewport (const Area &area)
 Sets the current OpenGL Viewport to area.
void cinder::gl::translate (const Vec2f &pos)
 Produces a translation by pos in the current matrix.
void cinder::gl::translate (const Vec3f &pos)
 Produces a translation by pos in the current matrix.
void cinder::gl::scale (const Vec3f &scale)
 Produces a scale by pos in the current matrix.
void cinder::gl::rotate (const Vec3f &xyz)
 Produces a rotation around the X-axis by xyz.x degrees, the Y-axis by xyz.y degrees and the Z-axis by xyz.z degrees in the current matrix. Processed in X-Y-Z order.
void cinder::gl::rotate (const Quatf &quat)
 Produces a rotation by the quaternion quat in the current matrix.
void cinder::gl::rotate (float degrees)
 Produces a 2D rotation, the equivalent of a rotation around the Z axis by degrees.
void cinder::gl::vertex (const Vec2f &v)
 Used between calls to glBegin and glEnd, appends a vertex to the current primitive.
void cinder::gl::vertex (const Vec3f &v)
 Used between calls to glBegin and glEnd, appends a vertex to the current primitive.
void cinder::gl::color (const Color &c)
 Sets the current color, and the alpha value to 1.0.
void cinder::gl::color (const ColorA &c)
 Sets the current color and alpha value.
void cinder::gl::enableAlphaBlending (bool premultiplied=false)
 Enables alpha blending. Selects a BlendFunc that is appropriate for premultiplied-alpha when premultiplied.
void cinder::gl::disableAlphaBlending ()
 Disables alpha blending.
void cinder::gl::enableAdditiveBlending ()
 Enables alpha blending and selects a BlendFunc for additive blending.
void cinder::gl::enableAlphaTest (float value=0.5f, int func=GL_GREATER)
 Enables alpha testing and sets the AlphaFunc to test for values which are func than value, which should be in the range [0, 1.0]. Possible values for func include GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL and GL_ALWAYS.
void cinder::gl::disableAlphaTest ()
 Disables alpha testing.
void cinder::gl::enableWireframe ()
 Enables wireframe drawing by setting the PolygonMode to GL_LINE.
void cinder::gl::disableWireframe ()
 Disables wireframe drawing.
void cinder::gl::disableDepthRead ()
 Disables reading from the depth buffer, disabling z-testing.
void cinder::gl::disableDepthWrite ()
 Disables writing to the depth buffer.
void cinder::gl::enableDepthRead (bool enable=true)
 Enables reading from the depth buffer when enable, enabling z-testing.
void cinder::gl::enableDepthWrite (bool enable=true)
 Enables writing to the depth buffer when enable.
void cinder::gl::drawCube (const Vec3f &center, const Vec3f &size)
 Renders a solid cube centered at center of size size. Normals and created texture coordinates are generated for GL_TEXTURE_2D, with each face in the range [0,0] - [1.0,1.0].
void cinder::gl::drawColorCube (const Vec3f &center, const Vec3f &size)
 Renders a solid cube centered at center of size size. Each face is assigned a unique color, and no normals or texture coordinates are generated.
void cinder::gl::drawSphere (const Vec3f &center, float radius, int segments=12)
 Renders a solid sphere centered at center of radius radius. segments defines how many segments the sphere is subdivided into. Normals and texture coordinates in the range [0,1] are generated.
void cinder::gl::draw (const class Sphere &sphere, int segments=12)
 Renders a solid sphere. segments defines how many segments the sphere is subdivided into. Normals and texture coordinates in the range [0,1] are generated.
void cinder::gl::drawSolidCircle (const Vec2f &center, float radius, int numSegments=0)
 Renders a solid circle using triangle fans. The default value of zero for numSegments automatically determines a number of segments based on the circle's circumference.
void cinder::gl::drawSolidRect (const Rectf &rect, bool textureRectangle=false)
 Renders a solid rectangle. Texture coordinates in the range [0,1] are generated unless textureRectangle.
void cinder::gl::drawCoordinateFrame (float axisLength=1.0f, float headLength=0.2f, float headRadius=0.05f)
 Renders a coordinate frame representation centered at the origin. Arrowheads are drawn at the end of each axis with radius headRadius and length headLength.
void cinder::gl::drawVector (const Vec3f &start, const Vec3f &end, float headLength=0.2f, float headRadius=0.05f)
 Draws a vector starting at start and ending at end. An arrowhead is drawn at the end of radius headRadius and length headLength.
void cinder::gl::drawFrustum (const Camera &cam)
 Draws a wireframe representation of the frustum defined by cam.
void cinder::gl::drawTorus (float outterRadius, float innerRadius, int longitudeSegments=12, int latitudeSegments=12)
 Draws a torus at the origin, with an outter radius outterRadius and an inner radius innerRadius, subdivided into longitudeSegments and latitudeSegments. Normals and texture coordinates in the range [0,1] are generated.
void cinder::gl::draw (const TriMesh &mesh)
 Draws a cinder::TriMesh mesh at the origin.
void cinder::gl::drawRange (const TriMesh &mesh, size_t startTriangle, size_t triangleCount)
 Draws a range of triangles starting with triangle # startTriangle and a count of triangleCount from cinder::TriMesh mesh at the origin.
void cinder::gl::draw (const VboMesh &vbo)
 Draws a cinder::gl::VboMesh mesh at the origin.
void cinder::gl::drawRange (const VboMesh &vbo, size_t startIndex, size_t indexCount, int vertexStart=-1, int vertexEnd=-1)
 Draws a range of vertices and elements of cinder::gl::VboMesh mesh at the origin. Default parameters for vertexStart and vertexEnd imply the VboMesh's full range of vertices.
void cinder::gl::drawArrays (const VboMesh &vbo, GLint first, GLsizei count)
 Draws a range of elements from a cinder::gl::VboMesh vbo.
void cinder::gl::drawBillboard (const Vec3f &pos, const Vec2f &scale, float rotationDegrees, const Vec3f &bbRight, const Vec3f &bbUp)
 Draws a textured quad of size scale that is aligned with the vectors bbRight and bbUp at pos, rotated by rotationDegrees around the vector orthogonal to bbRight and bbUp.
void cinder::gl::draw (const Texture &texture)
 Draws texture on the XY-plane.
void cinder::gl::draw (const Texture &texture, const Vec2f &pos)
 Draws texture on the XY-plane at pos.
void cinder::gl::draw (const Texture &texture, const Rectf &rect)
 Draws texture on the XY-plane in the rectangle defined by rect.
void cinder::gl::draw (const Texture &texture, const Area &srcArea, const Rectf &destRect)
 Draws the pixels inside srcArea of texture on the XY-plane in the rectangle defined by destRect.
void cinder::gl::drawString (const std::string &str, const Vec2f &pos, const ColorA &color=ColorA(1, 1, 1, 1), Font font=Font())
 Draws a string str with its lower left corner located at pos. Optional font and color affect the style.
void cinder::gl::drawStringCentered (const std::string &str, const Vec2f &pos, const ColorA &color=ColorA(1, 1, 1, 1), Font font=Font())
 Draws a string str with the horizontal center of its baseline located at pos. Optional font and color affect the style.
void cinder::gl::drawStringRight (const std::string &str, const Vec2f &pos, const ColorA &color=ColorA(1, 1, 1, 1), Font font=Font())
 Draws a right-justified string str with the center of its located at pos. Optional font and color affect the style.
void cinder::gl::initializeGlee ()
 Initializes the GLee library. This is generally called automatically by the application and is only necessary if you need to use GLee before your app's setup() method is called.

void glVertex2f (const cinder::Vec2f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glVertex3f (const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glVertex4f (const cinder::Vec4f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glNormal3f (const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glColor3f (const cinder::Color &c)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glColor4f (const cinder::ColorA &c)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glTexCoord2f (const cinder::Vec2f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glTexCoord3f (const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glTexCoord4f (const cinder::Vec4f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glTranslatef (const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glScalef (const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glRotatef (float angle, const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glRotatef (const cinder::Quatf &quat)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glMultMatrixf (const cinder::Matrix44f &m)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.
void glLoadMatrixf (const cinder::Matrix44f &m)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively.

Function Documentation

void glVertex2f ( const cinder::Vec2f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glVertex3f ( const cinder::Vec3f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glVertex4f ( const cinder::Vec4f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glNormal3f ( const cinder::Vec3f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glColor3f ( const cinder::Color c  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glColor4f ( const cinder::ColorA c  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glTexCoord2f ( const cinder::Vec2f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glTexCoord3f ( const cinder::Vec3f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glTexCoord4f ( const cinder::Vec4f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glTranslatef ( const cinder::Vec3f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glScalef ( const cinder::Vec3f v  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glRotatef ( float  angle,
const cinder::Vec3f v 
)

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glRotatef ( const cinder::Quatf quat  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glMultMatrixf ( const cinder::Matrix44f m  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.

void glLoadMatrixf ( const cinder::Matrix44f m  ) 

Global overloads for OpenGL free functions to allow the use of Cinder types natively.