]> git.mxchange.org Git - flightgear.git/blobdiff - src/Objects/newmat.hxx
Nuked the segfault on exit bug everyone was seeing. The material lib could
[flightgear.git] / src / Objects / newmat.hxx
index 39ff8f499dc64fede67f59b5ebba7b1efecea6bf..72a92ecc3232815d5cbfb9cdf3406e91cfa80749 100644 (file)
@@ -92,6 +92,10 @@ private:
     // true if texture loading deferred, and not yet loaded
     bool texture_loaded;
 
+    // ref count so we can properly delete if we have multiple
+    // pointers to this record
+    int refcount;
+
 public:
 
     // Constructor
@@ -113,8 +117,13 @@ public:
     inline void set_material_name( const string& n ) { material_name = n; }
 
     inline string get_texture_name() const { return texture_name; }
+    inline const char *get_texture_name_c_str() const {
+        return texture_name.c_str();
+    }
     inline void set_texture_name( const string& n ) { texture_name = n; }
 
+    inline ssgSimpleState *get_textured() { return textured; }
+
     inline double get_xsize() const { return xsize; }
     inline double get_ysize() const { return ysize; }
     inline void set_xsize( double x ) { xsize = x; }
@@ -129,6 +138,9 @@ public:
     inline void set_specular( sgVec4 s ) { sgCopyVec4( specular, s ); }
     inline void set_emission( sgVec4 e ) { sgCopyVec4( emission, e ); }
 
+    inline bool get_texture_loaded() const { return texture_loaded; }
+    inline void set_texture_loaded( bool val ) { texture_loaded = val; }
+
     inline double get_light_coverage () const { return light_coverage; }
     inline void set_light_coverage (double coverage) {
        light_coverage = coverage;
@@ -136,6 +148,10 @@ public:
 
     inline ssgStateSelector *get_state() const { return state; }
 
+    inline void ref() { refcount++; }
+    inline void deRef() { refcount--; }
+    inline int getRef() const { return refcount; }
+
     void dump_info();
 };