From Julien Valentin, "To sum up changes, I had:

-some extensions in GLExtensions
  - GL_TEXTURE_BUFFER as target in osg::StateSet
  - a VBO based transform feed back example
"


git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14651 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
Robert Osfield
2015-01-06 17:12:51 +00:00
parent f9f480b935
commit 8b384baca9
9 changed files with 428 additions and 3 deletions

View File

@@ -124,6 +124,33 @@ class OSG_EXPORT Program : public osg::StateAttribute
/** Remove a uniform block binding. */
void removeBindUniformBlock(const std::string& name);
/** Remove a TransformFeedBackVarying. */
void removeTransformFeedBackVarying(const std::string& name)
{
for(std::vector<std::string>::iterator i=_feedbackout.begin(); i!=_feedbackout.end(); i++)
{
if (*i == name) {_feedbackout.erase(i);break; }
}
}
/** Add a TransformFeedBack Varying Name. */
void addTransformFeedBackVarying(const std::string& outname)
{
_feedbackout.push_back(outname);
}
/** Get number of TransformFeedBack Varyings. */
inline unsigned int getNumTransformFeedBackVaryings() const { return _feedbackout.size(); }
/** Get const TransformFeedBack Varying at index i. */
inline const std::string& getTransformFeedBackVarying(unsigned int i) const { return _feedbackout[i]; }
/** Set TransformFeedBack Mode. */
void setTransformFeedBackMode(GLenum e) {_feedbackmode=e;}
/** Get TransformFeedBack Mode. */
GLenum getTransformFeedBackMode() const {return _feedbackmode;}
/** Simple class for wrapping up the data used in glProgramBinary and glGetProgramBinary.
* On the first run of your application Programs should be assigned an empty ProgramBinary.
* Before your application exits it should retrieve the program binary via
@@ -393,6 +420,10 @@ class OSG_EXPORT Program : public osg::StateAttribute
GLint _numGroupsY;
GLint _numGroupsZ;
/**TransformFeedBack**/
GLenum _feedbackmode;
std::vector<std::string> _feedbackout;
private:
Program& operator=(const Program&); // disallowed