Introduced new BufferObject design + implementation in preperation of implementing a pool system for buffer objects

This commit is contained in:
Robert Osfield
2009-10-01 20:19:42 +00:00
parent cfac6a7809
commit f75013d534
24 changed files with 1067 additions and 842 deletions

View File

@@ -445,7 +445,7 @@ suppress reflector "osg::StencilTwoSided::Extensions"
suppress reflector "osg::Texture3D::Extensions"
suppress reflector "osg::GL2Extensions"
suppress reflector "osg::Drawable::Extensions"
suppress reflector "osg::BufferObject::Extensions"
suppress reflector "osg::GLBufferObject::Extensions"
suppress reflector "osg::FBOExtensions"
suppress reflector "osg::Drawable::Extensions"
suppress reflector "osg::BlendColor::Extensions"

View File

@@ -64,7 +64,7 @@ END_REFLECTOR
BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Array)
I_DeclaringFile("osg/Array");
I_BaseType(osg::Object);
I_BaseType(osg::BufferData);
I_ConstructorWithDefaults3(IN, osg::Array::Type, arrayType, osg::Array::ArrayType, IN, GLint, dataSize, 0, IN, GLenum, dataType, 0,
____Array__Type__GLint__GLenum,
"",
@@ -148,21 +148,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Array)
__void__trim,
"Frees unused space on this vector - i.e. ",
"the difference between size() and max_size() of the underlying vector. ");
I_Method0(void, dirty,
Properties::NON_VIRTUAL,
__void__dirty,
"Dirty the primitive, which increments the modified count, to force buffer objects to update. ",
"");
I_Method1(void, setModifiedCount, IN, unsigned int, value,
Properties::NON_VIRTUAL,
__void__setModifiedCount__unsigned_int,
"Set the modified count value. ",
"");
I_Method0(unsigned int, getModifiedCount,
Properties::NON_VIRTUAL,
__unsigned_int__getModifiedCount,
"Get modified count value. ",
"");
I_Method1(void, setVertexBufferObject, IN, osg::VertexBufferObject *, vbo,
Properties::NON_VIRTUAL,
__void__setVertexBufferObject__osg_VertexBufferObject_P1,
@@ -178,16 +163,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Array)
__C5_osg_VertexBufferObject_P1__getVertexBufferObject,
"Get the const VertexBufferObject. ",
"If no VBO is assigned returns NULL ");
I_Method1(void, setVertexBufferObjectOffset, IN, const GLvoid *, offset,
Properties::NON_VIRTUAL,
__void__setVertexBufferObjectOffset__C5_GLvoid_P1,
"Set the offset into the VertexBufferObject, if used. ",
"");
I_Method0(const GLvoid *, getVertexBufferObjectOffset,
Properties::NON_VIRTUAL,
__C5_GLvoid_P1__getVertexBufferObjectOffset,
"Get the offset into the VertexBufferObject, if used. ",
"");
I_SimpleProperty(const GLvoid *, DataPointer,
__C5_GLvoid_P1__getDataPointer,
0);
@@ -197,9 +172,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Array)
I_SimpleProperty(GLenum, DataType,
__GLenum__getDataType,
0);
I_SimpleProperty(unsigned int, ModifiedCount,
__unsigned_int__getModifiedCount,
__void__setModifiedCount__unsigned_int);
I_SimpleProperty(unsigned int, TotalDataSize,
__unsigned_int__getTotalDataSize,
0);
@@ -209,9 +181,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::Array)
I_SimpleProperty(osg::VertexBufferObject *, VertexBufferObject,
__osg_VertexBufferObject_P1__getVertexBufferObject,
__void__setVertexBufferObject__osg_VertexBufferObject_P1);
I_SimpleProperty(const GLvoid *, VertexBufferObjectOffset,
__C5_GLvoid_P1__getVertexBufferObjectOffset,
__void__setVertexBufferObjectOffset__C5_GLvoid_P1);
END_REFLECTOR
BEGIN_VALUE_REFLECTOR(osg::ArrayVisitor)

View File

