// Constructor
fgMATERIAL::fgMATERIAL ( void )
: texture_name(""),
- alpha(0),
- list_size(0)
+ alpha(0)
+ // , list_size(0)
{
ambient[0] = ambient[1] = ambient[2] = ambient[3] = 0.0;
diffuse[0] = diffuse[1] = diffuse[2] = diffuse[3] = 0.0;
emissive[0] = emissive[1] = emissive[2] = emissive[3] = 0.0;
}
-
-int fgMATERIAL::append_sort_list( fgFRAGMENT *object ) {
- if ( list_size < FG_MAX_MATERIAL_FRAGS )
- {
+/*
+int
+fgMATERIAL::append_sort_list( fgFRAGMENT *object )
+{
+ if ( list_size < FG_MAX_MATERIAL_FRAGS ) {
list[ list_size++ ] = object;
return 1;
- }
- else
- {
+ } else {
return 0;
}
}
+*/
istream&
operator >> ( istream& in, fgMATERIAL& m )
{
string token;
- for (;;)
- {
+ for (;;) {
in >> token;
if ( token == "texture" )
{
void
fgMATERIAL::load_texture()
{
- if ( current_options.get_textures() )
- {
GLubyte *texbuf;
int width, height;
xglTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0,
GL_RGBA, GL_UNSIGNED_BYTE, texbuf);
}
- }
}
// Constructor
fgMATERIAL_MGR::fgMATERIAL_MGR ( void ) {
+ textures_loaded = false;
}
}
fgTILE* last_tile_ptr = NULL;
- for ( size_t i = 0; i < list_size; ++i )
- {
- fgFRAGMENT* frag_ptr = list[i];
+ frag_list_iterator current = list.begin();
+ frag_list_iterator last = list.end();
+
+ for ( ; current != last; ++current ) {
+ fgFRAGMENT* frag_ptr = *current;
current_view.tris_rendered += frag_ptr->num_faces();
if ( frag_ptr->tile_ptr != last_tile_ptr )
{
// Load a library of material properties
-int fgMATERIAL_MGR::load_lib ( void ) {
+int
+fgMATERIAL_MGR::load_lib ( void )
+{
string material_name;
// build the path name to the material db
printf( " Loading material %s\n", material_name.c_str() );
fgMATERIAL m;
in.stream() >> m;
- m.load_texture();
+
+ if ( current_options.get_textures() ) {
+ m.load_texture();
+ }
+
material_mgr.material_map[material_name] = m;
}
}
-// iterator last = end();
-// for ( iterator it = begin(); it != last; ++it )
-// {
-// (*it).second.load_texture();
-// }
+ if ( current_options.get_textures() ) {
+ textures_loaded = true;
+ }
return(1);
}
// Initialize the transient list of fragments for each material property
-void fgMATERIAL_MGR::init_transient_material_lists( void ) {
+void
+fgMATERIAL_MGR::init_transient_material_lists( void )
+{
iterator last = end();
for ( iterator it = begin(); it != last; ++it )
{
}
}
+
bool
fgMATERIAL_MGR::find( const string& material, fgMATERIAL*& mtl_ptr )
{
// $Log$
+// Revision 1.8 1998/10/12 23:49:17 curt
+// Changes from NHV to make the code more dynamic with fewer hard coded limits.
+//
+// Revision 1.7 1998/09/17 18:35:52 curt
+// Tweaks and optimizations by Norman Vine.
+//
// Revision 1.6 1998/09/15 01:35:05 curt
// cleaned up my fragment.num_faces hack :-) to use the STL (no need in
// duplicating work.)