]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/tgdb/ShaderGeometry.hxx
Only disable display lists if using VBOs.
[simgear.git] / simgear / scene / tgdb / ShaderGeometry.hxx
index 9814af28c46bb7da847dca9a3c7cdb94bd0898a9..30c72fbe0d3092a5f64d278f6d2ab054fcfb5ada 100644 (file)
@@ -24,6 +24,7 @@
 
 #include <vector>
 
+#include <osg/Array>
 #include <osg/BoundingBox>
 #include <osg/CopyOp>
 #include <osg/Drawable>
 #include <osg/Vec3>
 #include <osg/Vec4>
 
-#include "TreeBin.hxx"
-
 namespace simgear
 {
 
 class ShaderGeometry : public osg::Drawable
 {
     public:
-        ShaderGeometry()
-        { 
-          setUseDisplayList(false); 
+        ShaderGeometry() :
+          varieties(1)
+        {
+                setSupportsDisplayList(false);
         }
 
         ShaderGeometry(int v) :
           varieties(v)
-        { 
-          setUseDisplayList(false); 
+        {
+                setSupportsDisplayList(false);
         }
         
         /** Copy constructor using CopyOp to manage deep vs shallow copy.*/
@@ -56,32 +56,26 @@ class ShaderGeometry : public osg::Drawable
             osg::Drawable(ShaderGeometry,copyop) {}
 
         META_Object(flightgear, ShaderGeometry);
-        
-        typedef std::vector<osg::Vec4> PositionSizeList;
-        
+
         virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
         virtual osg::BoundingBox computeBound() const;
-    
         
-        void setGeometry(osg::Drawable* geometry)
+        void setGeometry(osg::Geometry* geometry)
         {
             _geometry = geometry;
         }
         
-        void addTree(TreeBin::Tree tree)
-        {
-            _trees.push_back(tree);
-        }
-        
-        osg::ref_ptr<osg::Drawable> _geometry;
+    void addObject(const osg::Vec3& position, float scale, int texture_index);
+
+        osg::ref_ptr<osg::Geometry> _geometry;
 
-        TreeBin::TreeList _trees;
         int varieties;
+        osg::ref_ptr<osg::Vec4Array> _posScaleArray;
+        osg::ref_ptr<osg::FloatArray> _vertexAttribArray;
 
     protected:
     
         virtual ~ShaderGeometry() {}
-        
 };
 
 }