Skip to content

Commit fb229cc

Browse files
authored
Fix texture slot 0 incorrectly being considered invalid in a lot of cases (#7106)
1 parent be20450 commit fb229cc

File tree

4 files changed

+25
-25
lines changed

4 files changed

+25
-25
lines changed

code/graphics/material.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -768,19 +768,19 @@ int model_material::get_shader_runtime_flags() const {
768768
flags |= MODEL_SDR_FLAG_DEFERRED;
769769
if (is_hdr())
770770
flags |= MODEL_SDR_FLAG_HDR;
771-
if (get_texture_map(TM_BASE_TYPE) > 0)
771+
if (get_texture_map(TM_BASE_TYPE) >= 0)
772772
flags |= MODEL_SDR_FLAG_DIFFUSE;
773-
if (get_texture_map(TM_GLOW_TYPE) > 0)
773+
if (get_texture_map(TM_GLOW_TYPE) >= 0)
774774
flags |= MODEL_SDR_FLAG_GLOW;
775-
if (get_texture_map(TM_SPECULAR_TYPE) > 0 || get_texture_map(TM_SPEC_GLOSS_TYPE) > 0)
775+
if (get_texture_map(TM_SPECULAR_TYPE) >= 0 || get_texture_map(TM_SPEC_GLOSS_TYPE) >= 0)
776776
flags |= MODEL_SDR_FLAG_SPEC;
777-
if (get_texture_map(TM_NORMAL_TYPE) > 0)
777+
if (get_texture_map(TM_NORMAL_TYPE) >= 0)
778778
flags |= MODEL_SDR_FLAG_NORMAL;
779-
if (get_texture_map(TM_AMBIENT_TYPE) > 0)
779+
if (get_texture_map(TM_AMBIENT_TYPE) >= 0)
780780
flags |= MODEL_SDR_FLAG_AMBIENT;
781-
if (get_texture_map(TM_MISC_TYPE) > 0)
781+
if (get_texture_map(TM_MISC_TYPE) >= 0)
782782
flags |= MODEL_SDR_FLAG_MISC;
783-
if (get_texture_map(TM_MISC_TYPE) > 0 && is_team_color_set())
783+
if (get_texture_map(TM_MISC_TYPE) >= 0 && is_team_color_set())
784784
flags |= MODEL_SDR_FLAG_TEAMCOLOR;
785785
if (is_fogged())
786786
flags |= MODEL_SDR_FLAG_FOG;

code/graphics/opengl/gropengltnl.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -871,7 +871,7 @@ void opengl_tnl_set_model_material(model_material *material_info)
871871
//No shader ever defines this, so don't push it.
872872
//Current_shader->program->Uniforms.setTextureUniform("sHeightmap", 5);
873873

874-
if (material_info->get_texture_map(TM_BASE_TYPE) > 0) {
874+
if (material_info->get_texture_map(TM_BASE_TYPE) >= 0) {
875875
gr_opengl_tcache_set(material_info->get_texture_map(TM_BASE_TYPE),
876876
TCACHE_TYPE_NORMAL,
877877
&u_scale,
@@ -880,7 +880,7 @@ void opengl_tnl_set_model_material(model_material *material_info)
880880
0);
881881
}
882882

883-
if (material_info->get_texture_map(TM_GLOW_TYPE) > 0) {
883+
if (material_info->get_texture_map(TM_GLOW_TYPE) >= 0) {
884884
gr_opengl_tcache_set(material_info->get_texture_map(TM_GLOW_TYPE),
885885
TCACHE_TYPE_NORMAL,
886886
&u_scale,
@@ -889,9 +889,9 @@ void opengl_tnl_set_model_material(model_material *material_info)
889889
1);
890890
}
891891

892-
if (material_info->get_texture_map(TM_SPECULAR_TYPE) > 0 ||
893-
material_info->get_texture_map(TM_SPEC_GLOSS_TYPE) > 0) {
894-
if (material_info->get_texture_map(TM_SPEC_GLOSS_TYPE) > 0) {
892+
if (material_info->get_texture_map(TM_SPECULAR_TYPE) >= 0 ||
893+
material_info->get_texture_map(TM_SPEC_GLOSS_TYPE) >= 0) {
894+
if (material_info->get_texture_map(TM_SPEC_GLOSS_TYPE) >= 0) {
895895
gr_opengl_tcache_set(material_info->get_texture_map(TM_SPEC_GLOSS_TYPE),
896896
TCACHE_TYPE_NORMAL,
897897
&u_scale,
@@ -908,7 +908,7 @@ void opengl_tnl_set_model_material(model_material *material_info)
908908
}
909909
}
910910

911-
if (material_info->get_texture_map(TM_NORMAL_TYPE) > 0) {
911+
if (material_info->get_texture_map(TM_NORMAL_TYPE) >= 0) {
912912
gr_opengl_tcache_set(material_info->get_texture_map(TM_NORMAL_TYPE),
913913
TCACHE_TYPE_NORMAL,
914914
&u_scale,
@@ -917,7 +917,7 @@ void opengl_tnl_set_model_material(model_material *material_info)
917917
4);
918918
}
919919

920-
if (material_info->get_texture_map(TM_HEIGHT_TYPE) > 0) {
920+
if (material_info->get_texture_map(TM_HEIGHT_TYPE) >= 0) {
921921
gr_opengl_tcache_set(material_info->get_texture_map(TM_HEIGHT_TYPE),
922922
TCACHE_TYPE_NORMAL,
923923
&u_scale,
@@ -926,7 +926,7 @@ void opengl_tnl_set_model_material(model_material *material_info)
926926
5);
927927
}
928928

929-
if (material_info->get_texture_map(TM_AMBIENT_TYPE) > 0) {
929+
if (material_info->get_texture_map(TM_AMBIENT_TYPE) >= 0) {
930930
gr_opengl_tcache_set(material_info->get_texture_map(TM_AMBIENT_TYPE),
931931
TCACHE_TYPE_NORMAL,
932932
&u_scale,
@@ -935,7 +935,7 @@ void opengl_tnl_set_model_material(model_material *material_info)
935935
6);
936936
}
937937

938-
if (material_info->get_texture_map(TM_MISC_TYPE) > 0) {
938+
if (material_info->get_texture_map(TM_MISC_TYPE) >= 0) {
939939
gr_opengl_tcache_set(material_info->get_texture_map(TM_MISC_TYPE),
940940
TCACHE_TYPE_NORMAL,
941941
&u_scale,
@@ -948,7 +948,7 @@ void opengl_tnl_set_model_material(model_material *material_info)
948948
GL_state.Texture.Enable(8, GL_TEXTURE_2D_ARRAY, Shadow_map_texture);
949949
}
950950

951-
if (material_info->get_animated_effect() > 0) {
951+
if (material_info->get_animated_effect() >= 0) {
952952
if (Scene_framebuffer_in_frame) {
953953
GL_state.Texture.Enable(9, GL_TEXTURE_2D, Scene_composite_texture);
954954
glDrawBuffer(GL_COLOR_ATTACHMENT0);

code/graphics/uniforms.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ void convert_model_material(model_uniform_data* data_out,
109109
}
110110
data_out->defaultGloss = 0.6f;
111111

112-
if (material.get_texture_map(TM_BASE_TYPE) > 0) {
112+
if (material.get_texture_map(TM_BASE_TYPE) >= 0) {
113113
if (material.is_desaturated()) {
114114
data_out->desaturate = 1;
115115
} else {
@@ -132,35 +132,35 @@ void convert_model_material(model_uniform_data* data_out,
132132
data_out->sBasemapIndex = bm_get_array_index(material.get_texture_map(TM_BASE_TYPE));
133133
}
134134

135-
if (material.get_texture_map(TM_GLOW_TYPE) > 0) {
135+
if (material.get_texture_map(TM_GLOW_TYPE) >= 0) {
136136
data_out->sGlowmapIndex = bm_get_array_index(material.get_texture_map(TM_GLOW_TYPE));
137137
}
138138

139139

140-
if (material.get_texture_map(TM_SPEC_GLOSS_TYPE) > 0) {
140+
if (material.get_texture_map(TM_SPEC_GLOSS_TYPE) >= 0) {
141141
data_out->sSpecmapIndex = bm_get_array_index(material.get_texture_map(TM_SPEC_GLOSS_TYPE));
142142

143143
data_out->gammaSpec = 1;
144144
data_out->alphaGloss = 1;
145145

146146
}
147147

148-
if (material.get_texture_map(TM_SPECULAR_TYPE) > 0) {
148+
if (material.get_texture_map(TM_SPECULAR_TYPE) >= 0) {
149149
data_out->sSpecmapIndex = bm_get_array_index(material.get_texture_map(TM_SPECULAR_TYPE));
150150

151151
data_out->gammaSpec = 0;
152152
data_out->alphaGloss = 0;
153153
}
154154

155-
if (material.get_texture_map(TM_NORMAL_TYPE) > 0) {
155+
if (material.get_texture_map(TM_NORMAL_TYPE) >= 0) {
156156
data_out->sNormalmapIndex = bm_get_array_index(material.get_texture_map(TM_NORMAL_TYPE));
157157
}
158158

159-
if (material.get_texture_map(TM_AMBIENT_TYPE) > 0) {
159+
if (material.get_texture_map(TM_AMBIENT_TYPE) >= 0) {
160160
data_out->sAmbientmapIndex = bm_get_array_index(material.get_texture_map(TM_AMBIENT_TYPE));
161161
}
162162

163-
if (material.get_texture_map(TM_MISC_TYPE) > 0) {
163+
if (material.get_texture_map(TM_MISC_TYPE) >= 0) {
164164
data_out->sMiscmapIndex = bm_get_array_index(material.get_texture_map(TM_MISC_TYPE));
165165
}
166166

code/model/modelrender.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,7 @@ void model_render_buffers(model_draw_list* scene, model_material *rendering_mate
11211121
texture_maps[TM_BASE_TYPE] = model_interp_get_texture(&tmap->textures[TM_BASE_TYPE], elapsed_time);
11221122
}
11231123

1124-
if ( texture_maps[TM_BASE_TYPE] <= 0 ) {
1124+
if ( texture_maps[TM_BASE_TYPE] < 0 ) {
11251125
continue;
11261126
}
11271127
}

0 commit comments

Comments
 (0)