X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player_glide.c;fp=player_glide.c;h=4a5958e3cc6ad3b12be4e7fc70e22701e6a09b3b;hb=93790b71d3a89724255dc73239e38c08ad4bbac7;hp=df49c37db4babbab573856d929413e4502663191;hpb=8d336ea2cde7c596296dbaf0d3ce27a82c6c6cf0;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player_glide.c b/player_glide.c index df49c37..4a5958e 100644 --- a/player_glide.c +++ b/player_glide.c @@ -515,7 +515,7 @@ void player_glide_transition(void) void render_glider_model( vg_camera *cam, world_instance *world, m4x3f mmdl, enum board_shader shader ) { - u32 current_tex = 0xffffffff; + u32 current_mat = 0xffffffff; glActiveTexture( GL_TEXTURE0 ); mdl_context *mdl = &player_glide.glider; @@ -550,20 +550,22 @@ void render_glider_model( vg_camera *cam, world_instance *world, continue; } - mdl_material *mat = mdl_arritm( &mdl->materials, sm->material_id-1 ); - if( mat->tex_diffuse != current_tex ) + if( sm->material_id != current_mat ) { + mdl_material *mat = mdl_arritm( &mdl->materials,sm->material_id-1 ); GLuint tex = vg.tex_missing; - if( mat->tex_diffuse ) + if( mat->shader == k_shader_standard ) { - u32 index = mat->tex_diffuse-1; + struct shader_props_standard *props = mat->props.compiled; + + u32 index = props->tex_diffuse-1; mdl_texture *ptex = mdl_arritm( &mdl->textures, index ); tex = ptex->glname; } glBindTexture( GL_TEXTURE_2D, tex ); - current_tex = mat->tex_diffuse; + current_mat = sm->material_id; } mdl_draw_submesh( sm );