Commit graph

9563 commits

Author SHA1 Message Date
Magnus Norddahl
bee363d79a Add stencil testing 2016-12-12 10:44:34 +01:00
Magnus Norddahl
b0f3686bc6 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-12-12 01:34:00 +01:00
Magnus Norddahl
b2bed88092 SSE speed test 2016-12-12 01:33:51 +01:00
Rachael Alexanderson
1a111f48bc Merge https://github.com/rheit/zdoom 2016-12-11 16:46:08 -05:00
Christoph Oelckers
77d9978b27 - fixed: Non-Actors cannot act as activators for action specials and must pass null when acticating one. 2016-12-11 21:39:35 +01:00
Christoph Oelckers
e61ae9a1f9 - pass a proper self pointer to BuiltinCallActionSpecial instead of making bogus assumptions about a function's parameters. 2016-12-11 21:32:19 +01:00
Magnus Norddahl
2af95965ef Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-12-11 17:41:07 +01:00
Magnus Norddahl
21341b92a5 Experiment with splitting triangle block coverage from block drawing 2016-12-11 17:39:44 +01:00
Christoph Oelckers
b43609c701 - fixed: The weapon sprite fudge offset should not be added when just interpolating the position and calculating the delta. 2016-12-11 14:45:20 +01:00
Christoph Oelckers
40355f6298 - allow A_M_Refire to be called without state label because this seems to have been used in existing DECORATE mods. This way of calling it will revert to the old behavior of jumping one state forward instead of to a state label. 2016-12-11 13:07:25 +01:00
Christoph Oelckers
aa758159c9 - renamed Actor.NoiseAlert to Actor.SoundAlert to deconflict with the same-named action special. 2016-12-11 12:10:05 +01:00
Christoph Oelckers
d2d960672c Revert "Fixed: A_CustomMissile's CMF_AIMDIRECTION's pitch calculations were also backwards."
This reverts commit b17bd65279.

