Commit 1412152c authored by Jan Möbius's avatar Jan Möbius

Merge branch 'featureRemoveExtensions' into 'master'

replace aliased opengl extensions

See merge request !77
parents 29185f6b 9bd597f1
......@@ -68,17 +68,17 @@ DrawMeshBase::DrawMeshBase() :
}
DrawMeshBase::~DrawMeshBase() {
if (vbo_) glDeleteBuffersARB(1, &vbo_);
if (ibo_) glDeleteBuffersARB(1, &ibo_);
if (lineIBO_) glDeleteBuffersARB(1, &lineIBO_);
if (heVBO_) glDeleteBuffersARB(1, &heVBO_);
if (vbo_) glDeleteBuffers(1, &vbo_);
if (ibo_) glDeleteBuffers(1, &ibo_);
if (lineIBO_) glDeleteBuffers(1, &lineIBO_);
if (heVBO_) glDeleteBuffers(1, &heVBO_);
delete vertexDecl_;
delete vertexDeclEdgeCol_;
delete vertexDeclHalfedgeCol_;
delete vertexDeclHalfedgePos_;
if (pickVertexIBO_) glDeleteBuffersARB(1, &pickVertexIBO_);
if (pickVertexIBO_) glDeleteBuffers(1, &pickVertexIBO_);
}
void DrawMeshBase::deleteIbo() {
......@@ -89,21 +89,21 @@ void DrawMeshBase::deleteIbo() {
void DrawMeshBase::bindVbo() {
if (!vbo_)
glGenBuffersARB(1, &vbo_);
glGenBuffers(1, &vbo_);
ACG::GLState::bindBufferARB(GL_ARRAY_BUFFER_ARB, vbo_);
}
void DrawMeshBase::bindIbo() {
if (!ibo_)
glGenBuffersARB(1, &ibo_);
glGenBuffers(1, &ibo_);
ACG::GLState::bindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, ibo_);
}
void DrawMeshBase::bindLineIbo() {
if (!lineIBO_)
glGenBuffersARB(1, &lineIBO_);
glGenBuffers(1, &lineIBO_);
ACG::GLState::bindBufferARB(GL_ELEMENT_ARRAY_BUFFER, lineIBO_);
}
......@@ -111,7 +111,7 @@ void DrawMeshBase::bindLineIbo() {
void DrawMeshBase::bindHEVbo() {
glGetIntegerv(GL_ARRAY_BUFFER_BINDING,&prevVBO_);
if (!heVBO_)
glGenBuffersARB(1, &heVBO_);
glGenBuffers(1, &heVBO_);
ACG::GLState::bindBufferARB(GL_ARRAY_BUFFER_ARB, heVBO_);
}
......@@ -122,13 +122,13 @@ void DrawMeshBase::unbindHEVbo() {
void DrawMeshBase::bindPickVertexIbo() {
if (!pickVertexIBO_)
glGenBuffersARB(1, &pickVertexIBO_);
glGenBuffers(1, &pickVertexIBO_);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, pickVertexIBO_);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, pickVertexIBO_);
}
void DrawMeshBase::createIndexBuffer() {
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB,
glBufferData(GL_ELEMENT_ARRAY_BUFFER_ARB,
numTris_ * 3 * sizeof(unsigned int),
meshComp_->getIndexBuffer(), GL_STATIC_DRAW_ARB);
}
......@@ -136,11 +136,11 @@ void DrawMeshBase::createIndexBuffer() {
void DrawMeshBase::fillLineBuffer(size_t n_edges, void *data) {
// 2 or 4 byte indices:
if (indexType_ == GL_UNSIGNED_SHORT)
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB,
glBufferData(GL_ELEMENT_ARRAY_BUFFER_ARB,
n_edges * 2 * sizeof(unsigned short),
data, GL_STATIC_DRAW_ARB);
else
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB,
glBufferData(GL_ELEMENT_ARRAY_BUFFER_ARB,
n_edges * 2 * sizeof(unsigned int),
data, GL_STATIC_DRAW_ARB);
}
......@@ -154,11 +154,11 @@ void DrawMeshBase::fillHEVBO(size_t numberOfElements_, size_t sizeOfElements_, v
void DrawMeshBase::fillVertexBuffer() {
if (!vertices_.empty())
glBufferDataARB(GL_ARRAY_BUFFER_ARB, numVerts_ * vertexDecl_->getVertexStride(), &vertices_[0], GL_STATIC_DRAW_ARB);
glBufferData(GL_ARRAY_BUFFER_ARB, numVerts_ * vertexDecl_->getVertexStride(), &vertices_[0], GL_STATIC_DRAW_ARB);
}
void DrawMeshBase::fillInvVertexMap(size_t n_vertices, void *data) {
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(int) * n_vertices, data, GL_STATIC_DRAW);
glBufferData(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(int) * n_vertices, data, GL_STATIC_DRAW);
}
} /* namespace ACG */
......@@ -1120,7 +1120,7 @@ DrawMeshT<Mesh>::createIBO()
// for (unsigned int i = 0; i < numTris_ * 3; ++i)
// pwIndices[i] = (unsigned short)indices_[i];
//
// glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, numTris_ * 3 * sizeof(unsigned short), pwIndices, GL_STATIC_DRAW_ARB);
// glBufferData(GL_ELEMENT_ARRAY_BUFFER_ARB, numTris_ * 3 * sizeof(unsigned short), pwIndices, GL_STATIC_DRAW_ARB);
// }
// else
createIndexBuffer();
......@@ -1447,7 +1447,7 @@ void ACG::DrawMeshT<Mesh>::addTriRenderObjects(IRenderer* _renderer, const Rende
}
else // no texture map specified, use whatever texture is currently bound to the first texture stage
{
glActiveTextureARB(GL_TEXTURE0);
glActiveTexture(GL_TEXTURE0);
GLint textureID = 0;
glGetIntegerv(GL_TEXTURE_BINDING_2D, &textureID);
......
......@@ -100,7 +100,7 @@ init()
// test whether fbo hasn't been created before
if(!fbo_)
glGenFramebuffersEXT( 1, &fbo_ );
glGenFramebuffers( 1, &fbo_ );
// check status
checkFramebufferStatus();
......@@ -112,15 +112,15 @@ void FBO::del()
{
// delete framebuffer object
if(fbo_)
glDeleteFramebuffersEXT( 1, &fbo_ );
glDeleteFramebuffers( 1, &fbo_ );
// delete render buffer
if(depthbuffer_)
glDeleteRenderbuffersEXT(1, &depthbuffer_);
glDeleteRenderbuffers(1, &depthbuffer_);
// delete stencil buffer
if(stencilbuffer_)
glDeleteRenderbuffersEXT(1, &stencilbuffer_);
glDeleteRenderbuffers(1, &stencilbuffer_);
for (AttachmentList::iterator it = attachments_.begin(); it != attachments_.end(); ++it)
if (it->second.id && it->second.owner)
......@@ -177,7 +177,7 @@ attachTexture2D( GLenum _attachment, GLuint _texture, GLenum _target )
bind();
// add texture to frame buffer object
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, _attachment, _target, _texture, 0 );
glFramebufferTexture2D( GL_FRAMEBUFFER_EXT, _attachment, _target, _texture, 0 );
checkGLError();
......@@ -350,24 +350,24 @@ FBO::
addDepthBuffer( GLuint _width, GLuint _height )
{
if (depthbuffer_)
glDeleteRenderbuffersEXT(1, &depthbuffer_);
glDeleteRenderbuffers(1, &depthbuffer_);
// create renderbuffer
glGenRenderbuffersEXT(1, &depthbuffer_);
glGenRenderbuffers(1, &depthbuffer_);
// bind renderbuffer
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, depthbuffer_);
// malloc
#ifdef GL_ARB_texture_multisample
glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples_, GL_DEPTH_COMPONENT, _width, _height);
glRenderbufferStorageMultisample(GL_RENDERBUFFER_EXT, samples_, GL_DEPTH_COMPONENT, _width, _height);
#else
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, _width, _height);
glRenderbufferStorage(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, _width, _height);
#endif
// attach to framebuffer object
if ( bind() )
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer_);
glFramebufferRenderbuffer(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer_);
// check status
checkFramebufferStatus();
......@@ -383,24 +383,24 @@ FBO::
addStencilBuffer( GLuint _width, GLuint _height )
{
if (stencilbuffer_)
glDeleteRenderbuffersEXT(1, &stencilbuffer_);
glDeleteRenderbuffers(1, &stencilbuffer_);
// create renderbuffer
glGenRenderbuffersEXT(1, &stencilbuffer_);
glGenRenderbuffers(1, &stencilbuffer_);
// bind renderbuffer
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, stencilbuffer_);
// malloc
#ifdef GL_ARB_texture_multisample
glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples_, GL_STENCIL_INDEX, _width, _height);
glRenderbufferStorageMultisample(GL_RENDERBUFFER_EXT, samples_, GL_STENCIL_INDEX, _width, _height);
#else
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_STENCIL_INDEX, _width, _height);
glRenderbufferStorage(GL_RENDERBUFFER_EXT, GL_STENCIL_INDEX, _width, _height);
#endif
// attach to framebuffer object
if ( bind() )
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, stencilbuffer_);
glFramebufferRenderbuffer(GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, stencilbuffer_);
// check status
checkFramebufferStatus();
......@@ -416,31 +416,31 @@ FBO::
addDepthStencilBuffer( GLuint _width, GLuint _height )
{
if (depthbuffer_)
glDeleteRenderbuffersEXT(1, &depthbuffer_);
glDeleteRenderbuffers(1, &depthbuffer_);
if (stencilbuffer_)
glDeleteRenderbuffersEXT(1, &stencilbuffer_);
glDeleteRenderbuffers(1, &stencilbuffer_);
depthbuffer_ = stencilbuffer_ = 0;
// create renderbuffer
glGenRenderbuffersEXT(1, &depthbuffer_);
glGenRenderbuffers(1, &depthbuffer_);
// bind renderbuffer
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, depthbuffer_);
// malloc
#ifdef GL_ARB_texture_multisample
glRenderbufferStorageMultisampleEXT(GL_RENDERBUFFER_EXT, samples_, GL_DEPTH_STENCIL, _width, _height);
glRenderbufferStorageMultisample(GL_RENDERBUFFER_EXT, samples_, GL_DEPTH_STENCIL, _width, _height);
#else
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_STENCIL, _width, _height);
glRenderbufferStorage(GL_RENDERBUFFER_EXT, GL_DEPTH_STENCIL, _width, _height);
#endif
// attach to framebuffer object
if (bind())
{
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer_);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer_);
glFramebufferRenderbuffer(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer_);
glFramebufferRenderbuffer(GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depthbuffer_);
}
// check status
......@@ -492,7 +492,7 @@ FBO::
checkFramebufferStatus()
{
GLenum status;
status = ( GLenum ) glCheckFramebufferStatusEXT( GL_FRAMEBUFFER_EXT );
status = ( GLenum ) glCheckFramebufferStatus( GL_FRAMEBUFFER_EXT );
//std::cout << "Framebuffer status: " << status << std::endl;
switch ( status )
{
......@@ -556,8 +556,8 @@ void FBO::resize( GLsizei _width, GLsizei _height, bool _forceResize )
// safest way to resize is to first delete the FBO and all its internal textures, and then rebuild
if (fbo_)
glDeleteFramebuffersEXT(1, &fbo_);
glGenFramebuffersEXT(1, &fbo_);
glDeleteFramebuffers(1, &fbo_);
glGenFramebuffers(1, &fbo_);
// "detach" all textures
AttachmentList temp;
......
......@@ -2177,7 +2177,7 @@ void GLState::useProgram(GLuint _program)
}
void GLState::genBuffersARB(GLsizei n, GLuint* buffers) {
glGenBuffersARB(n, buffers);
glGenBuffers(n, buffers);
}
void GLState::genBuffers(GLsizei n, GLuint* buffers) {
......@@ -2186,7 +2186,7 @@ void GLState::genBuffers(GLsizei n, GLuint* buffers) {
void GLState::bufferDataARB(
GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage) {
glBufferDataARB(target, size, data, usage);
glBufferData(target, size, data, usage);
}
void GLState::bufferData(
......
......@@ -533,7 +533,7 @@ public:
//===========================================================================
/**
* Simple wrapper around glGenBuffersARB.
* Simple wrapper around glGenBuffers.
* Useful where glew cannot be included.
*/
static void genBuffersARB(GLsizei n, GLuint* buffers);
......@@ -545,7 +545,7 @@ public:
static void genBuffers(GLsizei n, GLuint* buffers);
/**
* Simple wrapper around glBufferDataARB.
* Simple wrapper around glBufferData.
* Useful where glew cannot be included.
*/
static void bufferDataARB(
......
......@@ -855,11 +855,11 @@ bool TextureBuffer::getBufferData(std::vector<char>& _dst) {
void ProgramBaseNV::bind() {
if (!valid)
gen();
glBindProgramNV(target, program);
glBindProgramARB(target, program);
}
void ProgramBaseNV::unbind() {
glBindProgramNV(target, 0);
glBindProgramARB(target, 0);
}
bool ProgramBaseNV::load(const char* prog_text) {
......@@ -882,13 +882,13 @@ bool ProgramBaseNV::load(const char* prog_text) {
void ProgramBaseNV::gen() {
glGenProgramsNV(1, &program);
glGenProgramsARB(1, &program);
valid = true;
}
void ProgramBaseNV::del() {
if (valid)
glDeleteProgramsNV(1, &program);
glDeleteProgramsARB(1, &program);
valid = false;
}
......
......@@ -87,7 +87,7 @@ LineNode::LineNode( LineMode _mode,
LineNode::~LineNode() {
if (vbo_)
glDeleteBuffersARB(1, &vbo_);
glDeleteBuffers(1, &vbo_);
}
......@@ -451,7 +451,7 @@ void LineNode::createVBO()
// create vbo if it does not exist
if (!vbo_)
glGenBuffersARB(1, &vbo_);
glGenBuffers(1, &vbo_);
vertexDecl_.clear();
vertexDecl_.addElement(GL_FLOAT, 3, VERTEX_USAGE_POSITION);
......@@ -568,8 +568,8 @@ void LineNode::createVBO()
}
}
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vbo_);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, vboData.size()*sizeof(float) , &vboData[0] , GL_STATIC_DRAW_ARB);
glBindBuffer(GL_ARRAY_BUFFER_ARB, vbo_);
glBufferData(GL_ARRAY_BUFFER_ARB, vboData.size()*sizeof(float) , &vboData[0] , GL_STATIC_DRAW_ARB);
// Update done.
updateVBO_ = false;
......
......@@ -128,13 +128,13 @@ MeshNodeDeprecatedT<Mesh>::
~MeshNodeDeprecatedT()
{
if (vertex_buffer_)
glDeleteBuffersARB(1, (GLuint*) &vertex_buffer_);
glDeleteBuffers(1, (GLuint*) &vertex_buffer_);
if (normal_buffer_)
glDeleteBuffersARB(1, (GLuint*) &normal_buffer_);
glDeleteBuffers(1, (GLuint*) &normal_buffer_);
if (face_index_buffer_)
glDeleteBuffersARB(1, (GLuint*) &face_index_buffer_ );
glDeleteBuffers(1, (GLuint*) &face_index_buffer_ );
if (faceList_)
glDeleteLists (faceList_, 1);
......@@ -420,7 +420,7 @@ update_geometry()
// Generate a vertex buffer on the GPU
//===================================================================
if (!vertex_buffer_) glGenBuffersARB(1, (GLuint*) &vertex_buffer_);
if (!vertex_buffer_) glGenBuffers(1, (GLuint*) &vertex_buffer_);
ACG::GLState::bindBufferARB(GL_ARRAY_BUFFER_ARB, vertex_buffer_);
vertexBufferInitialized_ = false;
......@@ -428,7 +428,7 @@ update_geometry()
//Check if using floats otherwise convert to internal float array
if ( sizeof(PointScalar) == 4 ) {
glBufferDataARB(GL_ARRAY_BUFFER_ARB,
glBufferData(GL_ARRAY_BUFFER_ARB,
3 * mesh_.n_vertices() * sizeof(PointScalar),
mesh_.points(),
GL_STATIC_DRAW_ARB);
......@@ -446,7 +446,7 @@ update_geometry()
if ( !vertices_.empty() ) {
glBufferDataARB(GL_ARRAY_BUFFER_ARB,
glBufferData(GL_ARRAY_BUFFER_ARB,
3 * mesh_.n_vertices() * sizeof(float),
&vertices_[0],
GL_STATIC_DRAW_ARB);
......@@ -459,14 +459,14 @@ update_geometry()
// Generate a normal buffer on the GPU
//===================================================================
if (!normal_buffer_) glGenBuffersARB(1, (GLuint*) &normal_buffer_);
if (!normal_buffer_) glGenBuffers(1, (GLuint*) &normal_buffer_);
ACG::GLState::bindBufferARB(GL_ARRAY_BUFFER_ARB, normal_buffer_);
normalBufferInitialized_ = false;
// Check if using floats otherwise convert to internal float array
if ( sizeof(NormalScalar) == 4) {
glBufferDataARB(GL_ARRAY_BUFFER_ARB,
glBufferData(GL_ARRAY_BUFFER_ARB,
3 * mesh_.n_vertices() * sizeof(NormalScalar),
mesh_.vertex_normals(),
GL_STATIC_DRAW_ARB);
......@@ -483,7 +483,7 @@ update_geometry()
if ( !normals_.empty() ) {
glBufferDataARB(GL_ARRAY_BUFFER_ARB,
glBufferData(GL_ARRAY_BUFFER_ARB,
3 * mesh_.n_vertices() * sizeof(float),
&normals_[0],
GL_STATIC_DRAW_ARB);
......@@ -545,12 +545,12 @@ update_topology()
if ( !indices_.empty() ) {
// generate buffer
if (!face_index_buffer_) glGenBuffersARB(1, (GLuint*) &face_index_buffer_);
if (!face_index_buffer_) glGenBuffers(1, (GLuint*) &face_index_buffer_);
// index buffer
ACG::GLState::bindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, face_index_buffer_);
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB,
glBufferData(GL_ELEMENT_ARRAY_BUFFER_ARB,
indices_.size() * sizeof(unsigned int),
&indices_[0],
GL_STATIC_DRAW_ARB);
......
......@@ -1298,7 +1298,7 @@ void PrincipalAxisNode::createVBO() {
// create vbo if it does not exist
if (!vbo_)
glGenBuffersARB(1, &vbo_);
glGenBuffers(1, &vbo_);
int tensorComponentCount = 0;
for (int i = 0; i < 3; ++i) {
......@@ -1351,8 +1351,8 @@ void PrincipalAxisNode::createVBO() {
}
assert(vboPtr == &vboData[0] + vboData.size());
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vbo_);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, vboData.size() * sizeof(float),
glBindBuffer(GL_ARRAY_BUFFER_ARB, vbo_);
glBufferData(GL_ARRAY_BUFFER_ARB, vboData.size() * sizeof(float),
&vboData[0], GL_STATIC_DRAW_ARB);
// Update done.
......
......@@ -532,16 +532,16 @@ updateVBO() {
if (oldVboSize_ != vertexBuffer_.size())
{
glBufferDataARB( GL_ARRAY_BUFFER_ARB, vertexBuffer_.size() * sizeof(GLfloat), 0, GL_DYNAMIC_DRAW_ARB );
glBufferData( GL_ARRAY_BUFFER_ARB, vertexBuffer_.size() * sizeof(GLfloat), 0, GL_DYNAMIC_DRAW_ARB );
oldVboSize_ = vertexBuffer_.size();
}
// get pointer to VBO memory
GLfloat *data = reinterpret_cast<GLfloat*>(glMapBufferARB( GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB ));
GLfloat *data = reinterpret_cast<GLfloat*>(glMapBuffer( GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB ));
std::copy(vertexBuffer_.begin(), vertexBuffer_.end(), data);
glUnmapBufferARB(GL_ARRAY_BUFFER_ARB);
glUnmapBuffer(GL_ARRAY_BUFFER_ARB);
ACG::GLState::bindBufferARB( GL_ARRAY_BUFFER_ARB, 0 );
}
......
......@@ -696,7 +696,7 @@ namespace GLSL {
* @param _name Name of the fragment output data
*/
void Program::bindFragDataLocation(unsigned int _index, const char *_name) {
glBindFragDataLocationEXT(this->m_programId, _index, _name);
glBindFragDataLocation(this->m_programId, _index, _name);
checkGLError2(_name);
}
......@@ -728,7 +728,7 @@ namespace GLSL {
* @return Fragment data location
*/
int Program::getFragDataLocation(const char *_name) {
int attributeLocation = glGetFragDataLocationEXT(this->m_programId, _name);
int attributeLocation = glGetFragDataLocation(this->m_programId, _name);
checkGLError2(_name);
return attributeLocation;
}
......@@ -740,7 +740,7 @@ namespace GLSL {
* @param _type Geometry type
*/
void Program::setGeometryInputType(GLint _type) {
glProgramParameteriEXT(this->m_programId, GL_GEOMETRY_INPUT_TYPE_EXT, _type);
glProgramParameteri(this->m_programId, GL_GEOMETRY_INPUT_TYPE_EXT, _type);
}
/** \brief Set output type of geometry
......@@ -750,7 +750,7 @@ namespace GLSL {
* @param _type Output geometry type
*/
void Program::setGeometryOutputType(GLint _type) {
glProgramParameteriEXT(this->m_programId, GL_GEOMETRY_OUTPUT_TYPE_EXT, _type);
glProgramParameteri(this->m_programId, GL_GEOMETRY_OUTPUT_TYPE_EXT, _type);
}
/** \brief Sets the maximum vertex output of the geometry shader
......@@ -760,7 +760,7 @@ namespace GLSL {
* @param _numVerticesOut Maximal number of vertices
*/
void Program::setGeometryVertexCount(GLint _numVerticesOut){
glProgramParameteriEXT(this->m_programId, GL_GEOMETRY_VERTICES_OUT_EXT, _numVerticesOut);
glProgramParameteri(this->m_programId, GL_GEOMETRY_VERTICES_OUT_EXT, _numVerticesOut);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment