Cinder  0.8.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Namespaces | Macros | Typedefs | Functions
gl.h File Reference
#include "cinder/Cinder.h"
#include "cinder/Exception.h"
#include "cinder/Quaternion.h"
#include "cinder/Matrix.h"
#include "cinder/Vector.h"
#include "cinder/Color.h"
#include "cinder/Rect.h"
#include "cinder/Font.h"
#include "cinder/PolyLine.h"
#include "cinder/AxisAlignedBox.h"
Include dependency graph for gl.h:
This graph shows which files directly or indirectly include this file:

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::BoolState
 Convenience class designed to push and pop a boolean OpenGL state. More...
 
struct  cinder::gl::ClientBoolState
 Convenience class designed to push and pop a boolean OpenGL state. More...
 
struct  cinder::gl::SaveColorState
 Convenience class designed to push and pop the current color. More...
 
struct  cinder::gl::SaveFramebufferBinding
 Convenience class which pushes and pops the currently bound framebuffer. More...
 
class  cinder::gl::Exception
 
class  cinder::gl::ExceptionUnknownTarget
 

Namespaces

 cinder
 
 cinder::gl
 

Macros

#define CINDER_GLES
 
#define CINDER_GLES1
 

Typedefs

typedef std::shared_ptr< Texture > cinder::gl::TextureRef
 
typedef std::shared_ptr< VboMesh > cinder::gl::VboMeshRef
 

Functions

bool cinder::gl::isExtensionAvailable (const std::string &extName)
 Returns whether a particular OpenGL extension is available. Caches results. More...
 
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. More...
 
void cinder::gl::enableVerticalSync (bool enable=true)
 Enables or disables wait for vertical sync. More...
 
void cinder::gl::disableVerticalSync ()
 Disables wait for vertical sync. More...
 
bool cinder::gl::isVerticalSyncEnabled ()
 Returns whether vertical sync is enabled for the current context. More...
 
void cinder::gl::setMatrices (const Camera &cam)
 Sets the MODELVIEW and PROJECTION matrices to reflect the values of cam. Leaves the MatrixMode as MODELVIEW. More...
 
void cinder::gl::setModelView (const Camera &cam)
 Sets the MODELVIEW matrix to reflect the values of cam. Leaves the MatrixMode as MODELVIEW. More...
 
void cinder::gl::setProjection (const Camera &cam)
 Sets the PROJECTION matrix to reflect the values of cam. Leaves the MatrixMode as PROJECTION. More...
 
void cinder::gl::pushModelView ()
 Pushes the MODELVIEW matrix onto its stack, preserving the current values. Leaves the MatrixMode as MODELVIEW. More...
 
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. More...
 
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. More...
 
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. More...
 
void cinder::gl::pushMatrices ()
 Pushes the MODELVIEW and PROJECTION matrices onto their stacks, preserving the current values. Leaves the MatrixMode as MODELVIEW. More...
 
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. More...
 
void cinder::gl::multModelView (const Matrix44f &mtx)
 Multiplies the current MODELVIEW matrix with mtx. Leaves the MatrixMode as MODELVIEW. More...
 
void cinder::gl::multProjection (const Matrix44f &mtx)
 Multiplies the current PROJECTION matrix with mtx. Leaves the MatrixMode as MODELVIEW. More...
 
Matrix44f cinder::gl::getModelView ()
 Returns the value of the current MODELVIEW matrix as a Matrix44f. More...
 
Matrix44f cinder::gl::getProjection ()
 Returns the value of the current PROJECTION matrix as a Matrix44f. More...
 
void cinder::gl::setMatricesWindowPersp (int screenWidth, int screenHeight, float fovDegrees=60.0f, float nearPlane=1.0f, float farPlane=1000.0f, bool originUpperLeft=true)
 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], but flipped vertically if not originUpperLeft. More...
 
void cinder::gl::setMatricesWindowPersp (const Vec2i &screenSize, float fovDegrees=60.0f, float nearPlane=1.0f, float farPlane=1000.0f, bool originUpperLeft=true)
 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], but flipped vertically if not originUpperLeft. More...
 
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. More...
 
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. More...
 
Area cinder::gl::getViewport ()
 Returns the current OpenGL Viewport as an Area. More...
 
void cinder::gl::setViewport (const Area &area)
 Sets the current OpenGL Viewport to area. More...
 
void cinder::gl::translate (const Vec2f &pos)
 Produces a translation by pos in the current matrix. More...
 
void cinder::gl::translate (float x, float y)
 Produces a translation by x and y in the current matrix. More...
 
void cinder::gl::translate (const Vec3f &pos)
 Produces a translation by pos in the current matrix. More...
 