@@ -26,6 +26,108 @@
#undef OUT
#endif
BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::BufferData)
I_DeclaringFile("osg/BufferObject");
I_BaseType(osg::Object);
I_Constructor0(____BufferData,
"",
"");
I_ConstructorWithDefaults2(IN, const osg::BufferData &, bd, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
____BufferData__C5_BufferData_R1__C5_CopyOp_R1,
"Copy constructor using CopyOp to manage deep vs shallow copy. ",
"");
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj,
Properties::VIRTUAL,
__bool__isSameKindAs__C5_Object_P1,
"",
"");
I_Method0(const char *, libraryName,
Properties::VIRTUAL,
__C5_char_P1__libraryName,
"return the name of the object's library. ",
"Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. ");
I_Method0(const char *, className,
Properties::VIRTUAL,
__C5_char_P1__className,
"return the name of the object's class type. ",
"Must be defined by derived classes. ");
I_Method0(const GLvoid *, getDataPointer,
Properties::PURE_VIRTUAL,
__C5_GLvoid_P1__getDataPointer,
"",
"");
I_Method0(unsigned int, getTotalDataSize,
Properties::PURE_VIRTUAL,
__unsigned_int__getTotalDataSize,
"",
"");
I_Method1(void, setBufferObject, IN, osg::BufferObject *, bufferObject,
Properties::NON_VIRTUAL,
__void__setBufferObject__BufferObject_P1,
"",
"");
I_Method0(osg::BufferObject *, getBufferObject,
Properties::NON_VIRTUAL,
__BufferObject_P1__getBufferObject,
"",
"");
I_Method0(const osg::BufferObject *, getBufferObject,
Properties::NON_VIRTUAL,
__C5_BufferObject_P1__getBufferObject,
"",
"");
I_Method1(void, setBufferIndex, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__void__setBufferIndex__unsigned_int,
"",
"");
I_Method0(unsigned int, getBufferIndex,
Properties::NON_VIRTUAL,
__unsigned_int__getBufferIndex,
"",
"");
I_Method1(osg::GLBufferObject *, getGLBufferObject, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__GLBufferObject_P1__getGLBufferObject__unsigned_int,
"",
"");
I_Method1(osg::GLBufferObject *, getOrCreateGLBufferObject, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__GLBufferObject_P1__getOrCreateGLBufferObject__unsigned_int,
"",
"");
I_Method0(void, dirty,
Properties::NON_VIRTUAL,
__void__dirty,
"Dirty the primitive, which increments the modified count, to force buffer objects to update. ",
"");
I_Method1(void, setModifiedCount, IN, unsigned int, value,
Properties::NON_VIRTUAL,
__void__setModifiedCount__unsigned_int,
"Set the modified count value. ",
"");
I_Method0(unsigned int, getModifiedCount,
Properties::NON_VIRTUAL,
__unsigned_int__getModifiedCount,
"Get modified count value. ",
"");
I_SimpleProperty(unsigned int, BufferIndex,
__unsigned_int__getBufferIndex,
__void__setBufferIndex__unsigned_int);
I_SimpleProperty(osg::BufferObject *, BufferObject,
__BufferObject_P1__getBufferObject,
__void__setBufferObject__BufferObject_P1);
I_SimpleProperty(const GLvoid *, DataPointer,
__C5_GLvoid_P1__getDataPointer,
0);
I_SimpleProperty(unsigned int, ModifiedCount,
__unsigned_int__getModifiedCount,
__void__setModifiedCount__unsigned_int);
I_SimpleProperty(unsigned int, TotalDataSize,
__unsigned_int__getTotalDataSize,
0);
END_REFLECTOR
BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::BufferObject)
I_DeclaringFile("osg/BufferObject");
I_BaseType(osg::Object);
@@ -51,6 +153,16 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::BufferObject)
__C5_char_P1__className,
"return the name of the object's class type. ",
"Must be defined by derived classes. ");
I_Method1(void, setTarget, IN, GLenum, target,
Properties::NON_VIRTUAL,
__void__setTarget__GLenum,
"",
"");
I_Method0(GLenum, getTarget,
Properties::NON_VIRTUAL,
__GLenum__getTarget,
"",
"");
I_Method1(void, setUsage, IN, GLenum, usage,
Properties::NON_VIRTUAL,
__void__setUsage__GLenum,
@@ -61,46 +173,11 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::BufferObject)
__GLenum__getUsage,
"Get the type of usage the buffer object has been set up for. ",
"");
I_Method1(bool, isBufferObjectSupported, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__bool__isBufferObjectSupported__unsigned_int,
"",
"");
I_Method1(bool, isPBOSupported, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__bool__isPBOSupported__unsigned_int,
"",
"");
I_Method1(GLuint &, buffer, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__GLuint_R1__buffer__unsigned_int,
"",
"");
I_Method1(void, bindBuffer, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__void__bindBuffer__unsigned_int,
"",
"");
I_Method1(void, unbindBuffer, IN, unsigned int, contextID,
Properties::VIRTUAL,
__void__unbindBuffer__unsigned_int,
"",
"");
I_Method0(void, dirty,
Properties::NON_VIRTUAL,
__void__dirty,
"",
"");
I_Method1(bool, isDirty, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__bool__isDirty__unsigned_int,
"",
"");
I_Method1(void, compileBuffer, IN, osg::State &, state,
Properties::PURE_VIRTUAL,
__void__compileBuffer__State_R1,
"",
"");
I_Method1(void, resizeGLObjectBuffers, IN, unsigned int, maxSize,
Properties::VIRTUAL,
__void__resizeGLObjectBuffers__unsigned_int,
@@ -111,50 +188,66 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::BufferObject)
__void__releaseGLObjects__State_P1,
"If State is non-zero, this function releases OpenGL objects for the specified graphics context. ",
"Otherwise, releases OpenGL objects for all graphics contexts. ");
I_StaticMethod2(void, deleteBufferObject, IN, unsigned int, contextID, IN, GLuint, globj,
__void__deleteBufferObject__unsigned_int__GLuint_S,
"Use deleteVertexBufferObject instead of glDeleteBuffers to allow OpenGL buffer objects to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID. ",
"");
I_StaticMethod3(void, flushDeletedBufferObjects, IN, unsigned int, contextID, IN, double, x, IN, double &, availableTime,
__void__flushDeletedBufferObjects__unsigned_int__double__double_R1_S,
"flush all the cached display list which need to be deleted in the OpenGL context related to contextID. ",
"");
I_StaticMethod1(void, discardDeletedBufferObjects, IN, unsigned int, contextID,
__void__discardDeletedBufferObjects__unsigned_int_S,
"dicard all the cached display list which need to be deleted in the OpenGL context related to contextID. ",
"Note, unlike flush no OpenGL calls are made, instead the handles are all removed. this call is useful for when an OpenGL context has been destroyed. ");
I_StaticMethod2(osg::BufferObject::Extensions *, getExtensions, IN, unsigned int, contextID, IN, bool, createIfNotInitalized,
__Extensions_P1__getExtensions__unsigned_int__bool_S,
"Function to call to get the extension of a specified context. ",
"If the Extension object for that context has not yet been created and the 'createIfNotInitalized' flag been set to false then returns NULL. If 'createIfNotInitalized' is true then the Extensions object is automatically created. However, in this case the extension object is only created with the graphics context associated with ContextID.. ");
I_StaticMethod2(void, setExtensions, IN, unsigned int, contextID, IN, osg::BufferObject::Extensions *, extensions,
__void__setExtensions__unsigned_int__Extensions_P1_S,
"setExtensions allows users to override the extensions across graphics contexts. ",
"typically used when you have different extensions supported across graphics pipes but need to ensure that they all use the same low common denominator extensions. ");
I_Method1(unsigned int, addBufferData, IN, osg::BufferData *, bd,
Properties::NON_VIRTUAL,
__unsigned_int__addBufferData__BufferData_P1,
"",
"");
I_Method1(void, removeBufferData, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__void__removeBufferData__unsigned_int,
"",
"");
I_Method1(void, removeBufferData, IN, osg::BufferData *, bd,
Properties::NON_VIRTUAL,
__void__removeBufferData__BufferData_P1,
"",
"");
I_Method2(void, setBufferData, IN, unsigned int, index, IN, osg::BufferData *, bd,
Properties::NON_VIRTUAL,
__void__setBufferData__unsigned_int__BufferData_P1,
"",
"");
I_Method1(osg::BufferData *, getBufferData, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__BufferData_P1__getBufferData__unsigned_int,
"",
"");
I_Method1(const osg::BufferData *, getBufferData, IN, unsigned int, index,
Properties::NON_VIRTUAL,
__C5_BufferData_P1__getBufferData__unsigned_int,
"",
"");
I_Method0(unsigned int, getNumBufferData,
Properties::NON_VIRTUAL,
__unsigned_int__getNumBufferData,
"",
"");
I_Method1(osg::GLBufferObject *, getGLBufferObject, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__GLBufferObject_P1__getGLBufferObject__unsigned_int,
"",
"");
I_Method1(osg::GLBufferObject *, getOrCreateGLBufferObject, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__GLBufferObject_P1__getOrCreateGLBufferObject__unsigned_int,
"",
"");
I_ArrayProperty(osg::BufferData *, BufferData,
__BufferData_P1__getBufferData__unsigned_int,
__void__setBufferData__unsigned_int__BufferData_P1,
__unsigned_int__getNumBufferData,
__unsigned_int__addBufferData__BufferData_P1,
0,
__void__removeBufferData__unsigned_int);
I_SimpleProperty(GLenum, Target,
__GLenum__getTarget,
__void__setTarget__GLenum);
I_SimpleProperty(GLenum, Usage,
__GLenum__getUsage,
__void__setUsage__GLenum);
END_REFLECTOR
BEGIN_VALUE_REFLECTOR(osg::BufferObject::BufferEntry)
I_DeclaringFile("osg/BufferObject");
I_Constructor0(____BufferEntry,
"",
"");
I_Constructor1(IN, const osg::BufferObject::BufferEntry &, be,
Properties::NON_EXPLICIT,
____BufferEntry__C5_BufferEntry_R1,
"",
"");
I_PublicMemberProperty(osg::buffered_value< unsigned int >, modifiedCount);
I_PublicMemberProperty(unsigned int, dataSize);
I_PublicMemberProperty(unsigned int, offset);
END_REFLECTOR
TYPE_NAME_ALIAS(std::pair< osg::BufferObject::BufferEntry COMMA osg::DrawElements * >, osg::ElementBufferObject::BufferEntryDrawElementsPair)
TYPE_NAME_ALIAS(std::vector< osg::ElementBufferObject::BufferEntryDrawElementsPair >, osg::ElementBufferObject::BufferEntryDrawElementsPairs)
BEGIN_OBJECT_REFLECTOR(osg::ElementBufferObject)
I_DeclaringFile("osg/BufferObject");
I_BaseType(osg::BufferObject);
@@ -215,28 +308,145 @@ BEGIN_OBJECT_REFLECTOR(osg::ElementBufferObject)
__C5_DrawElements_P1__getDrawElements__unsigned_int,
"",
"");
I_Method1(const GLvoid *, getOffset, IN, unsigned int, i,
Properties::NON_VIRTUAL,
__C5_GLvoid_P1__getOffset__unsigned_int,
"",
"");
I_Method1(void, compileBuffer, IN, osg::State &, state,
Properties::VIRTUAL,
__void__compileBuffer__State_R1,
"",
"");
I_Method1(void, resizeGLObjectBuffers, IN, unsigned int, maxSize,
Properties::VIRTUAL,
__void__resizeGLObjectBuffers__unsigned_int,
"Resize any per context GLObject buffers to specified size. ",
"");
I_IndexedProperty(osg::DrawElements *, DrawElements,
__DrawElements_P1__getDrawElements__unsigned_int,
__void__setDrawElements__unsigned_int__DrawElements_P1,
0);
END_REFLECTOR
TYPE_NAME_ALIAS(std::pair< osg::BufferObject::BufferEntry COMMA osg::Image * >, osg::PixelBufferObject::BufferEntryImagePair)
BEGIN_OBJECT_REFLECTOR(osg::GLBufferObject)
I_DeclaringFile("osg/BufferObject");
I_BaseType(osg::Referenced);
I_ConstructorWithDefaults2(IN, unsigned int, contextID, , IN, osg::BufferObject *, bufferObject, 0,
____GLBufferObject__unsigned_int__BufferObject_P1,
"",
"");
I_Method1(void, setBufferObject, IN, osg::BufferObject *, bufferObject,
Properties::NON_VIRTUAL,
__void__setBufferObject__BufferObject_P1,
"",
"");
I_Method0(osg::BufferObject *, getBufferObject,
Properties::NON_VIRTUAL,
__BufferObject_P1__getBufferObject,
"",
"");
I_Method0(unsigned int, getContextID,
Properties::NON_VIRTUAL,
__unsigned_int__getContextID,
"",
"");
I_Method0(GLuint &, getGLObjectID,
Properties::NON_VIRTUAL,
__GLuint_R1__getGLObjectID,
"",
"");
I_Method0(GLuint, getGLObjectID,
Properties::NON_VIRTUAL,
__GLuint__getGLObjectID,
"",
"");
I_Method1(GLsizeiptrARB, getOffset, IN, unsigned int, i,
Properties::NON_VIRTUAL,
__GLsizeiptrARB__getOffset__unsigned_int,
"",
"");
I_Method0(void, bindBuffer,
Properties::NON_VIRTUAL,
__void__bindBuffer,
"",
"");
I_Method0(void, unbindBuffer,
Properties::NON_VIRTUAL,
__void__unbindBuffer,
"",
"");
I_Method0(bool, isDirty,
Properties::NON_VIRTUAL,
__bool__isDirty,
"",
"");
I_Method0(void, dirty,
Properties::NON_VIRTUAL,
__void__dirty,
"",
"");
I_Method0(void, clear,
Properties::NON_VIRTUAL,
__void__clear,
"",
"");
I_Method0(void, compileBuffer,
Properties::NON_VIRTUAL,
__void__compileBuffer,
"",
"");
I_Method0(void, deleteGLObject,
Properties::NON_VIRTUAL,
__void__deleteGLObject,
"",
"");
I_Method1(void, assign, IN, osg::BufferObject *, bufferObject,
Properties::NON_VIRTUAL,
__void__assign__BufferObject_P1,
"",
"");
I_Method0(bool, isPBOSupported,
Properties::NON_VIRTUAL,
__bool__isPBOSupported,
"",
"");
I_StaticMethod2(osg::GLBufferObject *, createGLBufferObject, IN, unsigned int, contextID, IN, const osg::BufferObject *, bufferObject,
__GLBufferObject_P1__createGLBufferObject__unsigned_int__C5_BufferObject_P1_S,
"",
"");
I_StaticMethod2(void, deleteBufferObject, IN, unsigned int, contextID, IN, GLuint, globj,
__void__deleteBufferObject__unsigned_int__GLuint_S,
"Use deleteVertexBufferObject instead of glDeleteBuffers to allow OpenGL buffer objects to be cached until they can be deleted by the OpenGL context in which they were created, specified by contextID. ",
"");
I_StaticMethod3(void, flushDeletedBufferObjects, IN, unsigned int, contextID, IN, double, x, IN, double &, availableTime,
__void__flushDeletedBufferObjects__unsigned_int__double__double_R1_S,
"flush all the cached display list which need to be deleted in the OpenGL context related to contextID. ",
"");
I_StaticMethod1(void, discardDeletedBufferObjects, IN, unsigned int, contextID,
__void__discardDeletedBufferObjects__unsigned_int_S,
"dicard all the cached display list which need to be deleted in the OpenGL context related to contextID. ",
"Note, unlike flush no OpenGL calls are made, instead the handles are all removed. this call is useful for when an OpenGL context has been destroyed. ");
I_StaticMethod2(osg::GLBufferObject::Extensions *, getExtensions, IN, unsigned int, contextID, IN, bool, createIfNotInitalized,
__Extensions_P1__getExtensions__unsigned_int__bool_S,
"Function to call to get the extension of a specified context. ",
"If the Extension object for that context has not yet been created and the 'createIfNotInitalized' flag been set to false then returns NULL. If 'createIfNotInitalized' is true then the Extensions object is automatically created. However, in this case the extension object is only created with the graphics context associated with ContextID.. ");
I_StaticMethod2(void, setExtensions, IN, unsigned int, contextID, IN, osg::GLBufferObject::Extensions *, extensions,
__void__setExtensions__unsigned_int__Extensions_P1_S,
"setExtensions allows users to override the extensions across graphics contexts. ",
"typically used when you have different extensions supported across graphics pipes but need to ensure that they all use the same low common denominator extensions. ");
I_SimpleProperty(osg::BufferObject *, BufferObject,
__BufferObject_P1__getBufferObject,
__void__setBufferObject__BufferObject_P1);
I_SimpleProperty(unsigned int, ContextID,
__unsigned_int__getContextID,
0);
I_SimpleProperty(GLuint, GLObjectID,
__GLuint__getGLObjectID,
0);
I_PublicMemberProperty(osg::GLBufferObject::Extensions *, _extensions);
END_REFLECTOR
BEGIN_VALUE_REFLECTOR(osg::GLBufferObject::BufferEntry)
I_DeclaringFile("osg/BufferObject");
I_Constructor0(____BufferEntry,
"",
"");
I_Constructor1(IN, const osg::GLBufferObject::BufferEntry &, rhs,
Properties::NON_EXPLICIT,
____BufferEntry__C5_BufferEntry_R1,
"",
"");
I_PublicMemberProperty(unsigned int, modifiedCount);
I_PublicMemberProperty(GLsizeiptrARB, dataSize);
I_PublicMemberProperty(GLsizeiptrARB, offset);
I_PublicMemberProperty(osg::BufferData *, dataSource);
END_REFLECTOR
BEGIN_OBJECT_REFLECTOR(osg::PixelBufferObject)
I_DeclaringFile("osg/BufferObject");
@@ -290,21 +500,11 @@ BEGIN_OBJECT_REFLECTOR(osg::PixelBufferObject)
__C5_Image_P1__getImage,
"",
"");
I_Method0(unsigned int, offset,
I_Method1(bool, isPBOSupported, IN, unsigned int, contextID,
Properties::NON_VIRTUAL,
__unsigned_int__offset,
__bool__isPBOSupported__unsigned_int,
"",
"");
I_Method1(void, compileBuffer, IN, osg::State &, state,
Properties::VIRTUAL,
__void__compileBuffer__State_R1,
"",
"");
I_Method1(void, resizeGLObjectBuffers, IN, unsigned int, maxSize,
Properties::VIRTUAL,
__void__resizeGLObjectBuffers__unsigned_int,
"Resize any per context GLObject buffers to specified size. ",
"");
I_SimpleProperty(osg::Image *, Image,
__Image_P1__getImage,
__void__setImage__osg_Image_P1);
@@ -397,10 +597,6 @@ BEGIN_OBJECT_REFLECTOR(osg::PixelDataBufferObject)
__void__setDataSize__unsigned_int);
END_REFLECTOR
TYPE_NAME_ALIAS(std::pair< osg::BufferObject::BufferEntry COMMA osg::Array * >, osg::VertexBufferObject::BufferEntryArrayPair)
TYPE_NAME_ALIAS(std::vector< osg::VertexBufferObject::BufferEntryArrayPair >, osg::VertexBufferObject::BufferEntryArrayPairs)
BEGIN_OBJECT_REFLECTOR(osg::VertexBufferObject)
I_DeclaringFile("osg/BufferObject");
I_BaseType(osg::BufferObject);
@@ -461,34 +657,9 @@ BEGIN_OBJECT_REFLECTOR(osg::VertexBufferObject)
__C5_Array_P1__getArray__unsigned_int,
"",
"");
I_Method1(const GLvoid *, getOffset, IN, unsigned int, i,
Properties::NON_VIRTUAL,
__C5_GLvoid_P1__getOffset__unsigned_int,
"",
"");
I_Method1(void, compileBuffer, IN, osg::State &, state,
Properties::VIRTUAL,
__void__compileBuffer__State_R1,
"",
"");
I_Method1(void, resizeGLObjectBuffers, IN, unsigned int, maxSize,
Properties::VIRTUAL,
__void__resizeGLObjectBuffers__unsigned_int,
"Resize any per context GLObject buffers to specified size. ",
"");
I_IndexedProperty(osg::Array *, Array,
__Array_P1__getArray__unsigned_int,
__void__setArray__unsigned_int__Array_P1,
0);
END_REFLECTOR
STD_PAIR_REFLECTOR(std::pair< osg::BufferObject::BufferEntry COMMA osg::Array * >)
STD_PAIR_REFLECTOR(std::pair< osg::BufferObject::BufferEntry COMMA osg::DrawElements * >)
STD_PAIR_REFLECTOR(std::pair< osg::BufferObject::BufferEntry COMMA osg::Image * >)
STD_VECTOR_REFLECTOR(std::vector< osg::ElementBufferObject::BufferEntryDrawElementsPair >)
STD_VECTOR_REFLECTOR(std::vector< osg::VertexBufferObject::BufferEntryArrayPair >)

