major cleanup of the texture manager:

- use sampler objects to avoid creating up to 4 different system textures for one game texture just because of different clamping settings.
- avoids flushing all textures for change of texture filter mode.
- separate sprite and regular dimensions on the material level to have better control over which one gets used. It's now an explicit parameter of ValidateTexture. The main reason for this change is better handling of wall sprites which may not be subjected to such handling.
- create mipmaps based on use case, not texture type.
- allows removal of FCloneTexture hack for proper sharing of the same sprite for decals and other purposes.
- better precaching of skyboxes.
This commit is contained in:
Christoph Oelckers 2014-08-22 23:50:38 +02:00
commit 1050013017
31 changed files with 596 additions and 700 deletions

View file

@ -1239,6 +1239,8 @@ void FTextureManager::PrecacheLevel (void)
if (demoplayback)
return;
precacheTime = I_MSTime();
hitlist = new BYTE[cnt];
memset (hitlist, 0, cnt);