Commit graph

675 commits

Author SHA1 Message Date
Christoph Oelckers
5352682697 - moved the front layer hack for Hexen's skies to the texture manager. 2020-04-19 10:57:50 +02:00
Christoph Oelckers
da873ca8d1 - moved the handling for paletted replacements into the texture manager.
This is something the texture should not concern itself with.
2020-04-19 10:57:49 +02:00
Christoph Oelckers
662fa6e667 - removed the conversion helper code and fixed a few places where FMaterial was only used to access the hardware textures in the FTexture class. 2020-04-19 10:57:49 +02:00
Christoph Oelckers
7bdef7fe9a - cleaned the texture manager's method interface from FTexture references. 2020-04-19 10:57:49 +02:00
Christoph Oelckers
83817080bb - more texture cleanup.
It is now in a state where FTexture really needs to be separated from FGameTexture.
2020-04-19 10:57:48 +02:00
Christoph Oelckers
31035a6cea - cleaned out the coordinate code in FMaterial. 2020-04-19 10:57:48 +02:00
Christoph Oelckers
c178313da5 - got rid of the last remaining FMaterial references in the high level renderer. 2020-04-19 10:57:47 +02:00
Christoph Oelckers
4cbd20e822 - transitioned sky and decal code away from FMaterial. 2020-04-19 10:57:47 +02:00
Christoph Oelckers
cca3f878f5 - removed FMaterial references from other high level renderer data like HWFlat and HWSprite. 2020-04-19 10:57:47 +02:00
Christoph Oelckers
1146cf9e08 - use FGameTexture instead of FMaterial for texture tracking in HWWall.
The FMaterial object is only needed when finally binding the texture to the render state.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
0ce0099e29 - moved the sprite positioning info out of FMaterial back into FTexture.
This cleans out half of FMaterial and brings it closer to being a texture binding descriptor, which is all it really should be.
2020-04-19 10:57:47 +02:00
Christoph Oelckers
9099bc8420 - reworking some lower level texture code. 2020-04-19 10:57:46 +02:00
Christoph Oelckers
72835c5462 - transitioned the GLDEFS parser to FGameTexture. 2020-04-19 10:57:46 +02:00
Christoph Oelckers
54f4267597 - use FGameTexture in the model rendering code. 2020-04-19 10:57:46 +02:00
Christoph Oelckers
b9b6a354c7 - changed all texture access in the play code to use FGameTexture and redid Hexen's front sky layer by adding a new texture instead of hacking the existing one. 2020-04-19 10:57:46 +02:00
Christoph Oelckers
9e7094848c - transitioned the 2D drawer to FGameTexture. 2020-04-19 10:57:45 +02:00
Christoph Oelckers
d9928b51a8 - eliminated all cases of calling DrawTexture with an FTexture.
Everything uses FGameTexture now.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
c7db5b932e - switched the entire status bar code to use FGameTexture.
- scale the automap parchment to clean 320x200 dimensions.
2020-04-19 10:57:45 +02:00
Christoph Oelckers
9593cb56ae - decoupled the software renderer entirely from FTexture - it will only look at FSoftwareTexture now, all access to the texture manager has been wrapped. 2020-04-19 10:57:45 +02:00
Christoph Oelckers
aeba304715 - texture code refactoring to consolidate multiple textures referencing the same backing image. 2020-04-19 10:57:44 +02:00
Christoph Oelckers
3a47c5c7f7 - fixed Vulkan's uTextureMode setup. Also only mask out the flags we really do not want to avoid surprises in the future. 2020-04-19 10:57:44 +02:00
Magnus Norddahl
9ef6d8fd53 Always null textures for all slots because the vulkan target is an OpenGL emulator ;) 2020-04-19 10:57:44 +02:00
Christoph Oelckers
7c46dace03 - this still doesn't work on Vulkan. :( 2020-04-19 10:57:44 +02:00
Christoph Oelckers
8381092cce - major shader rework
* handle brightmaps in the main shader instead of keeping separate instances around.
* added detail and glow layers from Raze.
* fixed material setup which could not guarantee that everything was initialized correctly.
* for warped textures, warp all layers. With this brightmaps finally work on warped textures.

