Hi, Just a coment. Deprecate inmediate mode is also and advantage w.r.t. mobile devices. OpenGL_ES does not implement inmediate mode since its first version, and display lists are no supported since OpenGL_ES 1.1. So it will be good for those starting with ES and OpenSceneGraph.
Cheers. 2013/6/4 Robert Osfield <robert.osfi...@gmail.com> > Hi All, > > I have now taken the next step and added the following methods to > osg::Array: > > > /** Specify whether the array data should be normalized by > OpenGL.*/ > void setNormalize(bool normalize) { _normalize = normalize; } > > /** Get whether the array data should be normalized by OpenGL.*/ > bool getNormalize() const { return _normalize; } > > /** Set hint to ask that the array data is passed via integer > or double, or normal setVertexAttribPointer function.*/ > void setPreserveDataType(bool preserve) { _preserveDataType = > preserve; } > > /** Get hint to ask that the array data is passed via integer > or double, or normal setVertexAttribPointer function.*/ > bool getPreserveDataType() const { return _preserveDataType; } > > /** Set the rate at which generic vertex attributes advance > during instanced rendering. Uses the glVertexAttribDivisor feature of > OpenGL 4.0*/ > void setAttribDivisor(GLuint divisor) { _attribDivisor = divisor; } > > /** Get the rate at which generic vertex attributes advance > during instanced rendering.*/ > GLuint getAttribDivisor() const { return _attribDivisor; } > > enum Binding > { > BIND_OFF=0, > BIND_OVERALL, > BIND_PER_PRIMITIVE_SET, > BIND_PER_VERTEX > }; > > /** Specify how this array should be passed to OpenGL.*/ > void setBinding(Binding binding) { _binding = binding; } > > /** Get how this array should be passed to OpenGL.*/ > Binding getBinding() const { return _binding; } > > At present all of them doing nothing at all apart from sitting there > looking pretty. The PreserveDataType and AttribDivisor are entirely > new and are intended to support new extensions being added to the OSG > - but their implementation will have to wait till the GeometryNew > refactor is further down the road. > > The Normalize and Binding map directly to what has been available in > osg::Geometry::ArrayData's normalize and binding parameters. The > binding we've typically set via Geometry::setNormalBinding() etc. > which we could easily remap internally to array->setBinding(..), but > it will of course require one to call setNormalBinding() after > setNormalArray(..) otherwise the setting would be lost. Alternatively > we just drop backwards compatibility and force uses to set the binding > directly on the array. > > Providing backwards compatibility for normalize will more awkward as > custom normalize settings would require a direct setting to ArrayData, > however, I'm inclined to think dropping this element of backwards > compatibility won't effect too many users as I expect most users not > to be applying anything other than defaults. > > The naming of Binding is something I'm note yet sure of, with the > introduction of AttribDivisor the binding becomes a bit less clearly > defined as well. Not sure what to make of this yet... > > Robert. > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > -- Jordi Torres
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org