This would break too many existing mods.
2016-12-11 11:39:46 +01:00
Rachael Alexanderson
4eef1d99ee Merge https://github.com/rheit/zdoom 2016-12-10 15:46:35 -05:00
Christoph Oelckers
952e47cfe4 - renamed internal MELEERANGE constant to deconflict with Actor's MeleeRange member. 2016-12-10 16:36:19 +01:00
Rachael Alexanderson
c48b528824 Merge https://github.com/rheit/zdoom 2016-12-10 08:04:51 -05:00
Edoardo Prezioso
d92a814e8c - Fixed wrong argument format in voxeldef parser code.
It got revealed by the GCCPRINTF format addition to FScanner::ScriptMessage.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
8036719f45 - Add GCCPRINTF to ZScript compiler code.
This will help spotting errors in code using ZCCCompiler::{Warn,Error}.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
810c632beb - Added missing GCCPRINTF to FileWriter::Printf.
Luckily, this has shown no problems.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
45e5e5c6ee - Add missing GCCPRINTF to FraggleScript script_error function.
This will help spotting errors inside FraggleScript.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
d4a674740e - Add missing GCCPRINTF to timidity cmsg function.
Luckily, this has shown no problems.
2016-12-10 14:02:12 +01:00
Edoardo Prezioso
b78b8662dc - Add missing GCCPRINTF in scanner code.
This will help spotting erroneous usage of FScanner::{ScriptError,ScriptMessage} and FScriptPosition::Message.
2016-12-10 14:02:12 +01:00
Christoph Oelckers
7d4a5898ac - removed most inline assembly. Integer multiplication gets handled fine by all current compilers and fixed point division is too infrequently used to justify this mess.
That only leaves the Scale function which is still being used in a few places and which would create considerably worse code without assembly on 32 bit platforms. This is also far too primitive (2 or 3 assembly instructions) to claim any copyright on it, so I think m_fixed.h can now be considered free of Build-related issues. The deficated inline headers have been removed because that sole remaining function could be easily moved into m_fixed.h.
2016-12-10 13:58:18 +01:00
Christoph Oelckers
3563718049 - removed all fixed point inlines that aren't used anywhere. Note that most of the rest are only being used in one single function: R_DrawVoxel. 2016-12-10 12:12:29 +01:00
Christoph Oelckers
6c86a33f5d - fixed compilation of cursor scaling code. This reported 'std::vector' not defined, so now it just uses TArray, like the rest of ZDoom. 2016-12-10 12:05:46 +01:00
WilliamFeely
0e448a6450 Change DPI Awareness to per-monitor on Windows8.1+ 2016-12-10 10:30:23 +01:00
Magnus Norddahl
54759782b3 Fix cursor size 2016-12-10 10:29:43 +01:00
Magnus Norddahl
c4ca70101d Fix console window geometry size 2016-12-10 10:29:43 +01:00
Christoph Oelckers
a7c80ae858 - fixed: The message for invalid class extensions did not pass the class name to the error function. 2016-12-10 10:22:13 +01:00
Magnus Norddahl
7376414607 Added some missing static statements 2016-12-10 00:17:18 +01:00
Magnus Norddahl
012565228d Merge remote-tracking branch 'zdoom/master' into qzdoom
# Conflicts:
#	src/r_plane.cpp
#	src/r_segs.cpp
2016-12-10 00:08:56 +01:00
Christoph Oelckers
902a4b839c - fixed: Type determination of multi-dimensional arrays failed, apparently because ZCCCompiler::Simplify is too broken to leave the node's ring list intact.
Instead of trying to fix Simplify, which seems to be a lost cause, the ring list now gets unraveled into an array which is immune from this type of problem.
2016-12-09 23:01:12 +01:00
Major Cooke
b17bd65279 Fixed: A_CustomMissile's CMF_AIMDIRECTION's pitch calculations were also backwards. 2016-12-09 16:27:29 +01:00
Rachael Alexanderson
d1379e26f5 Revert "- moved wallscan code into its own file so that it can get an appropriate copyright notice and does not inflate an already large source file even more."
This reverts commit 15cf9d36a9.
2016-12-09 09:14:01 -05:00
Christoph Oelckers
c7cddcac0b - removed Build notice from r_segs.cpp because there is no Build code left in this file. 2016-12-09 15:12:16 +01:00
Magnus Norddahl
6806b498f8 Fix null pointer crash in rt column drawers if rt_init is not called before the first draw 2016-12-09 15:07:49 +01:00
Christoph Oelckers
5da9f71589 - renamed the WallMost functions because again: No more Build code -> no Build names! 2016-12-09 14:46:05 +01:00
Christoph Oelckers
56f37185b2 - let's be a bit clearer and not name non-Build stuff with Build terms.
(cherry picked from commit f3389ff5b7)
2016-12-09 08:42:35 -05:00
Rachael Alexanderson
2b5f9eebba - Correctly redid commit 34d551fe1f. 2016-12-09 08:41:59 -05:00
Christoph Oelckers
15cf9d36a9 - moved wallscan code into its own file so that it can get an appropriate copyright notice and does not inflate an already large source file even more.
(cherry picked from commit 34d551fe1f)

# Conflicts:
#	src/r_segs.cpp
2016-12-09 08:39:58 -05:00
Christoph Oelckers
356e55f0a2 - made the general entry point to the wall drawer a single function instead of requiring the caller to check for NPOT textures.
- renamed all functions in r_walldraw.cpp to give them names more in line with Doom's naming conventions. Since this is not Build code anymore it also shouldn't use Build names to avoid giving a false impression.
2016-12-09 14:25:51 +01:00
Christoph Oelckers
1ea559dea4 - removed several unused fixed point math functions from the inlines headers.
(cherry picked from commit 86909ecdb2)
2016-12-09 08:13:33 -05:00
Christoph Oelckers
cfd6bcec5e - more Build cleanup: Moved clearbufshort out of Build derived headers, removed the inline version for GCC 32 bit which was actually Build derived and renamed the C-version of this function, which does not originate from Build to 'fillshort'.
- cleaned out a lot the SafeDivScale stuff in m_fixed.h. The only SafeDivScale variant still in use was #16 for FixedDiv, so all the SafeDivScale stuff has been removed and the 16 variant renamed to FixedDiv because that's the only form in which it is still being used. (2x in R_DrawVoxel and 1x in ACS's FixedDiv PCode.)
- removed Build notice from m_fixed.h because aside from the inlines includes there is nothing here from Build anymore.

