performance measurements
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gen.c
index 4e01de338cfbd70e5e9b4c4319535702825be504..543be6d178fb2d72426db6ba55db601c38830720 100644 (file)
@@ -85,13 +85,12 @@ static void world_gen_add_blob( world_instance *world,
 
    scene_vert *ref       = &world->scene_geo.arrvertices[ hit->tri[0] ];
 
-   for( u32 i=0; i<vg_list_size(verts); i++ )
-   {
+   for( u32 i=0; i<vg_list_size(verts); i++ ){
       scene_vert *pvert = &dst_verts[ i ],
                  *src   = &verts[ i ];
 
       m4x3_mulv( transform, src->co, pvert->co );
-      scene_vert_pack_norm( pvert, transform[1] );
+      scene_vert_pack_norm( pvert, transform[1], 0.0f );
 
       v2_copy( ref->uv, pvert->uv );
    }
@@ -273,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;
       }
    }
 
@@ -318,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 );
       }
    }
@@ -684,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 );
@@ -715,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;
    }
 }