| VRS - The Virtual Rendering System |
| version 3.3 |
00001 #ifndef VRS_TRANSFORMFEEDBACK_H 00002 #define VRS_TRANSFORMFEEDBACK_H 00003 00004 // 00005 // VRS 00006 // 00007 #include <vrs/monoattribute.h> 00008 #include <vrs/container/iterator.h> 00009 #include <vrs/opengl/bufferobjectgl.h> 00010 #include <vrs/opengl/openglconfig.h> 00011 #include <vrs/opengl/vertexattributebufferobjectgl.h> 00012 00013 00014 namespace VRS 00015 { 00016 class VRS_CORE_API TransformFeedback : public VRS::MonoAttribute 00017 { 00018 00019 public: 00020 00021 TransformFeedback( 00022 const VRS::SO<VRS::Iterator<VRS::SO<VRS::BaseVertexAttributeBufferObjectGL> > >& bufferObjects, 00023 GLenum primitiveType, 00024 bool enabled = true); 00025 00026 void setBufferObjects(const VRS::SO<VRS::Iterator<VRS::SO<VRS::BaseVertexAttributeBufferObjectGL> > >& bufferObjects); 00027 inline const VRS::SO<VRS::Iterator<VRS::SO<VRS::BaseVertexAttributeBufferObjectGL> > >& getBufferObjects(void) const 00028 { 00029 return this->bufferObjects_; 00030 } 00031 00032 void setPrimitiveType(GLenum primitiveType); 00033 inline GLenum getPrimitiveType(void) const 00034 { 00035 return this->primitiveType_; 00036 } 00037 00038 VRS_TYPEINFO(TransformFeedback, VRS::MonoAttribute) 00039 VRS_SERIALIZABLE(TransformFeedback) 00040 00041 protected: 00042 00043 TransformFeedback(void); 00044 00045 private: 00046 00047 VRS::SO<VRS::Iterator<VRS::SO<VRS::BaseVertexAttributeBufferObjectGL> > > bufferObjects_; 00048 00049 GLenum primitiveType_; 00050 bool queryPrimitivesWritten_; 00051 GLuint primitivesWritten_; 00052 00053 friend class TransformFeedbackPainter; 00054 00055 };//endclass TransformFeedback 00056 00057 00058 };//endnamespace VRS 00059 00060 #endif //VRS_TRANSFORMFEEDBACK_H