+ if (!vid_usinghwgamma)
+ {
+ // all the blends ignore depth
+ memset(&m, 0, sizeof(m));
+ R_Mesh_State_Texture(&m);
+ GL_DepthMask(true);
+ GL_DepthTest(false);
+ if (v_color_enable.integer)
+ {
+ c[0] = v_color_white_r.value;
+ c[1] = v_color_white_g.value;
+ c[2] = v_color_white_b.value;
+ }
+ else
+ c[0] = c[1] = c[2] = v_contrast.value;
+ VectorScale(c, (float) (1 << v_overbrightbits.integer), c);
+ if (c[0] >= 1.01f || c[1] >= 1.01f || c[2] >= 1.01f)
+ {
+ GL_BlendFunc(GL_DST_COLOR, GL_ONE);
+ GL_VertexPointer(blendvertex3f);
+ while (c[0] >= 1.01f || c[1] >= 1.01f || c[2] >= 1.01f)
+ {
+ GL_Color(bound(0, c[0] - 1, 1), bound(0, c[1] - 1, 1), bound(0, c[2] - 1, 1), 1);
+ R_Mesh_Draw(3, 1, polygonelements);
+ VectorScale(c, 0.5, c);
+ }
+ }
+ if (v_color_enable.integer)
+ {
+ c[0] = v_color_black_r.value;
+ c[1] = v_color_black_g.value;
+ c[2] = v_color_black_b.value;
+ }
+ else
+ c[0] = c[1] = c[2] = v_brightness.value;
+ if (c[0] >= 0.01f || c[1] >= 0.01f || c[2] >= 0.01f)
+ {
+ GL_BlendFunc(GL_ONE, GL_ONE);
+ GL_VertexPointer(blendvertex3f);
+ GL_Color(c[0], c[1], c[2], 1);
+ R_Mesh_Draw(3, 1, polygonelements);
+ }
+ }
+ R_Mesh_Finish();