X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_render.h;h=d2e615d2b754d9813b7d97e3846a8e8bd4e1e457;hb=bdac014448b6ec968fe645f1581f321144f07dba;hp=3662bb19f1447f0333ea23e52a1bee56040f7d57;hpb=86dbcd5796ed674ca9433cce1ace8bef322cd121;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_render.h b/world_render.h index 3662bb1..d2e615d 100644 --- a/world_render.h +++ b/world_render.h @@ -1,3 +1,7 @@ +/* + * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved + */ + #ifndef WORLD_RENDER_H #define WORLD_RENDER_H @@ -15,32 +19,33 @@ vg_tex2d tex_alphatest = { .path = "textures/alphatest.qoi", vg_tex2d tex_graffiti = { .path = "textures/graffitibox.qoi", .flags = VG_TEXTURE_NEAREST }; -static void world_render_init(void) +VG_STATIC void world_render_init(void) { - vg_tex2d_init( (vg_tex2d *[]){ &tex_terrain_colours, - &tex_terrain_noise, - &tex_alphatest, - &tex_graffiti }, 4 ); -} - - - -static void render_world_depth( m4x4f projection, m4x3f camera ); - + vg_info( "Loading default world textures\n" ); + vg_acquire_thread_sync(); + { + vg_tex2d_init( (vg_tex2d *[]){ &tex_terrain_colours, + &tex_terrain_noise, + &tex_alphatest, + &tex_graffiti }, 4 ); + } + vg_release_thread_sync(); +} +VG_STATIC void render_world_depth( m4x4f projection, m4x3f camera ); /* * Rendering */ -static void bind_terrain_textures(void) +VG_STATIC void bind_terrain_textures(void) { vg_tex2d_bind( &tex_terrain_noise, 0 ); vg_tex2d_bind( &tex_terrain_colours, 1 ); } -static void render_world_vb( m4x4f projection, v3f camera ) +VG_STATIC void render_world_vb( m4x4f projection, v3f camera ) { m4x3f identity_matrix; m4x3_identity( identity_matrix ); @@ -55,21 +60,11 @@ static void render_world_vb( m4x4f projection, v3f camera ) shader_vblend_uMdl( identity_matrix ); shader_vblend_uCamera( camera ); - scene_bind( &world.geo ); + mesh_bind( &world.mesh_geo ); mdl_draw_submesh( &world.sm_geo_vb ); - - mesh_bind( &world.cars ); - -#if 0 - for( int i=0; igate.co[0], camera[3] ); if( dist < closest ) @@ -196,14 +194,14 @@ static void render_world_gates( m4x4f projection, v3f playerco, m4x3f camera ) } } - render_gate( &world.routes.gates[id].gate, playerco, camera ); + render_gate( &world.gates[id].gate, playerco, camera ); v3_lerp( world.render_gate_pos, - world.routes.gates[id].gate.co[0], + world.gates[id].gate.co[0], 1.0f, world.render_gate_pos ); } -static void render_world( m4x4f projection, m4x3f camera ) +VG_STATIC void render_world( m4x4f projection, m4x3f camera ) { render_sky( camera ); render_world_routes( projection, camera[3] ); @@ -214,9 +212,12 @@ static void render_world( m4x4f projection, m4x3f camera ) int closest = 0; float min_dist = INFINITY; - for( int i=0; i