(cherry picked from commit eab06ef086)
2016-12-09 08:13:22 -05:00
Christoph Oelckers
c61f30a627 - got rid of clearbuf.
This was used in only 4 places, 3 of which could easily be replaced with a memset, and the fourth, in the Strife status bar, suffering from a pointless performance optimization, rendering the code unreadable - the code spent here per frame is utterly insignificant so clarity should win here.

(cherry picked from commit 12a99c3f3c)
2016-12-09 08:13:08 -05:00
Christoph Oelckers
695b08ed4b - removed some unused functions from m_fixed.h.
- removed the Build license note from r_bsp.cpp.

This note was for code in R_AddLine which had been both refactored into several subfunctions and completely replaced with a floating point version. What is left is just some basic common math without any traits that resemble anything in Build.

(cherry picked from commit 8748b9ef6d)
2016-12-09 08:11:57 -05:00
Christoph Oelckers
5d210c64e0 - got rid of ksgn.
Because every bit of Build code that can be removed is a good thing.
This was only used in two places, one of which could be done better, the other one in the voxel drawer setup now uses a local C-inline version.

(cherry picked from commit 5536184bee)
2016-12-09 08:11:45 -05:00
Christoph Oelckers
86909ecdb2 - removed several unused fixed point math functions from the inlines headers. 2016-12-09 13:27:30 +01:00
Christoph Oelckers
eab06ef086 - more Build cleanup: Moved clearbufshort out of Build derived headers, removed the inline version for GCC 32 bit which was actually Build derived and renamed the C-version of this function, which does not originate from Build to 'fillshort'.
- cleaned out a lot the SafeDivScale stuff in m_fixed.h. The only SafeDivScale variant still in use was #16 for FixedDiv, so all the SafeDivScale stuff has been removed and the 16 variant renamed to FixedDiv because that's the only form in which it is still being used. (2x in R_DrawVoxel and 1x in ACS's FixedDiv PCode.)
- removed Build notice from m_fixed.h because aside from the inlines includes there is nothing here from Build anymore.
2016-12-09 13:04:53 +01:00
Christoph Oelckers
12a99c3f3c - got rid of clearbuf.
This was used in only 4 places, 3 of which could easily be replaced with a memset, and the fourth, in the Strife status bar, suffering from a pointless performance optimization, rendering the code unreadable - the code spent here per frame is utterly insignificant so clarity should win here.
2016-12-09 12:48:10 +01:00
Christoph Oelckers
f3389ff5b7 - let's be a bit clearer and not name non-Build stuff with Build terms. 2016-12-09 12:21:27 +01:00
Christoph Oelckers
34d551fe1f - moved wallscan code into its own file so that it can get an appropriate copyright notice and does not inflate an already large source file even more. 2016-12-09 11:49:18 +01:00
Magnus Norddahl
b7d5110a49 Merge remote-tracking branch 'origin/rt_drawer_crashfix' into qzdoom 2016-12-09 10:36:19 +01:00
Christoph Oelckers
8748b9ef6d - removed some unused functions from m_fixed.h.
- removed the Build license note from r_bsp.cpp.

