[quake3] VM incompatibilities with anisotropic filtering patch and improvements with ongoing development
Ludwig Nussel
ludwig.nussel at suse.de
Sat Apr 29 07:24:03 EDT 2006
Thilo Schulz wrote:
> With the latest patch introducing anisotropic texture filtering an
> incompatibility to the old VM files has been introduced, too.
>
> The glConfig structure that is being passed to these parts has been changed to
> add info about the status of anisotropic filtering. The original VMs of
> course do not mirror that change.
> This is problematic because the complete glConfig struct gets written to
> address space managed by these VMs that calculate with a lower bytecount for
> the glConfig structure und overwrites data.
>
> For instance, in q3_ui/ui_local.h it overwrites the variables:
> qboolean debug;
> qhandle_t whiteShader;
> in the uiStatic_t struct.
AFAICS it also currupts cgs_t in cgame/ and uiInfo_t in ui/.
> As soon as you enable anisotropic filtering using the old VMs the debug value
> gets overwritten and the menu is suddenly displayed in debug mode.
>
> Now there are two ways to fix the problem:
> 1. move the
> qboolean textureFilterAnisotropic;
> int maxAnisotropy;
> variables from the glconfig_t struct to another one
> 2. create a compatibility struct with the old data layout from the original iD
> vm's and use this structure as base for writing to the VM's memory
> 3. Get all modders on the world to patch their VMs with the same modifications
> we did to ioq3.
4. store the values in a cvar.
5. store them in static variables outside glConfig_t. Does mod code
need to know about anisotropic filtering anyways?
cu
Ludwig
--
(o_ Ludwig Nussel
//\ SUSE LINUX Products GmbH, Development
V_/_ http://www.suse.de/
More information about the quake3
mailing list