Revision 96dc0730
Added by danij over 13 years ago
Further refactoring of the texture upload/processing pipeline in ringzero:
- Began replacing the use of TextureVariantUsageContext identifiers, turning the context-specific logic branching into new properties of TextureVariantSpecification. The context identifiers will remain, however they'll instead be used to reference predefined default property sets (avoiding an additional lookup).
- Added an object interface for de::ColorPalette and moved into new source files.
- Color palettes are now considered part of the refresh subsystem (was GL) and are now allocated from the real heap.
- Register the games' color palettes before the view border patches thus allowing them to be precached during game load.
- Purge deferred GL tasks during a game change.
- PCX image loader failed to reposition the file stream if the file being read was smaller than the PCX header structure.
- Removed the allow-single-alpha-pixel kludge for DOOM2's RWDMON3; we now force all map surfaces opaque (unless a twosided linedef middle) so we don't need to kludge this.
- Refactored away most of the in-place changes to the texture clamp state. If a temporary change is necessary the user should return the clamp state to that defined in the variantspecification, otherwise, a new variant should be derived (note that the actual GL texture objects may be shared, however this implementation detail is hidden by the texture manager).
- Refactored away the EASY_UPLOAD, UPLOAD_ARG_ALPHACHANNEL and UPLOAD_ARG_RGBDATA Texture Content Flags.
- Fixed: The engine failed to specify the correct GL pixel store, unpack byte alignment and consequently relied upon the default 4-byte alignment. This is fine for textures whose width is divisible by 4 however anything else would fail to upload correctly (e.g., NPOT).
- Fixed: Detail textures larger than the maximum texture size (unlikely) would fail to load. Larger textures are now scaled down according to the texture quality preferences when necessary.
- Fixed: Texture coordinate calculations for the fullscreen HUD icons.
- Changed: Removed the -bigmtex command line option as it wasn't particularly useful.
- Added: Patch-class textures used in the UI can now be loaded from a WAD lump using any supported image format (not just DOOM's Patch format). Note that this does not include composite patch textures (i.e., textures defined in DOOM's TEXTURE1/2 format) which still require component patches to use the DOOM Patch format.
- Changed Snowberry: Removed the paletted texture option from texture settings.
- Cleanup.
Files
- added
- modified
- copied
- renamed
- deleted
- doomsday
- build
- engine
- api
- dd_gl.h (diff)
- dd_share.h (diff)
- doomsday.def (diff)
- doomsday.h (diff)
- portable
- include
- src
- colorpalette.c
- con_busy.c (diff)
- dd_loop.c (diff)
- dd_main.c (diff)
- dd_pinit.c (diff)
- dgl_common.c (diff)
- dgl_texture.c
- gl_defer.c (diff)
- gl_main.c (diff)
- gl_pcx.c (diff)
- gl_tex.c (diff)
- gl_texmanager.c (diff)
- p_materialmanager.c (diff)
- p_surface.c (diff)
- r_data.c (diff)
- r_draw.c (diff)
- r_lumobjs.c (diff)
- r_model.c (diff)
- r_sky.c (diff)
- r_things.c (diff)
- r_world.c (diff)
- rend_console.c (diff)
- rend_fakeradio.c (diff)
- rend_list.c (diff)
- rend_main.c (diff)
- rend_model.c (diff)
- rend_sky.c (diff)
- rend_sprite.c (diff)
- sys_opengl.c (diff)
- ui2_main.c (diff)
- api
- plugins
- snowberry