This note was for code in R_AddLine which had been both refactored into several subfunctions and completely replaced with a floating point version. What is left is just some basic common math without any traits that resemble anything in Build.
2016-12-09 10:31:17 +01:00
Magnus Norddahl
6609403fbe Fix null pointer crash in rt column drawers if rt_init is not called before the first draw 2016-12-09 10:27:18 +01:00
Rachael Alexanderson
c53030d550 Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-09 03:00:05 -05:00
Rachael Alexanderson
c109ebf7cb Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-12-09 03:00:02 -05:00
Magnus Norddahl
f1df400cc7 Add some portal segment culling and disable sector portals for now 2016-12-09 03:17:35 +01:00
Christoph Oelckers
5536184bee - got rid of ksgn.
Because every bit of Build code that can be removed is a good thing.
This was only used in two places, one of which could be done better, the other one in the voxel drawer setup now uses a local C-inline version.
2016-12-09 00:43:54 +01:00
Edoardo Prezioso
67b2e2f52e - Remove valgrind code, now that the assembly stuff is gone. 2016-12-08 22:44:23 +01:00
Christoph Oelckers
8a6d3b8e7b - sprites.cpp 2016-12-08 21:05:53 +01:00
Christoph Oelckers
3fbe41957d - removed GZDoom call. 2016-12-08 21:05:31 +01:00
Christoph Oelckers
6c628c9584 - changed sprite setup to work without global work variables. 2016-12-08 19:27:49 +01:00
Christoph Oelckers
ee09219c08 Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-08 19:08:25 +01:00
Christoph Oelckers
d46ceafd35 - fixed: A_Face* had the sign for the pitch inverted (In Doom, negative pitch is upward, this had positive pitch upward.) 2016-12-08 19:07:50 +01:00
Christoph Oelckers
14400c41b6 Merge branch 'zmaster' 2016-12-08 17:53:41 +01:00
Christoph Oelckers
a4d2468d34 - disable weapon interpolation for offset changes.
This has been causing far too many problems so now it will only be done if a A_Weaponoffset is either used with WOF_ADD or WOF_INTERPOLATE.
2016-12-08 17:52:59 +01:00
Christoph Oelckers
8f45664089 - fixed: Fog boundaries were not drawn on line portals.
There's two restrictions, though:

