Commit graph

16947 commits

Author SHA1 Message Date
Christoph Oelckers
5ab648b055 - fixed texture sampler generation in the Vulkan backend. 2020-06-06 16:10:19 +02:00
Christoph Oelckers
d643a42c4f - added per pixel lighting for decals. 2020-06-06 15:18:07 +02:00
Christoph Oelckers
16e64a19ae - fixed incorrect offsets for textures in the hires/ folder. 2020-06-06 13:59:39 +02:00
Christoph Oelckers
9f6d244016 - advanced coordinate control for overlays over DTA_Fullscreen images. 2020-06-06 12:51:03 +02:00
Christoph Oelckers
e00f27ddf5 - added limited support for replacing the intermission backgrounds in Doom 1 with widescreen images.
Due to how the placement works here, it is only usable with fullscreenautoaspect mode 3.
2020-06-06 10:19:02 +02:00
Christoph Oelckers
4746d0c626 - fixed crash with texture upscaling in the software renderer. 2020-06-06 09:24:12 +02:00
Cacodemon345
9bf0f9bbfc Add option to disable SDL joystick support.
This also adds some extra sanity checks to avoid crashes when the joystick isn't initialized.
2020-06-04 17:38:49 +03:00
Christoph Oelckers
b441b649c4 - fixed some double to float conversion warnings. 2020-06-04 08:05:38 +02:00
Christoph Oelckers
8b91bf9b61 - enabled CVAR descriptions. 2020-06-04 08:04:51 +02:00
Christoph Oelckers
fd3845ce09 - fixed: vertically mirrored textures should not be subjected to empty space optimizations because the algorithm cannot deal with the inverted case. 2020-06-03 22:30:44 +02:00
Christoph Oelckers
87d81656e1 - fixed: the 3D floor processing code in the renderer did not restore the render style after finishing.
Normally this won't be noticable, the only exception is if the last processed 3D floor had additive translucency and colored fog - this case is special because for additive rendering the fog color needs to be disabled.
2020-06-03 21:35:09 +02:00
Christoph Oelckers
720853cff8 - made some changes so that material definitions can properly check automatic layers when determining their material type.
Most importantly this means that any texture with a custom material definition needs to load its automatic layers before applying the definition.
2020-06-03 21:16:36 +02:00
Edoardo Prezioso
8ab6575bd1 - Fixed OpenAL regression with looping sounds with playing length 0.
If such case occurs, the starttime parameter passed to the sound functions is ignored and truncated to 0.
2020-06-03 15:27:50 +02:00
Cacodemon345
e2e47b8d8c Include signal.h if either compiling for macOS or one of the BSD systems 2020-06-03 08:26:28 +02:00
Cacodemon345
392f78dfbc Allow dialogs to be displayed on other Unix-like OSs 2020-06-03 09:17:14 +03:00
Christoph Oelckers
fa54afbd08 - addressed a problem with materials depending on automatically added textures.
This isn't a fix, it just removes a sanity check that really shouldn't be, but thanks of an underspecification of the material definition it was never possible to do this case properly.
2020-06-03 00:16:25 +02:00
Christoph Oelckers
932b2d820d - fixed floorclipping checks for 3D floors.
Neither the setup nor the in-game checks were correct, because this code comes from a time where ceilings could not have a terrain, meaning that 3D floors couldn't have one.
2020-06-02 23:04:05 +02:00
Christoph Oelckers
c537e5a0b7 - fixed bad ACS translation indexing. 2020-06-02 22:31:04 +02:00
Christoph Oelckers
1279ec081a - Strip out any color escape sequences before setting a window title. 2020-06-02 21:49:53 +02:00
Christoph Oelckers
1881cb45d2 - reject all 0-special lines for activation.
This is to ensure consistency between all callers of this function.
2020-06-02 21:38:55 +02:00
Christoph Oelckers
c48fa818ff - use modulo, not bitwise and-ing to check the damage delay for terrain based damage.
This was apparently overlooked when refactoring the damage system 4 years ago.
2020-06-02 21:24:34 +02:00
Christoph Oelckers
96cf16c923 - fixed: Copying a texture's size must also copy the offset. 2020-06-02 21:23:38 +02:00
Christoph Oelckers
f91958e88d - fixed scale setup for multipatch textures. 2020-06-02 20:38:46 +02:00
Christoph Oelckers
f118cd78bf - fixed missing custom shader setup in cases where a shader got used more than once. 2020-06-02 20:20:18 +02:00
Christoph Oelckers
8f07ab87c8 - make sure that incomplete multipatch textures are technically complete.
They need a valid FTexture backing them and should have their name cleared so that nothing references them by accident.
2020-06-02 20:15:55 +02:00
Christoph Oelckers
8480a390a1 - synced texture sampler setup fixes from Raze. 2020-06-02 11:45:34 +02:00
Christoph Oelckers
83153efcad - refixed translations on Vulkan. 2020-06-02 11:41:49 +02:00
Christoph Oelckers
ff99dfbbc6 Merge branch 'master' of https://github.com/coelckers/gzdoom 2020-05-31 23:38:17 +02:00
Christoph Oelckers
4c11b01588 - backend sync with Raze. 2020-05-31 23:37:11 +02:00
Hugo Locurcio
80c5b4d37b Add a cvar to control weapon bobbing while firing
This simulates a feature found in Crispy Doom, which keeps the
weapon bobbing while firing. This leads to a "smoother" appearance
which may look a bit prettier to some people.

