add player guide
[carveJwlIkooP6JGAAIwe30JlM.git] / player_render.c
index b4897fc1f0bf2b13aa8c0abd7068ca27bed836bc..ba50fc1402b0e55ce11a491865c321a824d5c398 100644 (file)
@@ -364,6 +364,7 @@ VG_STATIC void render_board( camera *cam, world_instance *world,
 }
 
 VG_STATIC void render_playermodel( camera *cam, world_instance *world,
+                                   int depth_compare,
                                    struct player_model *model,
                                    struct skeleton *skeleton ){
    if( !model ) return;
@@ -375,16 +376,20 @@ VG_STATIC void render_playermodel( camera *cam, world_instance *world,
    shader_model_character_view_uTexMain( 0 );
    shader_model_character_view_uCamera( cam->transform[3] );
    shader_model_character_view_uPv( cam->mtx.pv );
-   shader_model_character_view_uTexSceneDepth( 1 );
-   render_fb_bind_texture( gpipeline.fb_main, 2, 1 );
-   v3f inverse;
-   render_fb_inverse_ratio( gpipeline.fb_main, inverse );
-   inverse[2] = skaterift.cam.farz-skaterift.cam.nearz;
 
-   shader_model_character_view_uInverseRatioDepth( inverse );
-   render_fb_inverse_ratio( NULL, inverse );
-   inverse[2] = cam->farz-cam->nearz;
-   shader_model_character_view_uInverseRatioMain( inverse );
+   if( depth_compare ){
+      shader_model_character_view_uTexSceneDepth( 1 );
+      render_fb_bind_texture( gpipeline.fb_main, 2, 1 );
+      v3f inverse;
+      render_fb_inverse_ratio( gpipeline.fb_main, inverse );
+      inverse[2] = skaterift.cam.farz-skaterift.cam.nearz;
+
+      shader_model_character_view_uInverseRatioDepth( inverse );
+      render_fb_inverse_ratio( NULL, inverse );
+      inverse[2] = cam->farz-cam->nearz;
+      shader_model_character_view_uInverseRatioMain( inverse );
+   }
+   shader_model_character_view_uDepthCompare( depth_compare );
 
    world_link_lighting_ub( world, _shader_model_character_view.id );
    world_bind_position_texture( world, _shader_model_character_view.id,
@@ -403,8 +408,7 @@ VG_STATIC void render_playermodel( camera *cam, world_instance *world,
    mesh_draw( &model->mdl.mesh );
 }
 
-PLAYER_API void player__render( camera *cam, player_instance *player )
-{
+PLAYER_API void player__render( camera *cam, player_instance *player ){
    world_instance *world = world_current_instance();
    SDL_AtomicLock( &addon_system.sl_cache_using_resources );
 
@@ -413,7 +417,7 @@ PLAYER_API void player__render( camera *cam, player_instance *player )
                                   player->playermodel_view_slot );
 
    if( !model ) model = &player->fallback_model;
-   render_playermodel( cam, world, model, &player->playeravatar->sk );
+   render_playermodel( cam, world, 1, model, &player->playeravatar->sk );
 
    struct player_board *board = 
       addon_cache_item_if_loaded( k_addon_type_board,