]> 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 243384c54be4ec9da4200f4b7a6e317abd6f7b1f..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::Geometry
+class ShaderGeometry : public osg::Drawable
 {
     public:
         ShaderGeometry() :
           varieties(1)
-        { 
+        {
+                setSupportsDisplayList(false);
         }
 
         ShaderGeometry(int v) :
           varieties(v)
-        { 
+        {
+                setSupportsDisplayList(false);
         }
         
         /** Copy constructor using CopyOp to manage deep vs shallow copy.*/
         ShaderGeometry(const ShaderGeometry& ShaderGeometry,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY):
-            osg::Geometry(ShaderGeometry,copyop) {}
+            osg::Drawable(ShaderGeometry,copyop) {}
 
         META_Object(flightgear, ShaderGeometry);
 
@@ -64,16 +65,17 @@ class ShaderGeometry : public osg::Geometry
             _geometry = geometry;
         }
         
-        void addTree(const TreeBin::Tree& tree);
+    void addObject(const osg::Vec3& position, float scale, int texture_index);
 
         osg::ref_ptr<osg::Geometry> _geometry;
 
         int varieties;
+        osg::ref_ptr<osg::Vec4Array> _posScaleArray;
+        osg::ref_ptr<osg::FloatArray> _vertexAttribArray;
 
     protected:
     
         virtual ~ShaderGeometry() {}
-        
 };
 
 }