Commit Graph

18662 Commits

Author SHA1 Message Date
Christoph Oelckers ce95d7379f - swapped out the license in two files.
BSD is preferred over LGPL
2020-04-21 21:06:11 +02:00
Christoph Oelckers 5d49faf190 Merge branch 'master' into texture_rework 2020-04-19 21:15:28 +02:00
Christoph Oelckers f296660266 - set all texture IDs after finishing the initial texture manager initialization.
As it turned out, not all textures have a valid ID at that point so it needs to be redone.
2020-04-19 21:15:01 +02:00
Christoph Oelckers 4fb6b7c7d4 - block off the Substitute function by making it private to the 3 classes that really need it. 2020-04-19 21:08:24 +02:00
Christoph Oelckers bd3f4e7347 - relax pointer substitution restriction for morphed monsters. 2020-04-19 21:08:23 +02:00
Christoph Oelckers b7ea483323 - fixed checkForHacks placement. 2020-04-19 19:52:03 +02:00
Christoph Oelckers 8dbc727178 - fixed compile errors pointed out by CI 2020-04-19 19:05:50 +02:00
Christoph Oelckers 88d5bf6877 - relax pointer substitution restriction for morphed monsters. 2020-04-19 19:03:25 +02:00
Christoph Oelckers 0eb68177ca Merge branch 'master' into texture_rework 2020-04-19 18:07:16 +02:00
Christoph Oelckers 052172b9ee - let TeleportSpecial universally map to Teleport when checking action special names. 2020-04-19 18:00:27 +02:00
Christoph Oelckers db6a284253 - apply aspect ratio compensation for all fullscreen images with a height of 200 and 400, and not just to 320x200 and 640x400. 2020-04-19 13:49:10 +02:00
Christoph Oelckers a21d3ae106 - fixed incorrect value range for particle's depth value, used for sorting. 2020-04-19 13:46:00 +02:00
Christoph Oelckers e63871d6f5 - made 3D floor damage transfers optional by adding a new flag bit (2048) and made that mode automatic for the old ZDoom-based light only transfer special. 2020-04-19 13:40:21 +02:00
Christoph Oelckers 5228a67ff5 - fixed keybinding reader - before trying to load DEFBINDS the lump index wasn't reset. 2020-04-19 13:23:02 +02:00
Christoph Oelckers 90f3b49bc3 - removed the "no IWAD definitions found" error message because the condition it checks for is not an error. 2020-04-19 13:17:20 +02:00
Christoph Oelckers 6dfc416b51 - fixed setup of IPK3's where all content is in a subdirectory.
These never received the file name list that was needed to eliminate this directory from internal paths.
2020-04-19 13:04:29 +02:00
Christoph Oelckers d4cc217d42 - fixed a few things that slipped through 2020-04-19 12:40:30 +02:00
Christoph Oelckers 14ce0f4605 - deleted unused variable. 2020-04-19 12:37:50 +02:00
Christoph Oelckers 1c99e0917e - do not treat the ':' as a path separator.
The cases where it really is needed have special handling for it, in all others it causes more problems than it solves.
2020-04-19 12:24:12 +02:00
Christoph Oelckers b2281c38e1 - fixed texture layer management so that each material layer can decide for itself if it wants to allow upscaling.
- rewrote the hardware texture precacher to use the new texture management to properly track the data to delete.
2020-04-19 10:57:56 +02:00
Christoph Oelckers cedc95c2a5 - split out FGameTexture into its own files. 2020-04-19 10:57:56 +02:00
Christoph Oelckers 5a2a72fc95 - store the Vulkan descriptor sets in the material - where they belong!
Having them in the base texture object was a major maintenance issue.
2020-04-19 10:57:56 +02:00
Christoph Oelckers 46e75e8107 - fixed crash with particles checking a non-existent actor. 2020-04-19 10:57:56 +02:00
Christoph Oelckers c836dd3dbf - initialize bNoRemap0 2020-04-19 10:57:55 +02:00
Christoph Oelckers ef8e7a4944 - reworked the multipatch texture builder to reuse the FImageTexture objects. 2020-04-19 10:57:55 +02:00
Christoph Oelckers 59cd049b77 - added missing handling for Rotations to the hardware renderer.
Untested due to lack of material.
2020-04-19 10:57:55 +02:00
Christoph Oelckers 389892a079 - moved SkyOffset and Rotations. 2020-04-19 10:57:55 +02:00
Christoph Oelckers f7dd16ba16 - test skyboxes with dynamic_cast and scale them properly. 2020-04-19 10:57:55 +02:00
Christoph Oelckers 217b80b1fb - moved the brightmap check flag out of FTexture. 2020-04-19 10:57:54 +02:00
Christoph Oelckers 0a1bd458db - moved most material flags out of FTexture. 2020-04-19 10:57:54 +02:00
Christoph Oelckers d812801707 - moved the shader properties to FGameTexture. 2020-04-19 10:57:54 +02:00
Christoph Oelckers e60d758287 - made all member variables of FTexture protected. Also temorarily disabled the CleanUnused call of the precacher - this needs some reworking, now that the texture system is better equipped for it. 2020-04-19 10:57:54 +02:00
Christoph Oelckers 718949f74d - moved the texture name to FGameTexture. 2020-04-19 10:57:53 +02:00
Christoph Oelckers 7dd108c960 - removed FTexture's Scale variable. 2020-04-19 10:57:53 +02:00
Christoph Oelckers eb369dbf41 - initialize texture offsets for images on construction. 2020-04-19 10:57:53 +02:00
Christoph Oelckers 61380fc505 - moved the offsets to FGameTexture.
# Conflicts:
#	src/common/textures/textures.h
2020-04-19 10:57:53 +02:00
Christoph Oelckers 8843761bf8 - moved most of the texture size maintenance to the FGameTexture class. 2020-04-19 10:57:53 +02:00
Christoph Oelckers 9bc1d4f38f - restored null texture setup. 2020-04-19 10:57:52 +02:00
Christoph Oelckers c563f4993f - took the sky cap color getter out of the texture system.
# Conflicts:
#	src/common/textures/textures.h
2020-04-19 10:57:52 +02:00
Christoph Oelckers d1da26895b - moved the texture ID up one level. 2020-04-19 10:57:52 +02:00
Christoph Oelckers 7641da8b7b - moved several members from FTexture to FGameTexture. 2020-04-19 10:57:52 +02:00
Christoph Oelckers 42304d9680 - store the material layers in reference counted pointers in the FGameTexture object.
Reference counting is used because a texture image may be shared by more than one game texture.
2020-04-19 10:57:51 +02:00
Christoph Oelckers 70ec20c137 - optimization of texture scaling checks.
The texture dimension checks can be performed up front when the texture is inserted into the texture manager.
2020-04-19 10:57:51 +02:00
Christoph Oelckers 09898ef6c3 - cache the upscaling check's result in the texture, as this will be queried quite frequently. 2020-04-19 10:57:51 +02:00
Christoph Oelckers 8505c7ee7d - major refactor of texture upscaling control.
All decisions were done deep inside the texture creation code, leaving zero options to the higher level code for controlling the feature.
Changed this so that the option to upscale must be passed as a parameter to FRenderState::SetMaterial and extended all needed variables to manage the added texture variants.
Still not solved: Material layers need explicit control, not only for scaling but also for filtering.
2020-04-19 10:57:51 +02:00
Christoph Oelckers 0b990f0dcb - moved the decision whether to upscale textures up one level in the function chain. Still not the perfect place, this should be decided before creating the texture, not in the middle of the process.
- disabled the selective texture cleaning in the precacher. The logic here turned out to be a serious blocker and needs to be rethought.
2020-04-19 10:57:50 +02:00
Christoph Oelckers a81bb2a136 - make FGameTexture a separate object owning an FTexture instead of merely using a type cast to access it. 2020-04-19 10:57:50 +02:00
Christoph Oelckers 095a5e2c0a - allocate the sprite positioning info on demand only.
For most textures this is never needed and it can easily be put in the memory arena being used for image sources.
2020-04-19 10:57:50 +02:00
Christoph Oelckers c5e81c54a2 - Moved the raw texture handling into the texture manager as well. 2020-04-19 10:57:50 +02:00
Christoph Oelckers 5352682697 - moved the front layer hack for Hexen's skies to the texture manager. 2020-04-19 10:57:50 +02:00