Note: Vulkan reports a "device lost" error with this which still needs to be investigated.
2020-04-19 10:57:43 +02:00
Christoph Oelckers
e92be97f33 - let FSkybox inherit from FImageTexture to simplify the redirection of the base image for the software renderer. 2020-04-13 14:23:57 +02:00
alexey.lysiuk
9c23c0ac59 - fixed compilation with GCC 5 2020-04-12 11:50:11 +03:00
Christoph Oelckers
8f8aed5ee3 - moved bitmap.cpp to 'common' and remove the duplicate IceRemap. 2020-04-11 20:23:26 +02:00
Christoph Oelckers
9dce6d88fa - use 'override' qualifier. 2020-04-11 20:21:00 +02:00
Christoph Oelckers
0cb2a1b8e9 - moved gl_load to common. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
295fa1e73f - header cleanup in gl_interface.cpp 2020-04-11 20:20:59 +02:00
Christoph Oelckers
1e40b745d5 - added some things from Raze to allow using the same code in both projects. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
5fe22c70b5 - moved the 2D drawer to 'common'. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
def123823b - cleanup of 2D code. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
ce4c2be3c7 - use the 2d drawer's size where appropriate. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
b18faacab0 - 2D drawer cleanup. 2020-04-11 20:20:58 +02:00
Christoph Oelckers
ac1f4b8f11 - initialize native functions before the first query. 2020-04-11 20:20:57 +02:00
Christoph Oelckers
932f5c64c2 - moved stats.cpp to common. 2020-04-11 20:20:57 +02:00
Christoph Oelckers
fa99fc5346 - added global variants of the main 2D-draw functions taking an F2DDrawer as their first parameter.
This is a preparation for refactoring the calls to these so that they no longer require a 'screen' parameter.
2020-04-11 20:20:57 +02:00
Christoph Oelckers
3bf7686cfb - moved v_text.cpp to 'common'. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
f8ac9a2662 - moved DObject and core parts of the VM to 'common'.
# Conflicts:
#	src/common/objects/dobject.h
2020-04-11 20:20:51 +02:00
Christoph Oelckers
1a0ace4f88 - palette related fixes. 2020-04-11 20:20:40 +02:00
Christoph Oelckers
d586ffa79c - const-ified the palette pointers in the texture creation code.
- fixed includes.
2020-04-11 20:20:39 +02:00
Christoph Oelckers
65f15e1147 - moved the material class to 'common' as well. 2020-04-11 20:20:38 +02:00
Christoph Oelckers
580e463498 - moved texture code to 'common'. 2020-04-11 20:20:38 +02:00
Christoph Oelckers
2ff93b4635 - added the missing blend modes to FRenderStyle. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
3e285d2261 - moved renderstyle and colortables code to 'common'. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
f8e9cb8fbc - major dependency reduction of the texture system. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
721b857e5e - minor FTexture cleanup. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
ac610d87e5 - merged FPalette and PaletteContainer. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
7243495b16 - moved special color maps to utilities.
The default tables are needed by the texture compositor which should be universal, so this needs to be, too.
2020-04-11 20:19:52 +02:00
Christoph Oelckers
c3a381ed92 - moved most of the console code to 'common'.
The main console.cpp file cannot be done yet, but the rest is ready to go.
2020-04-11 20:19:51 +02:00
Christoph Oelckers
603ad755ab - separated the button code from c_dispatch.
Two separate features justify two separate files.
2020-04-11 20:19:24 +02:00
Christoph Oelckers
e425615770 - moved the V_GetColor family of functions to the global palette utilities. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
05d8856fe0 - moved file system implementation to 'common'. 2020-04-11 14:00:20 +02:00
Christoph Oelckers
80c6d5b276 - renamed more stuff and also moved the Strife teaser voice handling out of the file system. 2020-04-11 14:00:19 +02:00
Christoph Oelckers
c1bb7de23a - more file system refactoring.
* moved the sprite renaming out of the file system entirely into a caller-provided callback.
* renamed several functions to closer match the terms of a file system.
* moved the VM interface out of the implementation.
2020-04-11 14:00:19 +02:00
Christoph Oelckers
6bccde3b51 - renamed the file system related classes to actually use the term "FileSystem". 2020-04-11 14:00:18 +02:00
Christoph Oelckers
fdc14ca805 - renamed fullscreen CVar internally to vid_fullscreen to make searching for it easier.
The word 'fullscreen' appears a bit too frequently in the source.
2020-04-11 14:00:15 +02:00
Christoph Oelckers
fb1a7679ec - moved most basic utility code without any dependencies on the rest of the engine to 'common' directory.
Again the objective is easier sharing with Raze.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
6996d54a23 - moved more code to 'common'.
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
cf757ba834 - made the translation container a class.
This also splits off some Doom-specific implementation details into higher level headers.
2020-04-11 14:00:11 +02:00
Christoph Oelckers
0a7344e432 - abstract the external translation interface.
The translation table array now only gets accessed from within r_translate.cpp.
2020-04-11 14:00:10 +02:00
Christoph Oelckers
b0ecb02d6b - move SuperFastHash to its own set of files, instead of having this tied to the console.
- replace swapvalues with std::swap globally.
- added some additions to utility code from Raze, mainly to reduce file content differences.
- reduced some unused utilities
2020-04-11 14:00:10 +02:00
Christoph Oelckers
1fe667c6a0 - cleaned up the includes in m_png.h, this file had far too many and far too broad dependencies. 2020-04-11 14:00:09 +02:00
Christoph Oelckers
c623b04170 - copied some fixes for overlong config entries from Raze.
- renamed basictypes.h to basics.h to keep the file name in line with Raze and make comparisons easier.
2020-04-11 14:00:08 +02:00
Lucy Phipps
2c1a42ae55
remove gl_texture_usehires since it's unused now
GLTEXMNU_ENABLEHIRES in language.csv is unused too
2020-04-05 13:22:32 +01:00
Christoph Oelckers
5490ffcd77 - removed the obsolete Doomsday 1.8-style texture pack support.
This poorly integrated into the texture system and wasn't compatible with modern texture packs anymore so its usefulness was questionable.
2020-04-04 12:55:24 +02:00
drfrag
8336e80f48 - Fixed sprites sunk into water on Carmack with HQ resize modes. 2020-04-01 14:25:10 +02:00
dondiego
4bfb0e937f
- Fixed tutti-frutti and crash with liquid warp effects on the Carmack renderer when texture resizing was disabled. (#1063) 2020-03-31 19:17:41 -04:00
dondiego
cc0594df2e
- Use g_sin for the SoftPoly warp effects as Graf suggested. (#1061) 2020-03-31 10:25:46 -04:00
Rachael Alexanderson
6049e806d1 - amend previous commit: add softpoly fix 2020-03-26 17:53:32 +01:00
Rachael Alexanderson
7c9d8a0b99 - fix nullptr crash in player.camera reference when player.camera is nullptr 2020-03-26 17:53:32 +01:00
Rachael Alexanderson
ecb3ff0977 - add warp2 shader to softpoly2 2020-03-24 14:05:39 -04:00
Magnus Norddahl
175b697ba2 Implement warp effect 2020-03-24 17:49:21 +01:00
Rachael Alexanderson
aa0df7479e - remove assumption in DFrameBuffer::FillBorder that ultrawide screens will stretch an image, since it is no longer the case. 2020-03-22 06:47:34 -04:00
Christoph Oelckers
828cba13a1 - changed translation management so that the fonts also use translation IDs. 2020-03-16 17:23:30 +01:00
Christoph Oelckers
16ae7e3124 - fixed typo. 2020-03-15 12:19:22 +01:00
Christoph Oelckers
db5efddf12 - implemented better aspect ratio control for fullscreen images.
Due to backwards compatibility needs and for flexibility this needs to be controlled by a gameinfo setting (fullscreenautoaspect):

0: Treat all images as having an aspect ratio of 4:3, this is the default for compatibility reasons
1: Scale all images to fit the screen, i.e. either pillarbox or letterbox them.
2: Scale all images to fill the screen.
3: Scale all images so that the center 4:3 area is always fully visible. This is the recommended mode for 16:9 images designed to be shown with the sides being cropped on narrower displays.

A new DTA_ tag - DTA_FullscreenEx also exists which allows specifying the scale mode directly
2020-03-15 09:27:02 +01:00
Magnus Norddahl
920b322d72 Add missing segment clipping clamps for decals, sprites and wall sprites 2020-03-11 02:18:43 +01:00
alexey.lysiuk
5d6a490846 - prohibit core shaders overriding for OpenGL renderer
https://forum.zdoom.org/viewtopic.php?t=67519
2020-02-25 15:57:50 +02:00
drfrag
68f338b134 - Fixed compilation with MinGW and did some cleanup. 2020-02-16 09:39:17 +02:00
Magnus Norddahl
08e86b5bcc - fix vulkan crash when there are no textures in player's view 2020-02-15 10:42:46 +01:00
Magnus Norddahl
dd2d9f4182 - Fix vk_hdr looking for the wrong colorspace 2020-02-15 09:46:24 +01:00
Christoph Oelckers
617b6cd987 - use floats for sprite depth sorting in the hardware renderer.
Fixed point is clearly insufficient here.
2020-02-15 09:22:30 +01:00
alexey.lysiuk
bf18eab54b - fixed sprite and particle colors when not affected by dynlights
When gl_light_sprites and/or gl_light_particles CVARs were unset, random values could be used their colors

https://forum.zdoom.org/viewtopic.php?t=67066
2020-01-23 17:20:20 +02:00
Magnus Norddahl
e43894213e Remove softpoly specific matrix and vector classes 2020-01-18 13:56:37 +01:00
Magnus Norddahl
43562c94d0 Seems the clamp was required 2020-01-18 12:55:36 +01:00
Magnus Norddahl
e68b46cb6a Implement special colormap support for softpoly 2020-01-17 21:58:33 +01:00
Magnus Norddahl
3b336a1476 Fix broken fixed camera light for walls 2020-01-17 01:15:44 +01:00
alexey.lysiuk
efd2f8a1a8 - implemented screenshots in softpoly backend 2020-01-14 12:14:03 +02:00
Kevin Caccamo
91589d9799 Attempt to optimize check for ML_DRAWFULLHEIGHT
It is less likely that a line will have the ML_DRAWFULLHEIGHT flag than its' ceiling will be above the neighbouring sector's ceiling and vice versa.
2020-01-11 13:24:02 +01:00
Kevin Caccamo
d73a5f5e16 Use != 0 after ANDing with the relevant flags
This is mostly a "just in case" measure, in case I did something wrong with the previous commits.
2020-01-11 13:24:02 +01:00
Kevin Caccamo
2ff92e91d2 Fix ML_DRAWFULLHEIGHT flag check 2020-01-11 13:24:02 +01:00
Kevin Caccamo
7ca6e7e5c1 Add handling for drawfullheight flag
Parse drawfullheight flag in UDMF
Draw full height for walls if the linedef has this flag
2020-01-11 13:24:02 +01:00
Kevin Caccamo
9b598017f9 Add more ways to prevent GZDoom from drawing skybox walls
Add noskywalls flag to sectors and linedefs
2020-01-11 13:24:02 +01:00
alexey.lysiuk
3185e359b9 - added workaround for GLSL noise functions on macOS
There is no chance that Apple will fix their OpenGL drivers
The only viable solution is to preprocess these functions out, and put zeroes instead of them
2020-01-10 13:52:17 +02:00
alexey.lysiuk
7e050010aa - removed obsolete softpoly render modes
https://forum.zdoom.org/viewtopic.php?t=66888
2020-01-06 14:31:34 +02:00
Rachael Alexanderson
cb7a097ed4 - vid_scalemode 1 now only goes down to 640x400 at minimum, instead of 320x200 2020-01-04 15:05:35 -05:00
alexey.lysiuk
651dfbc49f - fixed a few compilation warnings
src/d_main.cpp:280:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
src/rendering/r_videoscale.cpp:147:22: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
src/sound/s_reverbedit.cpp:250:18: warning: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
2020-01-04 12:59:26 +02:00
Magnus Norddahl
fca3da8af4 Update and clarify the licenses for the postprocess, vulkan and softpoly parts 2020-01-03 05:52:01 +01:00