The default value of 0 preserves the old behavior.
2020-05-31 23:12:11 +02:00
drfrag
8c539539df - Fixed crash on maps with out of range sidedef and sector numbers, adapted from PRBoom. 2020-05-29 18:59:58 +02:00
Christoph Oelckers
b60fd4d8bc - removed redundant TextureFilterChanged method from DFrameBuffer. 2020-05-29 11:53:37 +02:00
Christoph Oelckers
5861fdd4bd - minor cleanup of FHardwareTexture.
Inlining of a trivial function and removing dependency on the render state, unbinding the render state should be done elsewhere.
2020-05-29 11:48:29 +02:00
Christoph Oelckers
a517b04908 - texture sampler cleanup. 2020-05-28 22:51:17 +02:00
drfrag
332dfa4d6f - Remove wrong GL includes. 2020-05-27 21:35:09 +02:00
Christoph Oelckers
c892fb1ddb - backend sync with Raze
Mostly code reformatting plus license and copyright adjustments
2020-05-26 22:59:50 +02:00
Christoph Oelckers
4881ec257a - don't let CHANF_AUTO hijack other channels.
With CHANF_OVERLAP this isn't needed anymore - any sound started on CHAN_AUTO can actually play on this channel with overlap implicitly allowed.
This has the added advantage that these sounds can be reliably accessed with other function by using CHAN_AUTO.
2020-05-26 22:19:30 +02:00
Alexander Kromm
2a063c96da more descriptive message for server CVAR change attempt in netgame
Rationale: while the previous description contains the name of a CVAR, it doesn't specify that it's a CVAR. Unsuspecting user may be not aware that the engine or a mod contains such a CVAR.
2020-05-26 19:18:22 +02:00
alexey.lysiuk
555845222d - fixed fullscreen toggle via shortcut 2020-05-26 10:02:16 +03:00
Christoph Oelckers
233d0b62b9 - fixed space calculations for oversized episode and skill menus. 2020-05-25 22:12:08 +02:00
Christoph Oelckers
3b65b0caec - fixed: The size parameters for automap sprites are floats, so they need the matching tag. 2020-05-25 21:32:49 +02:00
Christoph Oelckers
730f64e447 Merge branch 'master' of https://github.com/coelckers/gzdoom 2020-05-25 21:23:25 +02:00
Christoph Oelckers
dbb1819238 - fixed setup for translated textures in Vulkan.
It was passing the wrong IDs to high level code.
2020-05-25 21:17:28 +02:00
Christoph Oelckers
b2b1ecc11f - Single image fonts do not use translations. 2020-05-25 21:16:36 +02:00
Christoph Oelckers
29344006a0 - fixed: texture upscaling was disabled by default.
It should only be disabled if the scale of a texture is greater than 2.
2020-05-25 20:41:47 +02:00
Christoph Oelckers
3e8f53e98c - fixed shader building.
We really need a version directive for user shaders, this is getting too messy. :(
2020-05-25 20:26:58 +02:00
Christoph Oelckers
667b2d6bf4 - fixed: V_GetFont must load the translations once the game has been set up. 2020-05-25 19:44:06 +02:00
Christoph Oelckers
2828dbe095 - fixed: TRF_ALLACTORS did not consider actors without any flag being set. 2020-05-25 19:33:14 +02:00
Christoph Oelckers
ea0da8533c - added missing range check to section code.
Fixes asserts on some maps in Kama Sutra.
2020-05-25 19:20:51 +02:00
Christoph Oelckers
991661e11e - fixed missing sound for Polyobj_MoveTo. 2020-05-25 16:24:36 +02:00
Marisa Kirisame
7d5df1dd7e Add mapinfo option to disable merging of identical pickup messages on same tic 2020-05-24 08:19:14 +02:00
Rachael Alexanderson
5c86ad8507 - defcvars: handle values from a version 219 config 2020-05-23 09:08:40 -04:00
Rachael Alexanderson
00acbac04e Merge remote-tracking branch 'origin/master' into texture_rework 2020-05-23 08:53:11 -04:00
alexey.lysiuk
3f9b9314a0 - added #include to fix compilation with MSVC 16.6.0
https://forum.zdoom.org/viewtopic.php?t=68641
2020-05-21 10:06:50 +03:00
Rachael Alexanderson
58b3cb0971 Merge branch 'master' of https://github.com/coelckers/gzdoom into texture_rework 2020-05-18 23:13:37 -04:00
Alexander Kromm
53ea19c6a8 fix "'ictionary' is freed outside the GC process" warning 2020-05-18 18:32:53 +02:00
alexey.lysiuk
dd40778c75 - fixed map things erroneously treated as polyobject anchors/spots
https://forum.zdoom.org/viewtopic.php?t=68601
2020-05-18 17:48:10 +03:00
Rachael Alexanderson
6e3ec96250 - export common formulae to functions instead of copy-pasting them
- screen bevel now enlarges also when screenblocks <= 11

- make intermission and status bar scaling game-specific in the config

- add scaling customization for classic ui flat scaling

- make screen border flat scale up

- inter_classic_scaling now defaults to true
- fixed: last commit I accidentally left hardcoded testing values and did not change them back to check for the texture's original size

- implement cvar 'inter_classic_scaling' to render the intermission flat as if it were 320x200
2020-05-07 04:34:17 -04:00
Rachael Alexanderson
0f0768652a - force player respawn to call up the player's default class settings before determining where to respawn the player 2020-05-07 04:33:28 -04:00
Rachael Alexanderson
192882f63a Merge branch 'master' of https://github.com/coelckers/gzdoom into texture_rework 2020-05-07 04:32:46 -04:00
Mekboss
4807f4240b Fix MSVS compile bug and add offset parameter for SprayDecal 2020-05-07 09:35:48 +02:00
Mekboss
0e9ca3c850 Replace function variables to DVector3 2020-05-07 09:35:48 +02:00
Mekboss
ba43244764 Add optional direction parameters for SprayDecal and its A_SprayDecal zscript counterpart 2020-05-07 09:35:48 +02:00
Christoph Oelckers
0cf967dc06 - fixed wrong order of actions on shadow map updater. 2020-05-04 22:15:18 +02:00
Christoph Oelckers
c6cc763907 - fixed: screen resolution changes did not notify the 2D drawer. 2020-05-04 22:14:50 +02:00
Christoph Oelckers
192ea40634 - fixed order of multipatch texture initialization.
This didn't play well with hires replacements - the texture size needs to be set as early as possible.
2020-05-04 21:24:36 +02:00
Christoph Oelckers
3fd4d08004 - fixed startup and font init crashes. 2020-05-04 20:06:54 +02:00
PaulyB
a528290b5c Fix single top level filter folder not being read
I have no idea why the missing comma broke it in this particular way...
2020-05-03 11:26:57 +03:00
alexey.lysiuk
028cc6a828 - fixed compilation of SDL backend 2020-04-30 11:28:35 +03:00
Cacodemon345
4b4ff8dd0e
Fix bouncing missiles not dealing damage when hitting top/bottom (#1068)
* Fix bouncing missiles not dealing damage when hitting top/bottom
2020-04-30 08:55:09 +02:00
arookas
6b70cad6e1 Add option to invert mouse x 2020-04-30 08:54:10 +02:00
Christoph Oelckers
3eecb6b3b6 - fixed creation of multipatch textures using other multipatch textures as their source. 2020-04-30 00:12:28 +02:00
Christoph Oelckers
d71ef66957 - fixes copied from Raze. 2020-04-29 23:58:50 +02:00
Christoph Oelckers
652712d970 - moved Vulkan and Softpoly backends to 'common'. 2020-04-29 22:17:35 +02:00
Christoph Oelckers
bc8335de3b - Vulkan backend dependency cleanup. 2020-04-29 18:52:08 +02:00
Christoph Oelckers
68630d6782 - sanitized dependencies of the softpoly render backend.
This included half the game state and lots of unneeded parts of the software renderer.
The two modules that are shared between softpoly and the classic software renderer have been moved to a neutral place.
2020-04-29 18:48:15 +02:00
Christoph Oelckers
8cce6207c7 - sanitized includes in a few files. 2020-04-29 18:15:56 +02:00
Christoph Oelckers
e3fdf2194e - moved a few leftover utility classes to 'common'. 2020-04-29 17:51:04 +02:00
Christoph Oelckers
808a7d28cf - moved benchmark fps output to the custom part of it because it depends on game data. 2020-04-29 17:44:43 +02:00
Christoph Oelckers
5d10d6c448 - directory structure cleanup.
The hwrenderer folder did not contain sufficient files anymore for such extensive subgrouping.
2020-04-29 17:36:58 +02:00
Christoph Oelckers
6cf91d3941 - moved the remaining core parts of the GL renderer to 'common'. 2020-04-29 17:19:17 +02:00
Christoph Oelckers
9be63a5093 Merge branch 'master' into texture_rework 2020-04-29 08:04:15 +02:00
Christoph Oelckers
c996600de7 - gl_renderer.cpp include cleanup 2020-04-29 08:01:29 +02:00
Christoph Oelckers
2adf1c6a6b - fixed ZScript compiler crash with dereferencing null pointers 2020-04-29 07:59:06 +02:00
Christoph Oelckers
64e301130b - moved low level sky rendering to 'common' 2020-04-29 00:21:30 +02:00
Christoph Oelckers
4b8fb7d48b - moved around some sky rendering code so that the game independent parts are grouped together. 2020-04-29 00:14:42 +02:00
Christoph Oelckers
b1dd1eff50 - moved video files to 'common'. 2020-04-28 23:08:27 +02:00
Christoph Oelckers
ddef3f7b98 - made video base code game independent 2020-04-28 22:54:53 +02:00
Christoph Oelckers
2196b4fb04 - moved the frame rate drawer out of DFrameBuffer.
Too much of this is not shareable and all it consists of are drawing operations on the 2D drawer.
2020-04-27 23:53:26 +02:00
Christoph Oelckers
5f3e4a5d0e - did a bit of cleanup on DFrameBuffer, most notably taking GetCaps out of it.
With the old softpoly renderer and OpenGL 2.x being gone there is no more need for such complex handling, it is now a single function in d_main.cpp.
2020-04-27 22:24:41 +02:00
Christoph Oelckers
3ee1aa76c3 - moved model code to 'common'. 2020-04-27 20:50:46 +02:00
PaulyB
66bac45615 Properly namespaced UDMF flag 2020-04-27 20:30:37 +02:00
PaulyB
8d1451689b Exposed MTF_NOCOUNT to UDMF 2020-04-27 20:30:37 +02:00
PaulyB
573b2958c6 Added MTF_NOCOUNT to spawn flags 2020-04-27 20:30:37 +02:00
Christoph Oelckers
d434ce32c8 - split voxels.cpp into a backend and a game dependent part. 2020-04-27 19:46:27 +02:00
Christoph Oelckers
b79230da9b - added missing include to macOS code. 2020-04-27 19:46:13 +02:00
Christoph Oelckers
d6dca40cb7 - separated models.cpp as well into engine and game parts. 2020-04-27 01:29:25 +02:00
Christoph Oelckers
46d263b5a8 - header separation of model code. 2020-04-27 01:16:17 +02:00
Christoph Oelckers
8ea0a0c5f8 - took the game dependent model render functions out of the FModelRenderer class.
This makes FModelRenderer game independent - the 3 functions in question may just be global functions instead.
2020-04-27 00:25:53 +02:00
Christoph Oelckers
6afa73bdcd - moved m_bbox to 'common' 2020-04-27 00:07:17 +02:00
Christoph Oelckers
67a50d084a - started cleanup of model code.
* refactored FBoundingBox so that the game dependent members are global functions now.
* changed some methods of the model renderer to take a render style parameter instead of a full actor.
2020-04-27 00:03:23 +02:00
Christoph Oelckers
b58e3172fc - need hw_viewpointuniforms.h as well in 'common', after decoupling it from game data. 2020-04-26 23:02:16 +02:00
Christoph Oelckers
cb1e8a177f - moved gl_shader.cpp to 'common'. 2020-04-26 22:24:27 +02:00
Christoph Oelckers
1346787e29 - moved 2 more modules to 'common'. 2020-04-26 21:38:34 +02:00
Christoph Oelckers
f8dcb09ff0 - moved postprocessing shaders to their own folder. 2020-04-26 21:22:57 +02:00
Christoph Oelckers
fde9172ea3 - moved shadowmap to 'common'. 2020-04-26 20:28:43 +02:00
Christoph Oelckers
c30165db0d - removed the remaining dependencies of the shadowmap code on game data.
Everything is handled with callbacks now.
2020-04-26 19:58:17 +02:00
Christoph Oelckers
ba0b42465d - changed shadowmap setup so that the AABB tree is owned and controlled by the map, not the renderer.
Needed to properly separate game logic from backend implementation, the shadowmap had both in the same object thanks to the old setup.
2020-04-26 18:54:43 +02:00
Christoph Oelckers
0a3e9a49f8 - changed the light parameter of ShadowTest to a position vector.
This was one of two places where game state leaked into the shadowmap implementation.
2020-04-26 14:53:26 +02:00
Christoph Oelckers
02832297ff - moved most of the OpenGL backend to 'common'.
A few things are yet to do, because they still need some changes.
2020-04-26 14:44:19 +02:00
Christoph Oelckers
763e9e0f35 - fixed texture scaling setup in a few places. 2020-04-26 13:48:51 +02:00
Christoph Oelckers
5611fe0f41 - cleaned up the dependencies in the model rendering code and separated it into game-independent and game-dependent parts. 2020-04-26 13:19:57 +02:00
Christoph Oelckers
69d724ae73 - moved lightbuffers and flatvertices to 'common'. 2020-04-26 12:41:13 +02:00
Christoph Oelckers
c5dca89e66 - clean separation of vertex creation from map data and the buffer object.
This was yet another object with too broad scope, the vertex creation has been offloaded into out-of-class functions now.
2020-04-26 12:12:07 +02:00
Christoph Oelckers
cf41a0b1fb - moved hw_cvars to 'common'. 2020-04-26 11:38:38 +02:00
Christoph Oelckers
61c94c25ed - more hw_cvars cleanup.
Copied several range checks from Raze, moved vid_gamma to hw_cvars.cpp and removed some old and no longer necessary gamma setup code.
2020-04-26 10:58:44 +02:00
Christoph Oelckers
1ad2f30e0d - moved sprite CVARs out of the global CVAR storage file.
They are local to hw_sprites.cpp now, as they aren't used anywhere else.
2020-04-26 10:47:57 +02:00
Christoph Oelckers
686aa9779d - moved VR code and IntRect to 'common' 2020-04-26 10:26:29 +02:00
Christoph Oelckers
4b56714199 - made hw_postprocess.cpp compatible.
The shadowmap is not universal, it depends on Doom's map format.
2020-04-26 00:03:08 +02:00
Christoph Oelckers
0c63f5c832 - moved FRenderState to 'common' and removed some game-dependent parts from it. 2020-04-25 23:29:38 +02:00
Christoph Oelckers
21f32834b2 - moved the postprocessing code to 'common', except for the game-dependent script exports. 2020-04-25 22:37:27 +02:00
Christoph Oelckers
b6cc31eb0d - moved around a few more files. 2020-04-25 22:17:41 +02:00
Christoph Oelckers
b9e3c9681b - moved a few files from 'rendering' to 'common'. 2020-04-25 21:52:21 +02:00
Christoph Oelckers
59360f2d77 - started cleanup of dependencies of the framebuffer class.
* made the portal state global, outside the framebuffer, because it is pure logic state without dependencies on the backend.
* took the setup functions out of FDynLightData - there is no need to have them as members and they age game dependent.
2020-04-25 21:08:07 +02:00
Christoph Oelckers
9872065fc6 - moved file to its proper place. 2020-04-25 18:38:17 +02:00
Christoph Oelckers
10bc37b37e - moved RenderView out of the framebuffer classes to complete the consolidation of the renderer's entry points. 2020-04-25 17:58:26 +02:00
Christoph Oelckers
9dceedd3b0 - cleanup 2020-04-25 14:15:15 +02:00
Christoph Oelckers
730d07fbf7 - reworked canvas texture updater to avoid passing game data to the render backends.
These are now handled one level above using a callback to perform the actual rendering.
2020-04-25 14:13:36 +02:00
Christoph Oelckers
44d39ef63e - consolidated the savegame picture code. 2020-04-25 13:18:57 +02:00
Christoph Oelckers
6177ed153d - consolidated the 3 RenderViewpoint variants and took the function out of the framebuffer class. 2020-04-25 10:51:45 +02:00
Christoph Oelckers
c203df5edb - consolidated the 3 virtually identical instances of DrawScene and moved the function to HWDrawInfo.
The only backend dependent call in there, ambient occlusion, has been made a virtual of DFrameBuffer.
2020-04-24 21:47:18 +02:00
Christoph Oelckers
90585c4931 - added a RenderState virtual to the FrameBuffer class. 2020-04-24 16:15:18 +02:00
Christoph Oelckers
70d30feb4c - moved the render interface functions out of FGLRenderer into OpenGLFrameBuffer.
These need some consolidation among the backends, and the additional indirection in the OpenGL backend made it harder than necessary.
2020-04-24 15:52:31 +02:00
Magnus Norddahl
ab16cbe298 Fix missing texture update 2020-04-24 13:08:22 +02:00
SanyaWaffles
994550fb00 Add the check to the other loop per Graf's request. 2020-04-24 10:01:36 +02:00
SanyaWaffles
6a604f35cb A much smarter DEFBINDS fix. Check if the lump is in the range of an IWAD, if so, override the settings... if not, don't override the settings.
https://forum.zdoom.org/viewtopic.php?f=2&t=68292
2020-04-24 10:01:36 +02:00
SanyaWaffles
1cf8c2f63e Fix keybinds part 1 of whatever 2020-04-24 08:10:09 +02:00
Christoph Oelckers
72533e2f8a - redirect ST_Sound to a callback because the sound code is game specific 2020-04-23 22:33:43 +02:00
Christoph Oelckers
f8e23500c7 - moved Windows platform code as well. 2020-04-23 22:26:30 +02:00
Christoph Oelckers
0b544f2956 - moved the Posix platform files to 'common' after making sure that Raze can compiled with them as-is.
No content changes.
2020-04-23 21:48:50 +02:00
Christoph Oelckers
612bf20809 - moved game state connections of the startup screen out of the backend code. 2020-04-23 00:02:34 +02:00
Christoph Oelckers
ea30707c41 - added missing include. 2020-04-22 23:48:20 +02:00
Christoph Oelckers
d19ac5b260 - separated the game specific Steam code from the pure backend. 2020-04-22 22:56:15 +02:00
Christoph Oelckers
8473be2a0c - some final cleanup. 2020-04-22 22:35:28 +02:00
Christoph Oelckers
3961f708fe - moved refreshfreq variable to a common place. 2020-04-22 22:32:24 +02:00
Christoph Oelckers
6934aebbe6 - fixed typo in HAVE_SOFTPOLY. 2020-04-22 21:57:59 +02:00
Christoph Oelckers
7f83b190cc - a few more fixes. 2020-04-22 21:46:22 +02:00
Christoph Oelckers
4da2351671 - fixed compile errors in POSIX platform code. 2020-04-22 20:42:13 +02:00
Christoph Oelckers
12e69adec3 - system backend cleanup.
This is mainly for running CI on Linux and macOS. Windws is already working.
2020-04-22 19:57:14 +02:00
Christoph Oelckers
a40578a0a4 - changed more license headers to BSD. 2020-04-21 22:11:59 +02:00
Christoph Oelckers
f17617706d - moved the scale overrider to v_draw.h. 2020-04-21 21:23:04 +02:00
Christoph Oelckers
ce95d7379f - swapped out the license in two files.
BSD is preferred over LGPL
2020-04-21 21:06:11 +02:00
Rachael Alexanderson
8c1db978b8 - fixed: hwrenderer materials were nullptr checked but the pointers were not always properly initialized 2020-04-21 09:41:33 -04:00
alexey.lysiuk
62d4bbbe65 - restored Wads.GetNumLumps() scripted function
https://forum.zdoom.org/viewtopic.php?t=68300
2020-04-21 10:07:24 +03:00
alexey.lysiuk
426f40dd52 - fixed crash when loading saved game that has no music 2020-04-20 15:08:33 +03:00
alexey.lysiuk
c37dcc6eb4 - added validation of game skill when changing a level 2020-04-20 13:32:02 +03:00
alexey.lysiuk
a9c0765fe1 - fixed potential crash on intermission cast screen 2020-04-20 12:49:18 +03: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
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
18760d6622 - deleted unused function. 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
f5d5888c22 - thinned out the Texturemanager interface. 2020-04-19 10:57:49 +02:00
Christoph Oelckers
437d4f8af0 - changed storage in texture manager to FGameTexture. 2020-04-19 10:57:48 +02:00
Christoph Oelckers
397b1520bc - deal with I_SetCursor 2020-04-19 10:57:48 +02:00
Christoph Oelckers
c605359b0e - animator transitioned. 2020-04-19 10:57:48 +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
5d8adb90c4 - made 'supportRemap0' an image property so that later the handling for this can be taken out of the actual texture class by just providing a replacement texture for the skies. 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
73b4fbe861 - FGameTexture conversion in am_map.cpp 2020-04-19 10:57:44 +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
dd5de4ce51 - removed test code that forced all textures being warped. 2020-04-19 10:57:43 +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
alexey.lysiuk
b5c88957f0 - fixed detection of standalone IWADs
https://forum.zdoom.org/viewtopic.php?t=68218
2020-04-17 12:29:46 +03:00
Rachael Alexanderson
c1421b70cf Revert "- fixed: player spawn code should now always use defaults for the currently selected player class, not current flags"
This reverts commit 8dda7c02c9.
2020-04-15 07:02:58 -04:00
Rachael Alexanderson
8dda7c02c9 - fixed: player spawn code should now always use defaults for the currently selected player class, not current flags 2020-04-15 06:58:27 -04:00
Christoph Oelckers
3e02121822 - fixed setup of content ID in CreateTexBuffer. 2020-04-13 14:55:16 +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
Christoph Oelckers
9a3b663e04 - fixed text size calculations in the status bar.
To avoid errors, all spacing calculations have been added to FFont::StringWidth which already performs proper escape filtering.
2020-04-13 12:11:14 +02:00
Christoph Oelckers
17df95d69e - fixed startup-time setup of serverinfo CVARs.
Looks I completely forgot this part when refactoring the interface - it must account for the callbacks not doing anything due to the network code not being operational yet.
2020-04-13 11:53:08 +02:00
Christoph Oelckers
6722b64ac0 - fixed: Setting 'noallies' on the level cleared the player's friendly flag.
The check was for mobj->player, which at this point wasn't set yet so the check failed.
2020-04-13 10:54:40 +02:00
Christoph Oelckers
4b5c74f856 - reactivated saving of sounds by name, not by index. 2020-04-13 10:32:46 +02:00
alexey.lysiuk
d29c6a55eb - fix autoseg registration by moving start/end files back to src directory
Link order was wrong when building via Xcode project because CMake generator sorts files by paths
This made most of classes missing from corresponding segments, and the game crashes right after launch
2020-04-13 10:14:07 +03:00
Major Cooke
a56177f178 Begin TICRATE conversion.
- Moved TICRATE from Thinker to Object in ZScript so status bars have access to it.
2020-04-12 22:43:33 +02:00
alexey.lysiuk
9c23c0ac59 - fixed compilation with GCC 5 2020-04-12 11:50:11 +03:00
alexey.lysiuk
5a56f209d3 - fixed conditions with SND_PlayerReserve flag
src/sound/s_advsound.cpp:953:9: warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
src/sound/s_advsound.cpp:1264:20: warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
src/sound/s_advsound.cpp:1426:6: warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
2020-04-12 11:49:47 +03:00
alexey.lysiuk
72c8df530f - fixed compilation of optimized GCC and Clang targets 2020-04-12 11:03:25 +03:00
alexey.lysiuk
f0ca7fb213 - fixed compilation of Linux targets 2020-04-12 11:03:01 +03:00
alexey.lysiuk
91914b728b - fixed compilation of Cocoa backend 2020-04-12 11:02:28 +03:00
alexey.lysiuk
2b1ef5f4f2 - common fixes for compilation with GCC and Clang 2020-04-12 11:02:05 +03:00
alexey.lysiuk
f5a98ed7fa - fixed CMake configuration
CMake Error at src/CMakeLists.txt:1188 (add_executable): Cannot find source file: gamedata/textures/bitmap.cpp
2020-04-12 10:59:09 +03:00
Christoph Oelckers
ab8d2ef62d - fixed serializer.
All includes of RapidJSON *must*(!!!) have the same #defines, otherwise incompatible code will be generated without any hint of a warning.
2020-04-11 22:53:26 +02:00
Christoph Oelckers
07e303f99b - fixed compilation. 2020-04-11 22:23:09 +02: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
2e5bc3e962 - moved compiler frontend to 'common'. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
466ed4e8f2 - separated the Doom specific parts of the ZScript parser from the core into a subclass. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
2838f5792c - moved all FString exports from vmthunks to stringformat.cpp. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
a28182fe35 - moved the script compiler's backend to 'common'. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
3454314bb1 - separated the Doom specific parts from the compiler backend into a separate file, these parts now get invoked via callback hooks. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
64dc9ac456 - moved around some bits of code. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
ef8b4c7d5e - put the state pointer serializer in a virtual function so that types.cpp can operate without any knowledge of Doom states. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
1ce11ff02a - dictionary can also go to 'common'. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
f6bd2e4f76 - moved serializer to 'common'. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
7b292cca57 - split the serializer in two to keep the Doom specific parts out of the main file. 2020-04-11 20:20:53 +02:00
Christoph Oelckers
f74efcf721 - split the TObjPtr serializers into a separate file to avoid polluting everything that needs to use the serializer.
To use these it is necessary to include dobject.h and all its dependencies, so this should not be done unless necessary.
2020-04-11 20:20:53 +02:00
Christoph Oelckers
f02c5c0a56 - took InitializeDefaults out of PClass and moved it to PClassActor.
Like so many other parts, this created a hard dependency of the low level code on very invasive game content.
2020-04-11 20:20:53 +02:00
Christoph Oelckers
74c5f83658 - moved most of the root marking out of the garbage collector, replacing it with callbacks.
Yet another place where low level code was tied too tightly to the game instead of providing a proper interface.
2020-04-11 20:20:52 +02:00
Christoph Oelckers
933c1f6403 - moved dumpactors CCMD out of dobject.cpp. 2020-04-11 20:20:52 +02:00
Christoph Oelckers
cf51508ce6 - moved around some pieces of code to make sharing with Raze easier. 2020-04-11 20:20:52 +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
940f1dc9a2 - move font code to 'common'.
- fix use of translation slot 0, used for internal translations.
2020-04-11 20:20:40 +02:00
Christoph Oelckers
32300f7d26 - use translation slot 0 for reserved content, like font translations. 2020-04-11 20:20:39 +02:00
Christoph Oelckers
2dcf63c57d - backport some fixes from Raze - mostly redundant includes. 2020-04-11 20:20:39 +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
5bde737be9 - split buildtexture.cpp in two.
The texture itself is 'common', but the setup is not.
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
ab77416ddc - set transparent color 0 in the proper place. 2020-04-11 20:20:36 +02:00
Christoph Oelckers
1ed170d955 - moved some data needed by the texture system into palettecontainer.cpp. 2020-04-11 20:20:36 +02:00
Christoph Oelckers
be24023722 - split animation management out of the texture manager into a separate class. 2020-04-11 20:20:36 +02:00