X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Fdialog_settings_effects.c;h=19b232f8ca504f2abffc9e454be90f6b72292e0f;hb=eb02f2e761b1a2057b640be43a6f7abc8bcfac74;hp=fcb2b8ccfd7205cdd4156a890002b4a1f6a4d499;hpb=08ef9dbde8b5b1162a64cc4a1d34a8cb583bc411;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/dialog_settings_effects.c b/qcsrc/menu/xonotic/dialog_settings_effects.c index fcb2b8ccf..19b232f8c 100644 --- a/qcsrc/menu/xonotic/dialog_settings_effects.c +++ b/qcsrc/menu/xonotic/dialog_settings_effects.c @@ -7,6 +7,7 @@ CLASS(XonoticEffectsSettingsTab) EXTENDS(XonoticTab) ATTRIB(XonoticEffectsSettingsTab, columns, float, 6.5) ENDCLASS(XonoticEffectsSettingsTab) entity makeXonoticEffectsSettingsTab(); +float updateCompression(); #endif #ifdef IMPLEMENTATION @@ -29,6 +30,34 @@ float someShadowCvarIsEnabled(entity box) return FALSE; } +float updateCompression() +{ + float fh; + float have_dds, have_jpg, have_tga; + if((have_dds = ((fh = fopen("dds/particles/particlefont.dds", FILE_READ)) >= 0))) + fclose(fh); + if((have_jpg = ((fh = fopen("particles/particlefont.jpg", FILE_READ)) >= 0))) + fclose(fh); + if((have_tga = ((fh = fopen("particles/particlefont.tga", FILE_READ)) >= 0))) + fclose(fh); + if(have_dds && (have_jpg || have_tga)) + { + cvar_set("gl_texturecompression", "0"); + return 1; + } + else if(have_dds) + { + cvar_set("gl_texturecompression", "0"); + cvar_set("r_texture_dds_load", "1"); + return 0; + } + else + { + cvar_set("gl_texturecompression", cvar_string("r_texture_dds_load")); + return 2; + } +} + void XonoticEffectsSettingsTab_fill(entity me) { entity e, s; @@ -66,20 +95,35 @@ void XonoticEffectsSettingsTab_fill(entity me) e.configureXonoticTextSliderValues(e); me.TR(me); me.TR(me); - me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Texture quality:")); - me.TD(me, 1, 2, e = makeXonoticTextSlider("gl_picmip")); + me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Texture resolution:")); + me.TD(me, 1, 2, e = makeXonoticPicmipSlider()); if(cvar("developer")) e.addValue(e, "Leet", "1337"); - e.addValue(e, "Lowest", "4"); - e.addValue(e, "Low", "3"); - e.addValue(e, "Normal", "2"); - e.addValue(e, "Good", "1"); - e.addValue(e, "Best", "0"); + e.addValue(e, "Lowest", "2"); + e.addValue(e, "Low", "1"); + e.addValue(e, "Normal", "0"); + e.addValue(e, "Good", "-1"); + e.addValue(e, "Best", "-2"); e.configureXonoticTextSliderValues(e); me.TR(me); me.TDempty(me, 0.2); - me.TD(me, 1, 2.8, e = makeXonoticCheckBox(1, "r_picmipworld", "Reduce model texture quality only")); - setDependent(e, "gl_picmip", 0.5, -0.5); + { + // detect texture compression method + float f; + f = updateCompression(); + switch(f) + { + case 0: + break; + case 1: + me.TD(me, 1, 2.8, e = makeXonoticCheckBox(1, "r_texture_dds_load", "Avoid lossy texture compression")); + break; + case 2: + me.TD(me, 1, 2.8, e = makeXonoticCheckBox(1, "r_texture_dds_load", "Avoid lossy texture compression")); + makeMulti(e, "gl_texturecompression"); + break; + } + } me.TR(me); me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Anisotropy:")); me.TD(me, 1, 2, e = makeXonoticTextSlider("gl_texture_anisotropy"));