performance measurements
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gen.c
index df5b342e40fb11965c963a0ce4009db6a4da31bb..543be6d178fb2d72426db6ba55db601c38830720 100644 (file)
@@ -272,6 +272,7 @@ static void world_gen_generate_meshes( world_instance *world ){
          mdl_submesh *sm = mdl_arritm( &world->meta.submeshs, 
                                        vehc->submesh_start+j );
          world_unpack_submesh_dynamic( world, &world->scene_no_collide, sm );
+         world->surfaces[ sm->material_id ].flags |= WORLD_SURFACE_HAS_TRAFFIC;
       }
    }
 
@@ -317,6 +318,7 @@ static void world_gen_generate_meshes( world_instance *world ){
       for( u32 j=0; j<prop->submesh_count; j ++ ){
          mdl_submesh *sm = mdl_arritm( &world->meta.submeshs, 
                                        prop->submesh_start+j );
+         world->surfaces[ sm->material_id ].flags |= WORLD_SURFACE_HAS_PROPS;
          world_unpack_submesh_dynamic( world, &world->scene_no_collide, sm );
       }
    }
@@ -683,8 +685,7 @@ static void world_gen_load_surfaces( world_instance *world ){
    world->texture_count = world->meta.textures.count+1;
    world->textures = vg_linear_alloc( world->heap,
                               vg_align8(sizeof(GLuint)*world->texture_count) );
-
-   vg_tex2d_replace_with_error( &world->textures[0] );
+   world->textures[0] = vg.tex_missing;
 
    for( u32 i=0; i<mdl_arrcount(&world->meta.textures); i++ ){
       mdl_texture *tex = mdl_arritm( &world->meta.textures, i );
@@ -714,8 +715,9 @@ static void world_gen_load_surfaces( world_instance *world ){
    memset( errmat, 0, sizeof(struct world_surface) );
                        
    for( u32 i=0; i<mdl_arrcount(&world->meta.materials); i++ ){
-      world->surfaces[i+1].info = 
-         *(mdl_material *)mdl_arritm( &world->meta.materials, i );
+      struct world_surface *surf = &world->surfaces[i+1];
+      surf->info = *(mdl_material *)mdl_arritm( &world->meta.materials, i );
+      surf->flags = 0;
    }
 }