Commit graph

16273 commits

Author SHA1 Message Date
Alexander Kromm
703686beee export TMap<FString, FString> to ZScript 2019-12-29 13:37:38 +01:00
Christoph Oelckers
77469e0512 - fixed the colorization parser. 2019-12-29 12:11:16 +01:00
Christoph Oelckers
3530bc5945 - cleanup.
(The Raven license got removed from sc_man after checking that no Raven code is still present here, this file got a nearly complete overhaul over all those years.)
2019-12-29 11:30:37 +01:00
Christoph Oelckers
9b9fd35107 - hooked up the colorization feature.
It can now be used from UDMF and ZScript.
To avoid clutter it doesn't allow setting the values individually but requires definition of a data record in TEXTURES.

colorization
{
    DesaturationFactor <float>
    Invert
    AddColor <color>
    ModulateColor <color>
    BlendColor <color>, <mode> [, <alpha>]
}

Mode for BlendColor can be Alpha (normal translucent blending), as well as 3 special values taken from Build engine games: Screen, Overlay and HardLight.
2019-12-29 11:30:37 +01:00
Christoph Oelckers
f9d2dc51d0 - cleanup of new colorization code.
- profiling shows that running the code for applying the colorization and the gradients is extremely expensive, apparently this always causes a cache miss, so now the entire thing is enabled by a sidedef flag.
2019-12-29 11:30:36 +01:00
Christoph Oelckers
695ab81bca - let a sight check that gets lost return failure.
This way these cannnot unwantedly wake up monsters.
2019-12-28 16:33:20 +01:00
Rachael Alexanderson
15ebc84017 - fix a /0 crash in intermission text 2019-12-26 07:13:59 -05:00
alexey.lysiuk
388d800b40 - fixed compilation with GCC and Clang
src/d_main.cpp:3101:37: error: cannot pass non-trivial object of type 'FString' to variadic method; expected type from format string was 'char *' [-Wnon-pod-varargs]
2019-12-25 17:44:57 +02:00
Rachael Alexanderson
2e467bd239 - update window title with current level name 2019-12-25 09:52:57 -05:00
Rachael Alexanderson
9858ed70b0 - fixed sprite drawing with hqresized textures 2019-12-24 06:44:52 -05:00
alexey.lysiuk
4fc1b3231a - removed <CR> symbols to fix zdoom.rc being modified after checkout 2019-12-24 10:46:13 +02:00
Rachael Alexanderson
9ad628f6e5 - fixed: strife conversations do not need to unnecessarily trigger the switch to 640x400 2019-12-24 00:55:24 -05:00
Rachael Alexanderson
4ff8922006 - reinstate 320x200 with the following caveat: it only functions outside of menus and console, and only when the dialogues and logs use the default font, the game will temporarily switch to 640x400 in these situations 2019-12-23 23:14:08 -05:00
Rachael Alexanderson
510a121b62 - change IWAD startup dialog to allow selecting between OpenGL, Vulkan, and SoftPoly backends. (windows only) 2019-12-23 20:05:17 -05:00
Cacodemon345
0090925fac Implement renderstyle and transparent actor sprite rendering in automap (#997)
* Implement renderstyle and transparent actor sprite rendering in automap

* Add "am_advspriterender" CVAR and add invisible actor checks.

* Rename cvar to `am_thingrenderstyles`
2019-12-23 10:29:14 -05:00
alexey.lysiuk
e9a7dcd17b - precache switch textures from ANIMATED lump
For example, SW1SKULL and SW2SKULL switches are animated in TNT: Evilution
Their frames are defined in ANIMATED lump which is old BOOM binary format
Textures other than base were not cached because the corresponding switch definitions (in ANIMDEFS lump) have one frame only and BOOM style animations were not taken into account

https://forum.zdoom.org/viewtopic.php?t=66652
2019-12-23 13:11:06 +01:00
Rachael Alexanderson
f284567830 - change vid_scalemode 6 to work similarly to 0 and 1 when vid_cropaspect is turned on
- add vid_scaletolowest
2019-12-22 09:01:43 -05:00
Christoph Oelckers
738b9ceb08 - fixed incompletely changed shader.
It was still using a variable from the first revision that no longer exists.
2019-12-21 21:07:00 +01:00
Magnus Norddahl
1004ac1636 Automatically size the StreamUBO to 64 KB regardless of what is in it 2019-12-21 16:13:39 +01:00
alexey.lysiuk
81ea919d61 - fixed shader compilation errors with OpenGL backend
ERROR: 0:95: Use of undeclared identifier 'uTextureModulateColor'
ERROR: 0:104: Use of undeclared identifier 'uTextureAddColor'
ERROR: 0:107: Use of undeclared identifier 'uTextureModulateColor'
...
2019-12-21 15:42:04 +02:00
Christoph Oelckers
bb8db9422f - scaled down the texture colorization feature for easier usability.
It makes little sense exposing every minute detail of this through UDMF.
Setting it up that way is far too complicated. Using virtual textures that map to a real texture plus a colorization record should be far easier to use by mappers.
This also doesn't piggyback on the Doom64 color feature anymore and is completely separate, despite some redundancies.
This is still missing the texture definition part, though.
2019-12-20 22:25:10 +01:00
Christoph Oelckers
fd15af0b50 Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-12-20 18:56:38 +01:00
Christoph Oelckers
03537e90ff - linked new properties with the renderer.
Support for the softpoly renderer still missing.
2019-12-20 18:56:03 +01:00
Christoph Oelckers
3a249cb06f - added high level interface to the new properties, i.e. UDMF and ZScript. 2019-12-20 18:02:42 +01:00
alexey.lysiuk
ffe1a651a9 - upsample texture if width * height is less or equal to gl_texture_hqresize_maxinputsize squared
https://forum.zdoom.org/viewtopic.php?t=66652
2019-12-20 18:11:22 +02:00
Christoph Oelckers
3209d4ed23 - added a few more texture coloring options to the shader.
Aside from adding an additive component it can now also do:

- desaturation (not limited to the range of 0..1 so it can also be used for oversaturation by applying a negative number or negative saturation by going above 1.0.
- invert the texture
- apply a blend, including 3 special mode taken from EDuke32.

Currently only the implementation is done, it is not exposed to UDMF yet.
2019-12-20 16:05:00 +01:00
Christoph Oelckers
41a9496bef - the texture precaching message is supposed to be debug only 2019-12-20 14:38:22 +01:00
alexey.lysiuk
a0670f5c5b - added minimal time profiling of texture precaching 2019-12-20 11:06:00 +02:00
alexey.lysiuk
daedf9d158 - improved normalNx scaling performance by ~10%
Actual boost heavily depends on platform's memory architecture, made it a bit more cache friendly in general
2019-12-20 11:04:50 +02:00
Rachael Alexanderson
33483115cd - amend last commit: use VID_MIN_HEIGHT and VID_MIN_WIDTH macros in place of hardcoded values 2019-12-20 03:31:44 -05:00
Rachael Alexanderson
a53652f36e - implement vid_scalemode = 6 - sets absolute minimum scaling to fill entire screen - useful for speeding up software rendering 2019-12-20 03:05:44 -05:00
Christoph Oelckers
318da33e39 - sound engine update.
Notable changes:
* IsSourcePlayingSomething had undefined behavior when checking unattached and unpositioned sounds.
* loading Blood RAW sounds with different sample rates but the same backing lump may not use the same hardware sound buffer.
* when playing an unpositioned sound the attenuation is irrelevant and must be ignored. This resulted in a 3D sound being started which was mostly inaudible due to lack of valid origin.
2019-12-19 11:57:58 +01:00
alexey.lysiuk
59f09d4893 - move setting status bar defaults to proper location
BaseStatusBar.Init() method isn't suitable for this because it will override SBarInfoWrapper setup done in native code

https://forum.zdoom.org/viewtopic.php?t=66676
https://forum.zdoom.org/viewtopic.php?t=66339
2019-12-18 15:40:39 +02:00
Marisa Kirisame
9430e1556f Change IsSourcePlayingSomething to handle overlapping sounds. 2019-12-17 15:53:56 +01:00
Christoph Oelckers
0ba6816622 - made FSoundChan::EntChannel a full int and reordered the structure for better packing. 2019-12-17 11:43:13 +01:00
Christoph Oelckers
136ab4f48a - renamed IsActorPlayingSomething to IsActorPlayingSound and made it clearscope. 2019-12-17 09:58:50 +01:00
Christoph Oelckers
0a8effaf9e - fixed inverted listener check when using compatibility options. 2019-12-17 08:49:50 +01:00
Christoph Oelckers
3808e85c3e - the old bit masking for the channel needs to go, of course. 2019-12-17 00:28:32 +01:00
Christoph Oelckers
639e9d3cd4 - fixed VOC loader. Its 16 bit code did not work because it set the variable to -16 instead of 16.
- removed a few MAX calls with std::max.
2019-12-17 00:05:35 +01:00
Christoph Oelckers
e82565373f - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.
2019-12-16 23:52:39 +01:00
Christoph Oelckers
b09e9f10ed - sound engine update. 2019-12-16 21:45:34 +01:00
Magnus Norddahl
c5717d98db Implement the other light modes and fix dynamic lights being calculated twice(!) 2019-12-15 20:05:13 +01:00
Magnus Norddahl
b44c40a63d Implement EFF_FOGBOUNDARY 2019-12-15 17:33:49 +01:00
Magnus Norddahl
0fd964ec4f Fix compile error 2019-12-15 17:32:12 +01:00
Magnus Norddahl
a4ca7cfb8d Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-12-15 17:14:34 +01:00
Magnus Norddahl
5632c80ab2 Split softpoly into more files 2019-12-15 17:14:23 +01:00
Christoph Oelckers
71d7013255 - better validation checks for CSV-based string files. 2019-12-15 16:42:24 +01:00
David Carlier
e0fb9a45e2 Marking final class to suppress build warning with clang. 2019-12-12 23:26:32 +01:00
alexey.lysiuk
c3ede69d16 - fixed linked sound resolving
Hash indices and sound ids were used interchangeably but they are different entities

https://forum.zdoom.org/viewtopic.php?t=66618
2019-12-12 17:37:10 +01:00
alexey.lysiuk
1a19dbb52f - added 'damageonland' property to terrain definition
This property helps to replicate vanilla Hexen behavior of damaging player right after touching lava floor

https://forum.zdoom.org/viewtopic.php?t=66512
2019-12-12 15:14:30 +01:00
Christoph Oelckers
bf8305062a - do not allow summon CCMD to spawn abstract classes 2019-12-12 02:13:19 +01:00
Christoph Oelckers
165d9951aa - made the sound resolving a virtual method
This way the player sounds can be done in the proper place without infesting the core.
2019-12-12 01:31:41 +01:00
Fabian Greffrath
cc7807bb10 do not expect user input if stdin is redirected
If GZDoom is built on a POSIX system without the GTK frontend and not
run from a KDE session, an IWAD picker is presented on the terminal
and expects the user to select a game wad. However, if stdin is
redirected, this won't work, so start with the default IWAD instead.
2019-12-11 08:16:08 +02:00
alexey.lysiuk
194dd3e4cf - fixed debugger visualization for FSoundID 2019-12-10 16:38:37 +02:00
alexey.lysiuk
3cb571c1d5 - rewrote test for occupied sound channel without special types
https://forum.zdoom.org/viewtopic.php?t=66613
2019-12-10 13:36:05 +02:00
alexey.lysiuk
f050a23541 - restored stopping of channel by new sound
If source actor/sector/polyobject is playing something on the selected channel, stop it before playing a new sound

https://forum.zdoom.org/viewtopic.php?t=66613
2019-12-10 11:40:32 +02:00
Magnus Norddahl
ab4c792201 Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-12-10 00:44:53 +01:00
Magnus Norddahl
49af4a4b35 - fix line backside textures mirrored 2019-12-10 00:44:40 +01:00
Braden Obrzut
5a578ba1ae Fixed: GetClientWidth and GetClientHeight were still using SDL_Surface which on some systems would allocate an SDL_Renderer automatically. 2019-12-09 18:39:36 -05:00
Magnus Norddahl
bf68f1a851 Change SDL renderer creation error to a fatal one and also include why SDL failed the call 2019-12-09 23:33:22 +01:00
alexey.lysiuk
5e35077364 - remove redundant call to SoundRenderer::UpdateSounds()
At that point SoundEngine::StopAllChannels() did this already
2019-12-09 16:09:07 +02:00
alexey.lysiuk
5966391108 - moved sound engine cleanup calls to own function
https://forum.zdoom.org/viewtopic.php?t=66605#p1127457
2019-12-09 16:06:41 +02:00
alexey.lysiuk
430a6f3247 - fixed crash when exiting before sound engine initialization
https://forum.zdoom.org/viewtopic.php?t=66605
2019-12-09 15:43:01 +02:00
alexey.lysiuk
47305a740f - removed redundant call to S_StopAllChannels()
It's the first thing that S_ClearSoundData() does anyway
2019-12-09 15:40:40 +02:00
Braden Obrzut
4ae2e12cbf Convert SDL_Surface code to SDL_Renderer 2019-12-08 21:31:16 -05:00
Magnus Norddahl
61036dfdca Fix include error 2019-12-09 03:10:37 +01:00
Christoph Oelckers
298e29ffcc Merge branch 'soundsource_refactor' 2019-12-08 22:19:51 +01:00
Christoph Oelckers
6725cfcca5 - cleaned the includes of the sound backend code of unwanted content.
Also simplified the sound init decision making. With FMod gone there is no reason to be pedantic here. Even the check of snd_backend for the Null device could be omitted here, its only realistic use is '-nosound'.
2019-12-08 22:17:19 +01:00
Christoph Oelckers
83349bee1b - separated reverb data and reverb editor.
Again, isolating the part that is game independent from parts that are specific to GZDoom.
2019-12-08 21:45:45 +01:00
Christoph Oelckers
b9582cc98e - continued refactoring on sound code.
The game independent part of the code has been mostly isolated.
2019-12-08 21:22:53 +01:00
Magnus Norddahl
2052a6db53 Simplify code slightly 2019-12-08 18:27:26 +01:00
Magnus Norddahl
1e239ba4bb SSE for the blend functions 2019-12-08 18:20:50 +01:00
Magnus Norddahl
819c675c3d Fix typo 2019-12-08 16:40:14 +01:00
Magnus Norddahl
0b9e4e1f3d Oops, shifting using a SSE register apparently requires AVX2 2019-12-08 16:29:14 +01:00
Magnus Norddahl
6c65c25303 Create specific blend functions for the common legacy render styles 2019-12-08 16:06:42 +01:00
Magnus Norddahl
42720f87cc Select fragment shader once per triangle 2019-12-08 14:52:12 +01:00
Magnus Norddahl
f7ae955e6a Select blend function once per triangle 2019-12-08 14:42:20 +01:00
Magnus Norddahl
73c62c5404 Minor code simplification 2019-12-08 13:57:40 +01:00
Magnus Norddahl
aa44fa7c77 Create SSE2 version of BlendColor 2019-12-08 13:55:28 +01:00
Christoph Oelckers
fd181f469d - reduced the dependency of the sound system on game state.
Many of the simple wrappers have been moved to a separate file and the sound source handling has been abstracted.
This is only the first phase, the work is not complete yet.
Also changed the license of the sound code to BSD after verifying that this code bears no similarity to id's original sound code anymore, save for a few function names (which are due to be refactored out anyway.)
2019-12-08 13:28:52 +01:00
Christoph Oelckers
22e692e21c - started separating the sound engine code from game dependent parts.
First step: Split the header. Todo: Abstract listener and sound source specifics out of the sound engine.
2019-12-08 10:07:26 +01:00
Magnus Norddahl
844b203971 Split the various stages of the fragment shader into functions 2019-12-08 03:18:05 +01:00
Magnus Norddahl
c97d02ae51 Alpha test must be performed before vcolor is applied 2019-12-08 02:39:42 +01:00
Magnus Norddahl
fdb93309fe Fix render to texture 2019-12-08 01:39:17 +01:00
Magnus Norddahl
cef3fd53ab Clamp vColor 2019-12-08 00:41:24 +01:00
Magnus Norddahl
f365f6f433 Fix depth test staying active when it shouldn't 2019-12-08 00:41:02 +01:00
Magnus Norddahl
310ef73aa8 Rename PolyTriangleDrawer to PolyCommandBuffer and make its interface look like one 2019-12-07 23:15:12 +01:00
Magnus Norddahl
bb64b178e1 Fix sky transition 2019-12-07 21:17:11 +01:00
Magnus Norddahl
90f5eee6c6 Add dynamic lights 2019-12-07 15:09:58 +01:00
alexey.lysiuk
372733da8c - handle mirroring in MNTR sprite renaming
https://forum.zdoom.org/viewtopic.php?t=66583
2019-12-07 14:58:23 +02:00
alexey.lysiuk
e4587138bb - added support for softpoly backend on macOS
Grabbed most of code from old Cocoa backend with separate code path for software rendering
2019-12-07 13:25:12 +02:00
Magnus Norddahl
75248cffd0 - fix decal color bug 2019-12-06 23:26:38 +01:00
Madame Rachelle
f3897e26f0 - allow to change acceleration type in SDL backend for softpoly 2019-12-06 14:38:25 -05:00
Magnus Norddahl
fd4fc45040 Move blend operator and alpha test flag out of the inner blend loop 2019-12-06 20:35:19 +01:00
Magnus Norddahl
aede0633bc - fix bug where SSE wasn't actually really used at all
- improve precision of the SSE version of WriteW
- use SSE to calculate the texture wrapping
2019-12-06 18:51:41 +01:00
Rachael Alexanderson
edd7fe1e16 - migrate vid_enablevulkan to vid_preferbackend in config file 2019-12-06 12:05:52 -05:00
Rachael Alexanderson
eaab122076 Merge remote-tracking branch 'origin/polybackend' 2019-12-06 09:30:55 -05:00
alexey.lysiuk
ffe8aaa091 - updated xBRZ scaler to 1.8
Removed all C++17 features: std::clamp(), attribute [[likely]], terse static asserts, ...

https://sourceforge.net/projects/xbrz/files/xBRZ/xBRZ_1.8.zip/download
2019-12-06 13:18:43 +02:00
Magnus Norddahl
8075510289 Merge remote-tracking branch 'origin/master' into polybackend 2019-12-06 00:20:25 +01:00
Madame Rachelle
c646478aa0 - allow SDL to use OpenGL acceleration for polybackend 2019-12-05 18:27:46 -05:00
Magnus Norddahl
a7a899ca14 Fix null pointer crash 2019-12-06 00:19:51 +01:00
Magnus Norddahl
dd87619cc4 Merge remote-tracking branch 'origin/master' into polybackend 2019-12-05 21:19:20 +01:00
Magnus Norddahl
9b7db26a37 Fix the compile error on Windows 2019-12-05 21:18:11 +01:00
Magnus Norddahl
ab4f3ee0b1 Fix black border clears 2019-12-05 22:04:28 +01:00
Magnus Norddahl
e4bd2483e5 Implement SDL present functions 2019-12-05 21:26:01 +01:00
Chronos Ouroboros
b9367caa6f Fixed the JIT's OP_VTBL check not checking if it's already at the start of the code. 2019-12-04 17:37:20 -03:00
Magnus Norddahl
0f6aec5e99 Some vid_preferbackend compile fixes 2019-12-02 20:12:27 +01:00
Magnus Norddahl
a9e6592feb Switch to the D3DSWAPEFFECT_FLIPEX swap model 2019-12-02 20:05:13 +01:00
Magnus Norddahl
43139276d1 SSE2 version of wrap 2019-12-02 18:44:15 +01:00
Rachael Alexanderson
3269b61ffc - change menu option for 'vid_preferbackend' 2019-12-02 09:43:06 -05:00
Magnus Norddahl
f501e1bb49 Fix texture binding bug 2019-12-02 01:48:59 +01:00
Magnus Norddahl
865b7a1a2c Implement func_paletted shader 2019-12-02 01:28:35 +01:00
Magnus Norddahl
44c2223c2f Draw 8-bit software renderer with polybackend (well, sort of!) 2019-12-02 01:07:28 +01:00
Magnus Norddahl
4a2b763aaa Support 8-bit textures 2019-12-02 00:35:15 +01:00
Magnus Norddahl
74c6b9fe6d Remove PolyDrawArgs 2019-12-02 00:21:42 +01:00
Magnus Norddahl
d2f4570337 Remove old polyargs 2019-12-02 00:01:04 +01:00
Magnus Norddahl
4a4b79194d Remove/disable old swrenderer model rendering code 2019-12-01 23:37:43 +01:00
Magnus Norddahl
3059b8f5c8 Remove old softpoly drawer implementation 2019-12-01 23:23:25 +01:00
Rachael Alexanderson
f1e136487d Merge branch 'polybackend' of https://github.com/coelckers/gzdoom into polybackend 2019-12-01 16:06:54 -05:00
Rachael Alexanderson
bdc7329d32 - replace vid_enablevulkan with vid_preferbackend - disabled startup window selector for this (will replace when the startup screen changes are done) 2019-12-01 16:06:36 -05:00
Magnus Norddahl
8ca05fe30a Implement crossfade 2019-12-01 22:05:10 +01:00
Magnus Norddahl
1b9479ea45 Implement burn.fp and second texture binding 2019-12-01 21:44:44 +01:00
Magnus Norddahl
2c751d214f Hook up some SSE2 2019-12-01 20:23:41 +01:00
Magnus Norddahl
4a25c9f69b Merge remote-tracking branch 'origin/master' into polybackend 2019-12-01 20:09:19 +01:00
alexey.lysiuk
51c90f54a4 - fixed wrong display of Hexen AC for SBARINFO
Do not use BasicArmor's save percentage when no armor present
Applied change from 34c2c65bb6 to old status bar definitions
2019-12-01 10:30:06 +02:00
Christoph Oelckers
d420b0ab05 - fixed: AActor::Revive did not restore flags8. 2019-11-30 22:03:19 +01:00
ZZYZX
116d81cb9f Normalize mouse events received by the modder through EventHandlers 2019-11-30 11:06:30 +02:00
alexey.lysiuk
33fb2a7856 - pass master volume to ZMusic library on startup
MIDI devices that don't output music through the sound system (like WinMM) ignored master volume setting

https://forum.zdoom.org/viewtopic.php?t=66510
2019-11-29 11:13:03 +02:00
alexey.lysiuk
628b2ef97f - removed unused code from serializer 2019-11-27 12:30:09 +02:00
alexey.lysiuk
fdd17403e5 - added ability to force internal alternative HUD
Set hud_althud_forceinternal CVAR to disable unwanted HUD customizations
2019-11-26 15:45:18 +02:00
alexey.lysiuk
a7f2df4fef - added ability to set custom alternative HUD
Use GAMEINFO key 'althudclass' to specify own class derived from AltHud

https://forum.zdoom.org/viewtopic.php?t=66422
2019-11-26 15:45:18 +02:00
Rachael Alexanderson
a3741abbf3
- add cvar 'cl_disableinvertedcolormap' - changes the invulnerability… (#972)
* - add cvar 'cl_disableinvertedcolormap' - changes the invulnerability sphere to instead be a regular desaturated colormap that transitions from deep blue to pale yellow

* - add menu option for cl_disableinvertedcolormap

* - added customization for invulnerability colormap

* - fixed custom colormap being calculated incorrectly

* - disable custom invulnerability map before the main game loop
2019-11-26 07:46:18 -05:00
alexey.lysiuk
20d3752fdd - exported several Wads.GetLump...() methods to ZScript
* GetLumpName() returns 8-characters lump name
* GetLumpFullName() returns full name with path and extension
* GetLumpNamespace() returns lump's namespace
* GetNumLumps() returns total number of lumps

https://forum.zdoom.org/viewtopic.php?t=66285
2019-11-25 17:37:56 +02:00
Player701
db1359f98e - Implemented scale parameter for BaseStatusBar::DrawString 2019-11-24 10:45:07 +01:00
Christoph Oelckers
354d5eb66e - Renamed AlignedAlloc.
according to Travis error logs these AlignedAlloc lines were causing compile errors, presumably AlignedAlloc was defined to aligned_alloc, so better use different names.
2019-11-24 10:42:18 +01:00
Magnus Norddahl
bff22bbd81 - don't map the frame buffer memory every frame when doing software rendering 2019-11-23 12:09:05 +01:00
Magnus Norddahl
8abbd63427 Only allocate WallColumnDrawerArgs once per thread 2019-11-23 11:57:42 +01:00
alexey.lysiuk
c75233a842 - avoid name clashing with C11 function
src/rendering/swrenderer/r_memory.cpp:78:14: error: ‘void* aligned_alloc(size_t, size_t)’ was declared ‘extern’ and later ‘static’ [-fpermissive]
2019-11-23 11:17:34 +02:00
Magnus Norddahl
b7745aaa8b Make absolutely sure allocated frame memory is always 16-byte aligned 2019-11-23 02:26:52 +01:00
Magnus Norddahl
bc37d8d601 Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-11-23 02:25:58 +01:00
Magnus Norddahl
62b2039a75 Queue a full wall as one draw command 2019-11-23 02:25:42 +01:00
alexey.lysiuk
cf8c05c9c4 - fixed missing checks for function calls from DECORATE
State functions could call ZScript code with incompatible self pointer, e.g. weapon's function could be called with self pointed to player pawn
DECORATE scripts that contain such errors are no longer accepted

https://forum.zdoom.org/viewtopic.php?t=66429
2019-11-21 16:58:28 +02:00
Magnus Norddahl
310459b490 Remove dead code 2019-11-20 22:11:40 +01:00
Magnus Norddahl
2ac6be3510 - fix scale bug and remove some member variables 2019-11-20 22:06:15 +01:00
Magnus Norddahl
236b476933 - change ProjectedWallTexcoords to use gradients for its texture coordinate calculations
- change SpriteDrawerArgs to draw a full sprite instead of one column at a time
- add r_noaccel cvar to allow forced software rendering of the psprites (useful for debugging and also one person on the forum actually requested this feature)
- remove FWallTmapVals and calculate texture coordinates directly from FWallCoords
- move portal clipping out of the inner sprite drawing loop
2019-11-20 04:50:24 +01:00
Magnus Norddahl
1085287af1 Reverse the order of the functions in r_walldraw 2019-11-15 22:47:40 +01:00
Magnus Norddahl
16c2d9366d Remove ProcessWallNP2 as NPOT textures are already handled elsewhere 2019-11-15 22:28:59 +01:00
Magnus Norddahl
9f9884d03c - move decal light calculations into RenderDecal::RenderDecals 2019-11-15 06:06:11 +01:00
Magnus Norddahl
a478cf9a96 - support dynamic lights on translucent and 3d floor walls 2019-11-15 05:53:55 +01:00
Magnus Norddahl
7168466c28 Calculate all light in RenderWallPart 2019-11-15 05:45:52 +01:00
Magnus Norddahl
82855ab1fd Calculate light closer to where it is used 2019-11-15 05:21:10 +01:00
Magnus Norddahl
3428b50924 Fix type typo 2019-11-15 03:46:21 +01:00
Magnus Norddahl
608895dae7 Fix fog boundary drawing for 3d floors and add a few helper functions to RenderDrawSegment 2019-11-15 03:41:10 +01:00
Rachael Alexanderson
4d66e9a8bb - remove SetLineSideRefs - this actually cannot be exported right now, due to the fact that both sides and lines have backreferences to themselves and their ancestry, and that linedefs have forward references to the sectors on their respective sides.
- made FlipLineSideRefs native, due to the SetLineSideRefs removal
- fixed a bug with FlipLineSideRefs that rendered upper and lower textures incorrectly due to incorrect sector references
- FlipLineSideRefs now should only work on single-sided lines
2019-11-14 14:32:20 -05:00
Rachael Alexanderson
b0751db552 - add native SetLineSideRefs(line, side1idx, side2idx)
- add scripted FlipLineSideRefs(line)
2019-11-14 09:20:16 -05:00
Magnus Norddahl
642cd2b160 Fix 3d floor rendering bug 2019-11-14 02:28:53 +01:00
PaulyB
a74be69371 Added 'NoKeyboardCheats' option to IWADINFO
This is useful for IWADs that do not want to use the hardcoded engine cheats. This can still be overriden with the 'allcheats' CVAR
2019-11-13 17:34:42 +01:00
Rachael Alexanderson
26dd900b3e - cl_blockcheats added to 'nocheat' check 2019-11-13 04:45:57 -05:00
Magnus Norddahl
88848f1d59 Add some helpers on DrawSegmentClipInfo 2019-11-13 04:17:46 +01:00
Christoph Oelckers
5cc75af295 - changed secret message handling so that the debug output of the sector number is only printed to the console but not the centered message. 2019-11-12 23:39:05 +01:00
Magnus Norddahl
72bba914ce Move drawseg clipping variables to DrawSegmentClipInfo 2019-11-12 19:46:45 +01:00
Magnus Norddahl
879fae7cd0 Also calculate wallsprite and decal texture coordinates in ProjectedWallTexcoords 2019-11-12 18:44:17 +01:00
Rachael Alexanderson
37fdf14422 - add calc indices before running level postprocessor 2019-11-12 09:46:14 -05:00
Rachael Alexanderson
21a74dfb13 - new zscript function 'SetLineVertexes(line, v1, v2)'
- scriptify 'FlipLine' completely using new function, remove native version
2019-11-12 08:08:35 -05:00
3saster
a4b6a8f093 Added 'nocheats' CVAR (#969)
This CVAR disables all classic cheats (i.e. keyboard cheats). This prevents keypresses from being eaten due to attempting to read cheats
2019-11-12 07:29:16 -05:00
Magnus Norddahl
fa3e5e34a8 Move all ProjectedWallTexcoords calculations to that class 2019-11-12 02:22:30 +01:00
Magnus Norddahl
e388abbb77 Clarify that 'fake wall' means a 3d floor wall 2019-11-11 23:41:14 +01:00
Magnus Norddahl
fec280a5fc Remove the sprite drawer from wall drawing 2019-11-11 05:37:02 +01:00
Magnus Norddahl
3944ee5b67 - Calculate drawseg texture coordinates in r_line 2019-11-11 04:10:08 +01:00
Magnus Norddahl
6410bc81cc - merge top/mid/bottom texture coordinate calculations 2019-11-11 03:19:00 +01:00
Christoph Oelckers
81753e5ffb - moved the level postprocessor to its own source file. 2019-11-10 21:28:01 +01:00
Rachael Alexanderson
57eb1a82d6 - oops - add rangecheck to 'FlipLine' 2019-11-10 10:01:17 -05:00
Rachael Alexanderson
1098a13fdb - add 'FlipLine' to 'LevelPostProcessor' 2019-11-10 09:04:30 -05:00
alexey.lysiuk
82c248854d - extended level post-processing with special string arguments 2019-11-10 11:37:02 +02:00
alexey.lysiuk
00ff4083d2 - extended level post-processing with thing IDs 2019-11-10 11:37:02 +02:00
alexey.lysiuk
098b1c5973 - level post-processor cleanup 2019-11-10 11:37:02 +02:00
alexey.lysiuk
c5237ce58f - level post-processor can now add new things 2019-11-10 11:37:02 +02:00
alexey.lysiuk
1e29444152 - extended level post-processing with specials and arguments 2019-11-10 11:37:02 +02:00
alexey.lysiuk
79880b2bd9 - extended level post-processing with editor numbers and angles 2019-11-10 11:37:02 +02:00
alexey.lysiuk
a2a50f34d5 - added things related getters to level post-processing
New functions cover existing interface only
Unsigned integers are now used instead signed for indices and bitfields
2019-11-10 11:37:02 +02:00
alexey.lysiuk
59bdebb20a - added generic level post-processing script class
It was extracted from LevelCompatibility class, and native code was moved accordingly
2019-11-10 11:37:02 +02:00
alexey.lysiuk
6ad965abb5 - improved handling of return value mismatches
Prohibit returning more values than declared in function
The exception is a void function returning one value, but only for compatibility with old scripts

https://forum.zdoom.org/viewtopic.php?t=66341
2019-11-10 11:14:08 +02:00
Player701
8c05816378 - Fixed erroneous "Return type mismatch error" when returning value of derived type 2019-11-10 09:58:25 +02:00
Magnus Norddahl
48d0ebab58 Convert some variables to be function local 2019-11-09 05:29:14 +01:00
Magnus Norddahl
b40ffb1d64 Move more texture coordinate variables into ProjectedWallTexcoords 2019-11-09 04:45:39 +01:00
Magnus Norddahl
5c21a6c973 Remove the ProjectedWallTexcoords arrays 2019-11-09 03:16:48 +01:00
Magnus Norddahl
370c185415 Mark FWallTmapVals members as private and make FWallTmapVals part of wallsetup 2019-11-09 02:41:37 +01:00
Magnus Norddahl
7fae5ea905 Remove unused code 2019-11-09 00:07:33 +01:00
Magnus Norddahl
62ec165d28 Further isolate texture coordinate calculations to r_wallsetup 2019-11-08 03:46:07 +01:00
Chronos Ouroboros
c64fafc490
Merge pull request #701 from Doom2fan/DirectNativeShape2D
Added direct-native versions of the Shape2D API.
2019-11-07 18:49:53 -03:00
Rachael Alexanderson
20e61ead49 - add Vulkan to the startup box in Windows 2019-11-05 08:57:50 -05:00
alexey.lysiuk
fd5e8d6e7b - fixed source lump assignment for multipatch textures
It was impossible to detect a WAD that contains a multipatch texture

https://forum.zdoom.org/viewtopic.php?t=66299
2019-11-05 14:47:13 +02:00
Chronos Ouroboros
583d8faf5c Fixed mixins. 2019-11-04 18:31:31 -03:00
Christoph Oelckers
2ae3f6d326 - fixed bad variable name for lump filter 2019-11-04 00:08:06 +01:00
alexey.lysiuk
be8009d9ca - fixed: IfGame else branch was ignored in MENUDEF
https://forum.zdoom.org/viewtopic.php?t=66282
2019-11-03 16:56:24 +02:00
Christoph Oelckers
077d4e08bb - fixed: lump filters without any dot in the name did not work. 2019-11-03 15:53:41 +01:00
Rachael Alexanderson
e55a935220 - implement ccmd 'togglehud' for taking screenshots
- it disables most 2D drawing in order to favor a fullscreen output view for screenshot taking
  - enabling the console or any menu should cancel it
  - it does use several CVARs but their state should be restored when this mode is canceled
2019-11-03 03:51:22 -05:00
drfrag
bd90a768f5 - Fixed stretching for 256 and 240 pixels tall skies in software. 2019-11-02 22:57:31 +01:00
Chronos Ouroboros
af17864968 Fixed a bug in the flagdef processing code. 2019-11-01 18:38:19 -03:00
Chronos Ouroboros
e63b6d494a Added mixins for classes. 2019-11-01 18:34:52 -03:00