#include <simgear/compiler.h>
#include <GL/glut.h>
-#include <simgear/xgl/xgl.h>
+#include <GL/gl.h>
#include STL_STRING // Standard C++ string library
#include <map> // STL associative "array"
#include "newmat.hxx"
-FG_USING_STD(string);
-FG_USING_STD(map);
-FG_USING_STD(vector);
-FG_USING_STD(less);
-
-
-#if 0
-// Material property class
-class FGMaterialSlotold {
-
-private:
-
- FGMaterial m;
-
- // ssg stage structure
- ssgStateSelector *state;
- bool state_valid;
-
-public:
-
- // Constructor
- FGMaterialSlotold ( void );
-
- // Destructor
- ~FGMaterialSlotold ( void );
-
- // friend istream& operator >> ( istream& in, FGMaterialSlot& m );
-
- inline FGMaterial get_m() const { return m; }
- inline void set_m( FGMaterial new_m ) { m = new_m; }
-
- // ssg state
- inline ssgStateSelector *get_state() { return state; }
- inline void set_state( ssgStateSelector *s ) { state = s; }
- inline bool get_state_valid() const { return state_valid; }
- inline void set_state_valid( bool flag ) { state_valid = flag; }
-};
-#endif
+SG_USING_STD(string);
+SG_USING_STD(map);
+SG_USING_STD(vector);
+SG_USING_STD(less);
// Material management class
private:
// associative array of materials
- typedef map < string, FGNewMat, less<string> > material_map;
+ typedef map < string, FGNewMat *, less<string> > material_map;
typedef material_map::iterator material_map_iterator;
typedef material_map::const_iterator const_material_map_iterator;
bool load( const string& mpath );
// Add the named texture with default properties
- bool add_item( const string &name );
+ bool add_item( const string &tex_path );
+ bool add_item( const string &mat_name, const string &tex_path );
+ bool add_item( const string &mat_name, ssgSimpleState *state );
// find a material record by material name
FGNewMat *find( const string& material );
void set_step (int step);
+ int get_step ();
+
+ /**
+ * Load the next deferred texture, if there is any.
+ */
+ void load_next_deferred();
material_map_iterator begin() { return matlib.begin(); }
const_material_map_iterator begin() const { return matlib.begin(); }