]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
texture compression: add a checkbox for the new cvars
authorRudolf Polzer <divVerent@alientrap.org>
Fri, 6 Aug 2010 12:07:11 +0000 (14:07 +0200)
committerRudolf Polzer <divVerent@alientrap.org>
Fri, 6 Aug 2010 12:07:11 +0000 (14:07 +0200)
defaultXonotic.cfg
effects-high.cfg
effects-low.cfg
effects-med.cfg
effects-normal.cfg
effects-omg.cfg
effects-ultimate.cfg
effects-ultra.cfg
qcsrc/menu/gamecommand.qc
qcsrc/menu/xonotic/dialog_settings_effects.c
qcsrc/menu/xonotic/dialog_settings_video.c

index c40da7257f021d8b5deacef3af5ca009d2515a39..b8cb1d689c229c2318d1320040bd8623c2a4e524 100644 (file)
@@ -848,6 +848,10 @@ set g_deathglow 1.25 "when enabled, players stop glowing after they die (the val
 
 // effects
 r_picmipsprites 0 // Xonotic uses sprites that should never be picmipped (team mate, typing, waypoints)
+r_picmipworld 1
+gl_picmip_world 0
+gl_picmip_sprites 0
+gl_picmip_other 2 // so, picmip -2 is best possible quality
 r_mipsprites 1
 r_mipskins 1
 r_shadow_realtime_world_lightmaps 1
index 676e958dfd0595b8e6a39b70b45e8f03071373ae..7b7358cd9465a44d08f018fc1db32869eb5cdfb9 100644 (file)
@@ -2,7 +2,7 @@ cl_decals 1
 cl_decals_time 4
 cl_particles_quality 1
 gl_flashblend 0
-gl_picmip 1
+gl_picmip -1
 gl_texture_anisotropy 16
 mod_q3bsp_nolightmaps 0
 r_bloom 1
@@ -16,7 +16,6 @@ r_glsl_offsetmapping 1
 r_glsl_offsetmapping_reliefmapping 0
 r_hdr 0
 r_motionblur 0.5
-r_picmipworld 0
 r_shadow_gloss 1
 r_shadow_realtime_dlight 1
 r_shadow_realtime_dlight_shadows 0
@@ -26,6 +25,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_subdivisions_tolerance 3
+r_texture_dds_load 1
 r_water 1
 r_water_resolutionmultiplier 0.5
 vid_samples 2
index 82da91797be410e7a70e96c60f88e66f598afd89..79d56951f4d6c6a4dea4bc1246568dd4a28505ab 100644 (file)
@@ -2,7 +2,7 @@ cl_decals 1
 cl_decals_time 2
 cl_particles_quality 0.4
 gl_flashblend 1
-gl_picmip 2
+gl_picmip 1
 gl_texture_anisotropy 1
 mod_q3bsp_nolightmaps 1
 r_bloom 0
@@ -16,7 +16,6 @@ r_glsl_offsetmapping 0
 r_glsl_offsetmapping_reliefmapping 0
 r_hdr 0
 r_motionblur 0
-r_picmipworld 1
 r_shadow_gloss 0
 r_shadow_realtime_dlight 0
 r_shadow_realtime_dlight_shadows 0
@@ -26,6 +25,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 0
 r_showsurfaces 0
 r_subdivisions_tolerance 8
+r_texture_dds_load 1
 r_water 0
 r_water_resolutionmultiplier 0.5
 vid_samples 1
index 9b2a8b38da68239186fc7f80087c047e666a6e5a..0914dac6006e2bea3f955f9ebe52e6b40765141d 100644 (file)
@@ -2,7 +2,7 @@ cl_decals 1
 cl_decals_time 2
 cl_particles_quality 1
 gl_flashblend 0
-gl_picmip 1
+gl_picmip 0
 gl_texture_anisotropy 1
 mod_q3bsp_nolightmaps 0
 r_bloom 0
@@ -16,7 +16,6 @@ r_glsl_offsetmapping 0
 r_glsl_offsetmapping_reliefmapping 0
 r_hdr 0
 r_motionblur 0
-r_picmipworld 0
 r_shadow_gloss 0
 r_shadow_realtime_dlight 1
 r_shadow_realtime_dlight_shadows 0
@@ -26,6 +25,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 0
 r_showsurfaces 0
 r_subdivisions_tolerance 4
+r_texture_dds_load 1
 r_water 0
 r_water_resolutionmultiplier 0.5
 vid_samples 1
index 7c49b57c620d713749d3220b7d22d4b022967f89..02796ca30aaeb92f043db6f6f68c7d9c2def3429 100644 (file)
@@ -2,7 +2,7 @@ cl_decals 1
 cl_decals_time 2
 cl_particles_quality 1
 gl_flashblend 0
-gl_picmip 1
+gl_picmip 0
 gl_texture_anisotropy 1
 mod_q3bsp_nolightmaps 0
 r_bloom 0
@@ -16,7 +16,6 @@ r_glsl_offsetmapping 0
 r_glsl_offsetmapping_reliefmapping 0
 r_hdr 0
 r_motionblur 0
-r_picmipworld 0
 r_shadow_gloss 1
 r_shadow_realtime_dlight 1
 r_shadow_realtime_dlight_shadows 0
@@ -26,6 +25,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_subdivisions_tolerance 3
+r_texture_dds_load 1
 r_water 0
 r_water_resolutionmultiplier 0.5
 vid_samples 1
