enforce alignment
[carveJwlIkooP6JGAAIwe30JlM.git] / model.h
diff --git a/model.h b/model.h
index 9bdc2bca58b32c8563cb14dbe6a6be77fd867e9e..be0666af89e530fdfc9003b786c485ee87b702f2 100644 (file)
--- a/model.h
+++ b/model.h
@@ -449,8 +449,8 @@ VG_STATIC void mdl_load_mesh_data( mdl_context *mdl, void *lin_alloc )
 {
    assert( mdl->file );
    
-   u64 size_verts = mdl->info.vertex_count * sizeof(mdl_vert),
-       size_index = mdl->info.indice_count * sizeof(u32);
+   u64 size_verts = vg_align8( mdl->info.vertex_count * sizeof(mdl_vert) ),
+       size_index = vg_align8( mdl->info.indice_count * sizeof(u32) );
 
    mdl->vertex_buffer = vg_linear_alloc( lin_alloc, size_verts );
    mdl->index_buffer  = vg_linear_alloc( lin_alloc, size_index );
@@ -479,7 +479,7 @@ VG_STATIC void mdl_load_anim_data( mdl_context *mdl, void *lin_alloc )
    if( mdl->info.keyframe_count == 0 )
       return;
    
-   u64 size_kf = mdl->info.keyframe_count * sizeof(mdl_keyframe);
+   u64 size_kf = vg_align8( mdl->info.keyframe_count * sizeof(mdl_keyframe) );
    mdl->keyframe_buffer = vg_linear_alloc( lin_alloc, size_kf );
                                                     
    fseek( mdl->file, mdl->info.keyframe_offset, SEEK_SET );
@@ -500,7 +500,7 @@ VG_STATIC void mdl_load_pack_data( mdl_context *mdl, void *lin_alloc )
    if( mdl->info.pack_size == 0 )
       return;
    
-   mdl->pack = vg_linear_alloc( lin_alloc, mdl->info.pack_size );
+   mdl->pack = vg_linear_alloc( lin_alloc, vg_align8( mdl->info.pack_size ) );
    fseek( mdl->file, mdl->info.pack_offset, SEEK_SET );
 
    u64 l = fread( mdl->pack, mdl->info.pack_size, 1, mdl->file );
@@ -525,7 +525,7 @@ VG_STATIC mdl_context *mdl_load_full( void *lin_alloc, const char *path )
    mdl_open( &temp_ctx, path );
 
    /* create allocator */
-   u32 tot_size = temp_ctx.info.file_length + sizeof( mdl_context );
+   u32 tot_size = temp_ctx.info.file_length + sizeof( mdl_context ) + 64;
    void *data = vg_create_linear_allocator( lin_alloc, tot_size, 
                                             VG_MEMORY_SYSTEM );