From Art Trevs, "File Changes:

- GL2Extensions, Program and Program.cpp

Features:
- Support for fragment output binding. (e.g. You can now specify in the fragment shader varying out vec3 fragOut; fragOut = vec3(1,0,1); to write to the fragOut variable. In your program you call glBindFragDataLocation(program, 1, "fragOut") to bind the fragOut variable with the MRT 1 - GL_COLOR_ATTACHMENT1_EXT)

- new methods Program::add/removeBindFragDataLocation Program::getFragDataBindingList

"
This commit is contained in:
Robert Osfield
2007-09-11 13:34:41 +00:00
parent 884b3b7aa2
commit 175c3ce806
3 changed files with 99 additions and 2 deletions

View File

@@ -267,6 +267,11 @@ class OSG_EXPORT GL2Extensions : public osg::Referenced
bool getProgramInfoLog( GLuint program, std::string& result ) const;
bool getShaderInfoLog( GLuint shader, std::string& result ) const;
bool getAttribLocation( const char* attribName, GLuint& slot ) const;
bool getFragDataLocation( const char* fragDataName, GLuint& slot) const;
//EXT_gpu_shader4 to support frag data binding
void glBindFragDataLocation(GLuint program, GLuint colorNumber, const GLchar *name) const;
GLint glGetFragDataLocation(GLuint program, const GLchar *name) const;
protected:
~GL2Extensions() {}
@@ -377,6 +382,9 @@ class OSG_EXPORT GL2Extensions : public osg::Referenced
void* _glGetObjectParameterivARB;
void* _glDeleteObjectARB;
void* _glGetHandleARB;
void* _glBindFragDataLocation;
void* _glGetFragDataLocation;
};
}