index 8bae286c34f91a56580f15e90ee23febf6472df6..cf105ba2b4442b0e33da44ca406180f641dadd3e 100644 (file)
@@ -16,7 +16,6 @@ r_glsl_offsetmapping 0
 r_glsl_offsetmapping_reliefmapping 0
 r_hdr 0
 r_motionblur 0
-r_picmipworld 1
 r_shadow_gloss 0
 r_shadow_realtime_dlight 0
 r_shadow_realtime_dlight_shadows 0
@@ -26,6 +25,7 @@ r_shadow_shadowmapping 0
 r_shadow_usenormalmap 0
 r_showsurfaces 3
 r_subdivisions_tolerance 16
+r_texture_dds_load 1
 r_water 0
 r_water_resolutionmultiplier 0.5
 vid_samples 1
index 123600875ac7ab55c041f99a5be68a93192ee926..f6e002ba6d1d69d19423656a818c4fcb0278ddb0 100644 (file)
@@ -2,7 +2,7 @@ cl_decals 1
 cl_decals_time 10
 cl_particles_quality 1
 gl_flashblend 0
-gl_picmip 0
+gl_picmip -2
 gl_texture_anisotropy 16
 mod_q3bsp_nolightmaps 0
 r_bloom 1
@@ -16,7 +16,6 @@ r_glsl_offsetmapping 1
 r_glsl_offsetmapping_reliefmapping 1
 r_hdr 2
 r_motionblur 0.5
-r_picmipworld 0
 r_shadow_gloss 1
 r_shadow_realtime_dlight 1
 r_shadow_realtime_dlight_shadows 1
@@ -26,6 +25,7 @@ r_shadow_shadowmapping 1
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_subdivisions_tolerance 1
+r_texture_dds_load 0
 r_water 1
 r_water_resolutionmultiplier 1
 vid_samples 4
index 359f035754b3e0171d8110ac10fe7a65f850db77..e9f7b0cc76d33fe7cda7f4327dd308d20290622b 100644 (file)
@@ -2,7 +2,7 @@ cl_decals 1
 cl_decals_time 10
 cl_particles_quality 1
 gl_flashblend 0
-gl_picmip 0
+gl_picmip -2
 gl_texture_anisotropy 16
 mod_q3bsp_nolightmaps 0
 r_bloom 1
@@ -16,7 +16,6 @@ r_glsl_offsetmapping 1
 r_glsl_offsetmapping_reliefmapping 0
 r_hdr 0
 r_motionblur 0.5
-r_picmipworld 0
 r_shadow_gloss 1
 r_shadow_realtime_dlight 1
 r_shadow_realtime_dlight_shadows 1
@@ -26,6 +25,7 @@ r_shadow_shadowmapping 1
 r_shadow_usenormalmap 1
 r_showsurfaces 0
 r_subdivisions_tolerance 2
+r_texture_dds_load 0
 r_water 1
 r_water_resolutionmultiplier 0.5
 vid_samples 4
index d2ef187664439735b203728530543167fc54b477..4b2b9cf0c921345dd48d4032b745a9971b2600b3 100644 (file)
@@ -94,6 +94,12 @@ void GameCommand(string theCommand)
                return;
        }
 
+       if(argv(0) == "setcompression")
+       {
+               updateCompression();
+               return;
+       }
+
 #if 0
        if(argv(0) == "tokentest")
        {
index fcb2b8ccfd7205cdd4156a890002b4a1f6a4d499..9bc68e4356ee603748d2b1d8b4e90d1fb1d0cc49 100644 (file)
@@ -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,33 @@ float someShadowCvarIsEnabled(entity box)
        return FALSE;
 }
 
+float updateCompression()
+{
+       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("jpg/particles/particlefont.jpg", FILE_READ) >= 0)))
+               fclose(fh);
+       if((have_tga = (fh = fopen("tga/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 +94,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, 1, e = makeXonoticTextLabel(0, "Texture resolution:"));
                me.TD(me, 1, 2, e = makeXonoticTextSlider("gl_picmip"));
                        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"));
index dd2f960c730af59c7b97ee480363e21c909a00bb..0aa5e68cc3a6e8391d04428b74f4984546d71aba 100644 (file)
@@ -41,17 +41,13 @@ void XonoticVideoSettingsTab_fill(entity me)
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, "Color depth:"));
                me.TD(me, 1, 2, e = makeXonoticSlider(16, 32, 16, "vid_bitsperpixel"));
-       me.TR(me);
-               me.TD(me, 1, 1.5, e = makeXonoticTextLabel(0, "Texture compression"));
-               me.TD(me, 1, 0.5, e = makeXonoticRadioButton(2, "gl_texturecompression", "0", "None"));
-               me.TD(me, 1, 0.5, e = makeXonoticRadioButton(2, "gl_texturecompression", "1", "Fast"));
-               me.TD(me, 1, 0.5, e = makeXonoticRadioButton(2, "gl_texturecompression", "2", "Good"));
        me.TR(me);
                me.TD(me, 1, 1, e = makeXonoticCheckBox(0, "vid_fullscreen", "Full screen"));
                me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "vid_vsync", "Vertical Synchronization"));
        me.TR(me);
        me.TR(me);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "vid_gl20", "Use OpenGL 2.0 shaders (GLSL)"));
+       me.TR(me);
        me.TR(me);
                me.TD(me, 1, 2, e = makeXonoticCheckBox(0, "r_coronas_occlusionquery", "Use Occlusion Queries"));
        me.TR(me);