void cinder::gl::translate (float x, float y, float z)
 Produces a translation by x, y and z in the current matrix. More...
 
void cinder::gl::scale (const Vec3f &scl)
 Produces a scale by scale in the current matrix. More...
 
void cinder::gl::scale (const Vec2f &scl)
 Produces a scale by scl in the current matrix. More...
 
void cinder::gl::scale (float x, float y)
 Produces a scale by x and y in the current matrix. More...
 
void cinder::gl::scale (float x, float y, float z)
 Produces a scale by x, y and z in the current matrix. More...
 
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. More...
 
void cinder::gl::rotate (const Quatf &quat)
 Produces a rotation by the quaternion quat in the current matrix. More...
 
void cinder::gl::rotate (float degrees)
 Produces a 2D rotation, the equivalent of a rotation around the Z axis by degrees. More...
 
void cinder::gl::color (float r, float g, float b)
 Sets the current color and the alpha value to 1.0. More...
 
void cinder::gl::color (float r, float g, float b, float a)
 Sets the current color and alpha value. More...
 
void cinder::gl::color (const Color8u &c)
 Sets the current color, and the alpha value to 1.0. More...
 
void cinder::gl::color (const ColorA8u &c)
 Sets the current color and alpha value. More...
 
void cinder::gl::color (const Color &c)
 Sets the current color, and the alpha value to 1.0. More...
 
void cinder::gl::color (const ColorA &c)
 Sets the current color and alpha value. More...
 
void cinder::gl::enable (GLenum state)
 Enables the OpenGL State state. Equivalent to calling to glEnable( state );. More...
 
void cinder::gl::disable (GLenum state)
 Disables the OpenGL State state. Equivalent to calling to glDisable( state );. More...
 
void cinder::gl::enableAlphaBlending (bool premultiplied=false)
 Enables alpha blending. Selects a BlendFunc that is appropriate for premultiplied-alpha when premultiplied. More...
 
void cinder::gl::disableAlphaBlending ()
 Disables alpha blending. More...
 
void cinder::gl::enableAdditiveBlending ()
 Enables alpha blending and selects a BlendFunc for additive blending. More...
 
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. More...
 
void cinder::gl::disableAlphaTest ()
 Disables alpha testing. More...
 
void cinder::gl::disableDepthRead ()
 Disables reading from the depth buffer, disabling z-testing. More...
 
void cinder::gl::disableDepthWrite ()
 Disables writing to the depth buffer. More...
 
void cinder::gl::enableDepthRead (bool enable=true)
 Enables reading from the depth buffer when enable, enabling z-testing. More...
 
void cinder::gl::enableDepthWrite (bool enable=true)
 Enables writing to the depth buffer when enable. More...
 
void cinder::gl::lineWidth (float width)
 Specifies the rasterized width of both aliased and antialiased lines. More...
 
void cinder::gl::drawLine (const Vec2f &start, const Vec2f &end)
 Draws a line from start to end. More...
 
void cinder::gl::drawLine (const Vec3f &start, const Vec3f &end)
 Draws a line from start to end. More...
 
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]. More...
 
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. More...
 
void cinder::gl::drawStrokedCube (const Vec3f &center, const Vec3f &size)
 Renders a stroked cube centered at center of size size. More...
 
void cinder::gl::drawStrokedCube (const AxisAlignedBox3f &aab)
 Renders a stroked cube aab. More...
 
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. More...
 
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. More...
 
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. More...
 
void cinder::gl::drawStrokedCircle (const Vec2f &center, float radius, int numSegments=0)
 Renders a stroked circle using a line loop. The default value of zero for numSegments automatically determines a number of segments based on the circle's circumference. More...
 
void cinder::gl::drawSolidEllipse (const Vec2f &center, float radiusX, float radiusY, int numSegments=0)
 Renders a solid ellipse using triangle fans. The default value of zero for numSegments automatically determines a number of segments based on the ellipse's circumference. More...
 
void cinder::gl::drawStrokedEllipse (const Vec2f &center, float radiusX, float radiusY, int numSegments=0)
 Renders a stroked circle using a line loop. The default value of zero for numSegments automatically determines a number of segments based on the circle's circumference. More...
 
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. More...
 
void cinder::gl::drawStrokedRect (const Rectf &rect)
 Renders a stroked rectangle. More...
 
void cinder::gl::drawSolidRoundedRect (const Rectf &r, float cornerRadius, int numSegmentsPerCorner=0)
 
void cinder::gl::drawStrokedRoundedRect (const Rectf &r, float cornerRadius, int numSegmentsPerCorner=0)
 
void cinder::gl::drawSolidTriangle (const Vec2f &pt1, const Vec2f &pt2, const Vec2f &pt3)
 
void cinder::gl::drawSolidTriangle (const Vec2f pts[3])
 
void cinder::gl::drawSolidTriangle (const Vec2f &pt1, const Vec2f &pt2, const Vec2f &pt3, const Vec2f &texPt1, const Vec2f &texPt2, const Vec2f &texPt3)
 Renders a textured triangle. More...
 
void cinder::gl::drawSolidTriangle (const Vec2f pts[3], const Vec2f texCoord[3])
 
void cinder::gl::drawStrokedTriangle (const Vec2f &pt1, const Vec2f &pt2, const Vec2f &pt3)
 Renders a stroked triangle. More...
 
void cinder::gl::drawStrokedTriangle (const Vec2f pts[3])
 
void cinder::gl::drawCoordinateFrame (float axisLength=1.0f, float headLength=0.2f, float headRadius=0.05f)
 
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. More...
 
void cinder::gl::drawFrustum (const Camera &cam)
 Draws a wireframe representation of the frustum defined by cam. More...
 
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. More...
 
void cinder::gl::drawCylinder (float baseRadius, float topRadius, float height, int slices=12, int stacks=1)
 Draws a open-ended cylinder, with base radius baseRadius and top radius topRadius, with height height, subdivided into slices and stacks. Normals and texture coordinates in the range [0,1] are generated. More...
 
void cinder::gl::draw (const class PolyLine< Vec2f > &polyLine)
 Draws a 2d PolyLine polyLine. More...
 
void cinder::gl::draw (const class PolyLine< Vec3f > &polyLine)
 Draws a 3d PolyLine polyLine. More...
 
void cinder::gl::draw (const class Path2d &path2d, float approximationScale=1.0f)
 Draws a Path2d path2d using approximation scale approximationScale. 1.0 corresponds to screenspace, 2.0 is double screen resolution, etc. More...
 
void cinder::gl::draw (const class Shape2d &shape2d, float approximationScale=1.0f)
 Draws a Shape2d shape2d using approximation scale approximationScale. 1.0 corresponds to screenspace, 2.0 is double screen resolution, etc. More...
 
void cinder::gl::drawSolid (const class Path2d &path2d, float approximationScale=1.0f)
 Draws a solid (filled) Path2d path2d using approximation scale approximationScale. 1.0 corresponds to screenspace, 2.0 is double screen resolution, etc. Performance warning: This routine tesselates the polygon into triangles. Consider using Triangulator directly. More...
 
void cinder::gl::drawSolid (const class Shape2d &shape2d, float approximationScale=1.0f)
 Draws a solid (filled) Shape2d shape2d using approximation scale approximationScale. 1.0 corresponds to screenspace, 2.0 is double screen resolution, etc. Performance warning: This routine tesselates the polygon into triangles. Consider using Triangulator directly. More...
 
void cinder::gl::drawSolid (const PolyLine2f &polyLine)
 Draws a solid (filled) PolyLine2f polyLine. Performance warning: This routine tesselates the polygon into triangles. Consider using Triangulator directly. More...
 
void cinder::gl::draw (const TriMesh2d &mesh)
 Draws a cinder::TriMesh mesh at the origin. More...
 
void cinder::gl::drawRange (const TriMesh2d &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. More...
 
void cinder::gl::draw (const TriMesh &mesh)
 Draws a cinder::TriMesh mesh at the origin. More...
 
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. More...
 
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. More...
 
void cinder::gl::draw (const Texture &texture)
 Draws texture on the XY-plane. More...
 
void cinder::gl::draw (const TextureRef &texture)
 
void cinder::gl::draw (const Texture &texture, const Vec2f &pos)
 Draws texture on the XY-plane at pos. More...
 
void cinder::gl::draw (const TextureRef &texture, const Vec2f &pos)
 
void cinder::gl::draw (const Texture &texture, const Rectf &rect)
 Draws texture on the XY-plane in the rectangle defined by rect. More...
 
void cinder::gl::draw (const TextureRef &texture, const Rectf &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. More...
 
void cinder::gl::draw (const TextureRef &texture, const Area &srcArea, const Rectf &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. More...
 
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. More...
 
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. More...
 
void glTranslatef (const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively. More...
 
void glScalef (const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively. More...
 
void glRotatef (float angle, const cinder::Vec3f &v)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively. More...
 
void glRotatef (const cinder::Quatf &quat)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively. More...
 
void glMultMatrixf (const cinder::Matrix44f &m)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively. More...
 
void glLoadMatrixf (const cinder::Matrix44f &m)
 Global overloads for OpenGL free functions to allow the use of Cinder types natively. More...
 

Macro Definition Documentation

#define CINDER_GLES
#define CINDER_GLES1

Function Documentation

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.