* on one-sided-line portals fog boundaries will not be drawn.
* the filler sector behind the portal may not have a sky ceiling texture. This is because the drawing code contains several sky checks which get in the way here.
2016-12-08 17:00:15 +01:00
Magnus Norddahl
fb4e34d178 Fix crash reporter for 64 bit 2016-12-08 14:36:17 +01:00
Rachael Alexanderson
dc07c2075f Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-12-08 07:47:33 -05:00
Magnus Norddahl
2854e1fe03 Fix crash reporter for 64 bit
(cherry picked from commit 3a0de8b0c714507823edaa24875bc97b39c76ab6)
2016-12-08 07:47:31 -05:00
Christoph Oelckers
715bdd69af Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-08 12:50:57 +01:00
Christoph Oelckers
3558b2234c - fixed: The dynamic light setup for walls did not portal-translate the light's coordinate.
- changed ADynamicLight::CollectWithinRadius to work iteratively to avoid the high stack overhead of 64 bit code.
2016-12-08 12:50:45 +01:00
Christoph Oelckers
d741e0eb26 - fixed: P_CheckSight returned incorrect results when having to traverse the collected lines just for adding more portals to the list. 2016-12-08 11:23:08 +01:00
Magnus Norddahl
dc82c19901 Fix sprites/translucent stuff being occluded by portal walls 2016-12-08 10:35:51 +01:00
Magnus Norddahl
a1bb6e6b23 Only render line portals once 2016-12-08 10:29:52 +01:00
Christoph Oelckers
0720dd9816 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/p_map.cpp
2016-12-08 10:17:12 +01:00
Christoph Oelckers
66d287ea81 - fixed: Stepping through a ceiling portal on a two-sided line did not work.
- fixed: Stepping up an actor checked against the sector's own ceiling, even if it was a crossable portal.
2016-12-08 10:16:22 +01:00
Rachael Alexanderson
40b68bfea0 Merge branch 'master' of https://github.com/coelckers/gzdoom
# Conflicts:
#	src/CMakeLists.txt
2016-12-07 23:12:42 -05:00
Christoph Oelckers
12f0b56036 - fixed: Stepping up through a portal did not work when the step line was two-sided. This special case was only implemented for one-sided lines
- fixed: The portal collector set bad flags for collected lower portals.
2016-12-08 00:59:04 +01:00
Christoph Oelckers
1e950d75bd - made dynamic light attenuation completely opt-in. This can be done either by setting a MAPINFO option for lights that do not automatically specify it and with a light property. The light property will always take precedence, if set. 2016-12-07 23:17:18 +01:00
Christoph Oelckers
aa939ef17a Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-12-07 22:53:06 +01:00
Christoph Oelckers
f547daccc8 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
2016-12-07 22:51:05 +01:00
Rachael Alexanderson
d12b92e926 Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-07 16:49:44 -05:00
Magnus Norddahl
066158be69 Fix mirror 2016-12-07 22:26:18 +01:00
Magnus Norddahl
480b22c50e Add more checks for FTexture::TEX_Null 2016-12-07 18:59:48 +01:00
Christoph Oelckers
6adcba3c4b - fixed linkage for fuzzviewheight
- fixed naming conflict with GCC's virtual table.
2016-12-07 18:39:09 +01:00
Magnus Norddahl
9ed02a6aec Merge remote-tracking branch 'zdoom/master' into qzdoom
# Conflicts:
#	src/CMakeLists.txt
#	src/doomtype.h
#	src/r_drawt.cpp
2016-12-07 18:35:27 +01:00
Magnus Norddahl
e3e90e1a08 Merge TC handling back into r_draw 2016-12-07 18:28:06 +01:00
Magnus Norddahl
beb70d7dfa Merge remote-tracking branch 'origin/zdoom_multithreaded' into qzdoom
# Conflicts:
#	src/CMakeLists.txt
#	src/r_3dfloors.cpp
#	src/r_bsp.cpp
#	src/r_bsp.h
#	src/r_draw.h
#	src/r_main.cpp
#	src/r_main.h
#	src/r_plane.cpp
#	src/r_plane.h
#	src/r_segs.cpp
#	src/r_segs.h
#	src/r_swrenderer.cpp
#	src/r_things.cpp
#	src/r_things.h
#	src/r_thread.cpp
#	src/r_thread.h
#	src/v_draw.cpp
#	src/win32/fb_d3d9.cpp
2016-12-07 18:22:02 +01:00
Edoardo Prezioso
e4c208602d - Fixed GCC/Clang warning/error. 2016-12-07 16:07:25 +01:00
Christoph Oelckers
2677976cae - r_drawt.cpp is no longer needed. 2016-12-07 15:44:25 +01:00
Christoph Oelckers
a118903e3e - complete removal of assembly stuff. Nothing of this gets used anymore. 2016-12-07 14:41:21 +01:00
Christoph Oelckers
ed141943e1 - removed use of BestColor_MMX because there is no measurable improvement at all on a modern system. On top of that this function does not get called nearly often enough to justify the hassle. Like DoBlending this would require hundreds of calls per frame to make any impact that would be measurable. 2016-12-07 14:40:19 +01:00
Christoph Oelckers
5910067c44 - discontinue using the MMX assembly version of DoBlending.
Some benchmarking shows that on SSE systems it only harms performance and compared to the intrinsics version the gains are too marginal for something this infrequently called.
Doing 100000 calls of DoBlending results in a 5 ms decrease of using assembly vs intrinsics on a 3.4 GHz Core i7, meaning that even on a computer that is 10x slower you can still do 1000 or so blends per frame without a speed hit.
2016-12-07 14:40:18 +01:00
Rachael Alexanderson
2200f6eda3 - fixed: compile error with SDLGLVideo class macro 2016-12-07 13:21:28 +01:00
Christoph Oelckers
42346c58d3 - disabled assembly entirely to make the MT drawer submission compile.
This still requires a review of the two non-drawer functions that get 'lost'.
2016-12-07 12:31:43 +01:00
Christoph Oelckers
1e42c6f227 - added copyright headers to two files missing them. 2016-12-07 11:40:59 +01:00
Magnus Norddahl
3ff91807b8 Move swrenderer into a namespace, add multithreading framework, and move drawers to commands 2016-12-07 09:34:49 +01:00
Christoph Oelckers
56f67726f0 - seems a Linux file was missed when refactoring the IMPLEMENT_CLASS macros. 2016-12-07 00:54:40 +01:00
Rachael Alexanderson
c04e0d0df3 - fixed: Whoops. One of those danged macros got away. ;) 2016-12-06 18:44:59 -05:00
Rachael Alexanderson
8a23befd4d - Fixed abstract class macro in SDLGLFB class. 2016-12-06 18:22:36 -05:00