View File

@@ -52,7 +52,7 @@ TYPE_NAME_ALIAS(std::vector< unsigned int >, osg::Image::MipmapDataType)
BEGIN_OBJECT_REFLECTOR(osg::Image)
I_DeclaringFile("osg/Image");
I_BaseType(osg::Object);
I_BaseType(osg::BufferData);
I_Constructor0(____Image,
"",
"");
@@ -85,6 +85,16 @@ BEGIN_OBJECT_REFLECTOR(osg::Image)
__C5_char_P1__className,
"return the name of the object's class type. ",
"Must be defined by derived classes. ");
I_Method0(const GLvoid *, getDataPointer,
Properties::VIRTUAL,
__C5_GLvoid_P1__getDataPointer,
"",
"");
I_Method0(unsigned int, getTotalDataSize,
Properties::VIRTUAL,
__unsigned_int__getTotalDataSize,
"",
"");
I_Method1(int, compare, IN, const osg::Image &, rhs,
Properties::VIRTUAL,
__int__compare__C5_Image_R1,
@@ -310,21 +320,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Image)
__void__ensureValidSizeForTexturing__GLint,
"Ensure image dimensions are a power of two. ",
"Mipmapped textures require the image dimensions to be power of two and are within the maxiumum texture size for the host machine. ");
I_Method0(void, dirty,
Properties::NON_VIRTUAL,
__void__dirty,
"Dirty the image, which increments the modified count, to force osg::Texture to reload the image. ",
"");
I_Method1(void, setModifiedCount, IN, unsigned int, value,
Properties::NON_VIRTUAL,
__void__setModifiedCount__unsigned_int,
"Set the modified count value. ",
"Used by osg::Texture when using texture subloading. ");
I_Method0(unsigned int, getModifiedCount,
Properties::NON_VIRTUAL,
__unsigned_int__getModifiedCount,
"Get modified count value. ",
"Used by osg::Texture when using texture subloading. ");
I_Method0(bool, isMipmap,
Properties::NON_VIRTUAL,
__bool__isMipmap,
@@ -447,6 +442,9 @@ BEGIN_OBJECT_REFLECTOR(osg::Image)
I_SimpleProperty(osg::Image::AllocationMode, AllocationMode,
__AllocationMode__getAllocationMode,
__void__setAllocationMode__AllocationMode);
I_SimpleProperty(const GLvoid *, DataPointer,
__C5_GLvoid_P1__getDataPointer,
0);
I_SimpleProperty(GLenum, DataType,
__GLenum__getDataType,
__void__setDataType__GLenum);
@@ -465,9 +463,6 @@ BEGIN_OBJECT_REFLECTOR(osg::Image)
I_SimpleProperty(const osg::Image::MipmapDataType &, MipmapLevels,
__C5_MipmapDataType_R1__getMipmapLevels,
__void__setMipmapLevels__C5_MipmapDataType_R1);
I_SimpleProperty(unsigned int, ModifiedCount,
__unsigned_int__getModifiedCount,
__void__setModifiedCount__unsigned_int);
I_SimpleProperty(osg::Image::Origin, Origin,
__Origin__getOrigin,
__void__setOrigin__Origin);
@@ -489,6 +484,9 @@ BEGIN_OBJECT_REFLECTOR(osg::Image)
I_SimpleProperty(unsigned int, RowSizeInBytes,
__unsigned_int__getRowSizeInBytes,
0);
I_SimpleProperty(unsigned int, TotalDataSize,
__unsigned_int__getTotalDataSize,
0);
I_SimpleProperty(unsigned int, TotalSizeInBytes,
__unsigned_int__getTotalSizeInBytes,
0);

View File

@@ -157,11 +157,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::DrawElements)
__C5_DrawElements_P1__getDrawElements,
"",
"");
I_Method0(void, dirty,
Properties::VIRTUAL,
__void__dirty,
"Dirty the primitive, which increments the modified count, to force buffer objects to update. ",
"");
I_Method1(void, setElementBufferObject, IN, osg::ElementBufferObject *, ebo,
Properties::NON_VIRTUAL,
__void__setElementBufferObject__osg_ElementBufferObject_P1,
@@ -177,26 +172,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::DrawElements)
__C5_osg_ElementBufferObject_P1__getElementBufferObject,
"Get the const ElementBufferObject. ",
"If no EBO is assigned returns NULL ");
I_Method1(void, setElementBufferObjectOffset, IN, const GLvoid *, offset,
Properties::NON_VIRTUAL,
__void__setElementBufferObjectOffset__C5_GLvoid_P1,
"Set the offset into the ElementBufferObject, if used. ",
"");
I_Method0(const GLvoid *, getElementBufferObjectOffset,
Properties::NON_VIRTUAL,
__C5_GLvoid_P1__getElementBufferObjectOffset,
"Get the offset into the ElementBufferOffset, if used. ",
"");
I_Method1(void, resizeGLObjectBuffers, IN, unsigned int, maxSize,
Properties::VIRTUAL,
__void__resizeGLObjectBuffers__unsigned_int,
"Resize any per context GLObject buffers to specified size. ",
"");
I_MethodWithDefaults1(void, releaseGLObjects, IN, osg::State *, state, 0,
Properties::VIRTUAL,
__void__releaseGLObjects__State_P1,
"If State is non-zero, this function releases OpenGL objects for the specified graphics context. ",
"Otherwise, releases OpenGL objects for all graphics contexts. ");
I_Method1(void, reserveElements, IN, unsigned int, numIndices,
Properties::PURE_VIRTUAL,
__void__reserveElements__unsigned_int,
@@ -223,9 +198,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::DrawElements)
I_SimpleProperty(osg::ElementBufferObject *, ElementBufferObject,
__osg_ElementBufferObject_P1__getElementBufferObject,
__void__setElementBufferObject__osg_ElementBufferObject_P1);
I_SimpleProperty(const GLvoid *, ElementBufferObjectOffset,
__C5_GLvoid_P1__getElementBufferObjectOffset,
__void__setElementBufferObjectOffset__C5_GLvoid_P1);
END_REFLECTOR
TYPE_NAME_ALIAS(osg::VectorGLubyte, osg::DrawElementsUByte::vector_type)
@@ -429,7 +401,7 @@ END_REFLECTOR
BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::PrimitiveSet)
I_DeclaringFile("osg/PrimitiveSet");
I_BaseType(osg::Object);
I_BaseType(osg::BufferData);
I_ConstructorWithDefaults3(IN, osg::PrimitiveSet::Type, primType, osg::PrimitiveSet::PrimitiveType, IN, GLenum, mode, 0, IN, int, numInstances, 0,
____PrimitiveSet__Type__GLenum__int,
"",
@@ -538,31 +510,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::PrimitiveSet)
__unsigned_int__getNumPrimitives,
"",
"");
I_Method0(void, dirty,
Properties::VIRTUAL,
__void__dirty,
"Dirty the primitive, which increments the modified count, to force buffer objects to update. ",
"");
I_Method1(void, setModifiedCount, IN, unsigned int, value,
Properties::NON_VIRTUAL,
__void__setModifiedCount__unsigned_int,
"Set the modified count value. ",
"");
I_Method0(unsigned int, getModifiedCount,
Properties::NON_VIRTUAL,
__unsigned_int__getModifiedCount,
"Get modified count value. ",
"");
I_Method1(void, resizeGLObjectBuffers, IN, unsigned, int,
Properties::VIRTUAL,
__void__resizeGLObjectBuffers__unsigned,
"Resize any per context GLObject buffers to specified size. ",
"");
I_MethodWithDefaults1(void, releaseGLObjects, IN, osg::State *, x, 0,
Properties::VIRTUAL,
__void__releaseGLObjects__State_P1,
"If State is non-zero, this function releases OpenGL objects for the specified graphics context. ",
"Otherwise, releases OpenGL objects for all graphics contexts. ");
I_Method0(void, computeRange,
Properties::VIRTUAL,
__void__computeRange,
@@ -577,9 +524,6 @@ BEGIN_ABSTRACT_OBJECT_REFLECTOR(osg::PrimitiveSet)
I_SimpleProperty(GLenum, Mode,
__GLenum__getMode,
__void__setMode__GLenum);
I_SimpleProperty(unsigned int, ModifiedCount,
__unsigned_int__getModifiedCount,
__void__setModifiedCount__unsigned_int);
I_SimpleProperty(int, NumInstances,
0,
__void__setNumInstances__int);

View File

@@ -331,19 +331,19 @@ BEGIN_OBJECT_REFLECTOR(osg::State)
__void__dirtyAllVertexArrays,
"dirty the vertex, normal, color, tex coords, secondary color, fog coord and index arrays. ",
"");
I_Method1(void, setCurrentVertexBufferObject, IN, osg::VertexBufferObject *, vbo,
I_Method1(void, setCurrentVertexBufferObject, IN, osg::GLBufferObject *, vbo,
Properties::NON_VIRTUAL,
__void__setCurrentVertexBufferObject__osg_VertexBufferObject_P1,
__void__setCurrentVertexBufferObject__osg_GLBufferObject_P1,
"",
"");
I_Method0(const osg::VertexBufferObject *, getCurrentVertexBufferObject,
I_Method0(const osg::GLBufferObject *, getCurrentVertexBufferObject,
Properties::NON_VIRTUAL,
__C5_VertexBufferObject_P1__getCurrentVertexBufferObject,
__C5_GLBufferObject_P1__getCurrentVertexBufferObject,
"",
"");
I_Method1(void, bindVertexBufferObject, IN, const osg::VertexBufferObject *, vbo,
I_Method1(void, bindVertexBufferObject, IN, osg::GLBufferObject *, vbo,
Properties::NON_VIRTUAL,
__void__bindVertexBufferObject__C5_osg_VertexBufferObject_P1,
__void__bindVertexBufferObject__osg_GLBufferObject_P1,
"",
"");
I_Method0(void, unbindVertexBufferObject,
@@ -351,19 +351,19 @@ BEGIN_OBJECT_REFLECTOR(osg::State)
__void__unbindVertexBufferObject,
"",
"");
I_Method1(void, setCurrentElementBufferObject, IN, osg::ElementBufferObject *, ebo,
I_Method1(void, setCurrentElementBufferObject, IN, osg::GLBufferObject *, ebo,
Properties::NON_VIRTUAL,
__void__setCurrentElementBufferObject__osg_ElementBufferObject_P1,
__void__setCurrentElementBufferObject__osg_GLBufferObject_P1,
"",
"");
I_Method0(const osg::ElementBufferObject *, getCurrentElementBufferObject,
I_Method0(const osg::GLBufferObject *, getCurrentElementBufferObject,
Properties::NON_VIRTUAL,
__C5_ElementBufferObject_P1__getCurrentElementBufferObject,
__C5_GLBufferObject_P1__getCurrentElementBufferObject,
"",
"");
I_Method1(void, bindElementBufferObject, IN, const osg::ElementBufferObject *, ebo,
I_Method1(void, bindElementBufferObject, IN, osg::GLBufferObject *, ebo,
Properties::NON_VIRTUAL,
__void__bindElementBufferObject__C5_osg_ElementBufferObject_P1,
__void__bindElementBufferObject__osg_GLBufferObject_P1,
"",
"");
I_Method0(void, unbindElementBufferObject,
@@ -371,19 +371,19 @@ BEGIN_OBJECT_REFLECTOR(osg::State)
__void__unbindElementBufferObject,
"",
"");
I_Method1(void, setCurrentPixelBufferObject, IN, osg::PixelBufferObject *, pbo,
I_Method1(void, setCurrentPixelBufferObject, IN, osg::GLBufferObject *, pbo,
Properties::NON_VIRTUAL,
__void__setCurrentPixelBufferObject__osg_PixelBufferObject_P1,
__void__setCurrentPixelBufferObject__osg_GLBufferObject_P1,
"",
"");
I_Method0(const osg::PixelBufferObject *, getCurrentPixelBufferObject,
I_Method0(const osg::GLBufferObject *, getCurrentPixelBufferObject,
Properties::NON_VIRTUAL,
__C5_PixelBufferObject_P1__getCurrentPixelBufferObject,
__C5_GLBufferObject_P1__getCurrentPixelBufferObject,
"",
"");
I_Method1(void, bindPixelBufferObject, IN, const osg::PixelBufferObject *, pbo,
I_Method1(void, bindPixelBufferObject, IN, osg::GLBufferObject *, pbo,
Properties::NON_VIRTUAL,
__void__bindPixelBufferObject__C5_osg_PixelBufferObject_P1,
__void__bindPixelBufferObject__osg_GLBufferObject_P1,
"",
"");
I_Method0(void, unbindPixelBufferObject,
@@ -830,15 +830,15 @@ BEGIN_OBJECT_REFLECTOR(osg::State)
I_SimpleProperty(unsigned int, ContextID,
__unsigned_int__getContextID,
__void__setContextID__unsigned_int);
I_SimpleProperty(osg::ElementBufferObject *, CurrentElementBufferObject,
I_SimpleProperty(osg::GLBufferObject *, CurrentElementBufferObject,
0,
__void__setCurrentElementBufferObject__osg_ElementBufferObject_P1);
I_SimpleProperty(osg::PixelBufferObject *, CurrentPixelBufferObject,
__void__setCurrentElementBufferObject__osg_GLBufferObject_P1);
I_SimpleProperty(osg::GLBufferObject *, CurrentPixelBufferObject,
0,
__void__setCurrentPixelBufferObject__osg_PixelBufferObject_P1);
I_SimpleProperty(osg::VertexBufferObject *, CurrentVertexBufferObject,
__void__setCurrentPixelBufferObject__osg_GLBufferObject_P1);
I_SimpleProperty(osg::GLBufferObject *, CurrentVertexBufferObject,
0,
__void__setCurrentVertexBufferObject__osg_VertexBufferObject_P1);
__void__setCurrentVertexBufferObject__osg_GLBufferObject_P1);
I_SimpleProperty(const osg::Viewport *, CurrentViewport,
__C5_Viewport_P1__getCurrentViewport,
0);