Commit graph

371 commits

Author SHA1 Message Date
Christoph Oelckers
439e4f9f94 Merge remote-tracking branch 'remotes/origin/3.0_work' 2017-03-13 00:02:16 +01:00
Christoph Oelckers
d72623b9b5 - eliminated global in_area variable.
Removing this made me realize that calling the renderers' FakeFlat functions from the automap is inherently unsafe with the recent refactorings because there is absolutely no guarantee that the data may actually still be defined when the automap is being drawn.
So the best approach here is to give the automap its own FakeFlat function that runs independently of render data and assumptions of data preservation. This one can also be a lot simpler because it only needs the floor, not the ceiling info.
2017-03-12 23:13:07 +01:00
Magnus Norddahl
a663f71a9f - Added thread safety to texture loading in the software renderer 2017-03-12 22:53:20 +01:00
Magnus Norddahl
00f6ed45a2 Make LightVisibility thread local 2017-03-12 20:40:00 +01:00
Christoph Oelckers
ef3421eee5 - moved dynamic lights out of the GL code into the common game code.
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
2017-03-12 19:57:06 +01:00
Magnus Norddahl
6788b19e89 - stop using PORTSF_INSKYBOX flag in software renderer as it is not thread safe 2017-03-12 19:43:40 +01:00
Magnus Norddahl
3113db798d Debug build compile fix 2017-03-12 19:10:52 +01:00
Magnus Norddahl
5fdbbc4f9e Remove usage of r_viewpoint and r_viewwindow globals from software renderer and poly renderer 2017-03-12 18:54:39 +01:00
Christoph Oelckers
90c42519b7 - fixed changed variable inside an assert that apparently got overlooked because it got only compiled as release. 2017-03-12 01:59:41 +01:00
Christoph Oelckers
9b33d1dd18 Merge branch 'scene_multithreaded' of https://github.com/raa-eruanna/qzdoom into 3.0_work
# Conflicts:
#	src/gl/scene/gl_clipper.cpp
#	src/gl/scene/gl_portal.cpp
#	src/gl/scene/gl_scene.cpp
#	src/swrenderer/scene/r_scene.cpp
2017-03-12 00:38:55 +01:00
Christoph Oelckers
0aa0db637c - started adding a SceneDrawer class to the OpenGL renderer.
This will eventually hold all the global variables for the rendering.
2017-03-12 00:19:20 +01:00
Magnus Norddahl
0c9014b984 - move r_utility globals into r_viewpoint and r_viewwindow
- change r_utility functions to only work on FRenderViewpoint and FViewWindow
2017-03-11 23:28:07 +01:00
Christoph Oelckers
921abc404d - fixed GCC warnings and errors
(Is there anyway to tone down GCC's warning level? It outputs too many false positives for potentially uninitialized variables in which the genuine errors get drowned.)
2017-03-11 19:02:35 +01:00
Magnus Norddahl
77a388e908 Fix default palette for voxel BGRA slab data and support translated 8-bit slab data in true color mode 2017-03-11 18:31:53 +01:00
Rachael Alexanderson
81291e6892 - fixed: Clang on Linux compile 2017-03-11 11:01:30 -05:00
Magnus Norddahl
d75e09f545 Fix span dynamic light rendering glitch 2017-03-10 12:25:18 -05:00
Magnus Norddahl
b6ea5944d3 Fix crash when vid_hw2d is off 2017-03-10 12:24:09 -05:00
Rachael Alexanderson
9d5f8ba250 - fixed: P_AlignFlat's y-offset data was ignored when calculating plane offsets for the final render 2017-03-10 12:04:43 +01:00
Rachael Alexanderson
bb1d29d491 - Fixing r_voxel's license. 2017-03-10 12:04:43 +01:00
Christoph Oelckers
bd7476fb8d - untangled r_defs.h from actor.h
Both files can now be included independently without causing problems.
This also required moving some inline functions into separate files and splitting off the GC definitions from dobject.h to ensure that r_defs does not need to pull in any part of the object hierarchy.
2017-03-10 02:22:42 +01:00
Christoph Oelckers
4de0f8b1fa - compile both poly and sw renderer as one unit, because due to the includes this gets really slow otherwise. Lumping these together saves 50 seconds per build on my system with a 3.4 GHz Core i7 and an SSD for storage, so on other systems it may be even more. 2017-03-10 00:43:36 +01:00
Christoph Oelckers
9b87a167d7 - replaced a large batch of DWORDs.
Most of those which still rely on ZDoom's own definition should be gone, unfortunately the code in files that include Windows headers is a gigantic mess with DWORDs being longs there intead of ints, so this needs to be done with care. DWORD should only remain where the Windows type is actually wanted.
2017-03-09 20:19:55 +01:00
Christoph Oelckers
d2beacfc5f - except for DWORD, all homegrown integer types are gone - a handful were left where they represent genuine Windows types. 2017-03-09 19:54:41 +01:00
Christoph Oelckers
c008ddaf66 - replaced homegrown SWORD, SBYTE and uint32_t types. 2017-03-09 19:31:45 +01:00
Rachael Alexanderson
4d70b01da5 - followed through with GZDoom's SQWORD removals. 2017-03-08 21:35:20 -05:00
Magnus Norddahl
279fa7e886 Non-SSE version of the sky drawers 2017-03-08 23:35:13 +01:00
Magnus Norddahl
65f8d65858 Minor code clean up 2017-03-06 23:27:02 +01:00
Rachael Alexanderson
cb8b2de287 - somehow, this missed a few. 2017-03-06 16:58:48 -05:00
Rachael Alexanderson
28abc96aef - fully implemented "nolightfade" to turn off diminishing lights in the software renderer.
- unfortunately, LIGHT2SHADE had to be transformed into a namespaced function.
2017-03-06 16:14:54 -05:00
Rachael Alexanderson
5c3b9d81ad Merge remote-tracking branch 'origin/no-diminishing-light' 2017-03-06 13:47:33 -05:00
Rachael Alexanderson
effe8a1e80 Revert "- started adding ARM support. incomplete. won't compile. don't try."
This reverts commit be8abba344.
2017-03-05 13:07:25 -05:00
Magnus Norddahl
eb7955694b Disable diminishing light in software renderer 2017-03-05 16:57:58 +01:00
Rachael Alexanderson
be8abba344 - started adding ARM support. incomplete. won't compile. don't try. 2017-03-04 16:50:42 -05:00
Rachael Alexanderson
869de7554f - fixed: Opening automap without 2D acceleration and rgb666 blending crashed due to bad color calculations. (Attempted to pass rgb888 values into rgb666 array) 2017-02-27 12:15:17 -05:00
Rachael Alexanderson
bd61e9f3f4 - Disabled dynlights during invulnerability/lightamp (or any FixedColormap or FixedLightLevel) 2017-02-27 08:20:26 -05:00
Rachael Alexanderson
e7a1a59053 - Disabled alpha-masking textures for now, since they do not yet work. (needs texman fix) 2017-02-25 16:36:57 -05:00
Rachael Alexanderson
9b40aa9605 - Fixed two typos as identified by dpJudas. 2017-02-25 15:32:50 -05:00
Magnus Norddahl
735157aea4 Bump minimum architecture to SSE 2 on the x86 platform (a Pentium 4 from 2001!) 2017-02-25 01:22:54 +01:00
Magnus Norddahl
e697746e7d Remove the php drawers and their generated output 2017-02-24 16:59:45 +01:00
Magnus Norddahl
51b872b30b Created template version of sprite drawers 2017-02-24 16:52:13 +01:00
Magnus Norddahl
d3812e32f8 Created templated version of wall drawers 2017-02-24 15:31:47 +01:00
Magnus Norddahl
2a7bdaad79 Switched to a template version of the span32 drawers 2017-02-24 13:56:20 +01:00
Magnus Norddahl
616e800635 Don't copy the SpriteDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 04:32:40 +01:00
Magnus Norddahl
218708571e Don't copy the SkyDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 04:03:27 +01:00
Magnus Norddahl
f76a039a76 Don't copy the WallDrawerArgs members now that drawer args are grouped by drawer family 2017-02-24 02:37:13 +01:00
Magnus Norddahl
8bd0df1ace Simplify CalcTiltedLighting in hope that this function is what made GCC break 2017-02-23 23:53:38 +01:00
Magnus Norddahl
b4b391c51e Fix palette light artifacts caused by dynamic lights in some rare cases 2017-02-23 23:13:21 +01:00
Magnus Norddahl
4d161fbd42 Add dynamic light to sprites in palette mode 2017-02-23 21:50:16 +01:00
Magnus Norddahl
832790f5ba Fix sprite light bug 2017-02-23 21:08:08 +01:00
Rachael Alexanderson
10e268ebc0 - Change "clipmidtex" compatflag to be accessible in compatibility.txt only. 2017-02-23 06:32:53 -05:00
Magnus Norddahl
3c3917f1f3 Change dynlight sprite math to not overflow when used with dynamic colormaps 2017-02-23 10:55:44 +01:00
Magnus Norddahl
0702e4523d Fix that sprite light wasn't calculated using the center of the sprite 2017-02-23 09:27:00 +01:00
Magnus Norddahl
56045c1293 Remove r_drawers.h and move softpoly drawer related stuff out of the swrenderer 2017-02-23 09:02:13 +01:00
Magnus Norddahl
ad507ca246 Removed drawergen tool and all LLVM dependencies (don't let the door hit you on your way out, llvm!) 2017-02-23 08:28:18 +01:00
Magnus Norddahl
c5683bbde5 Clamp dynlights to 0-1 range on sprites 2017-02-23 07:49:02 +01:00
Magnus Norddahl
92e6f070b4 Fix sprite dynlight distance check 2017-02-23 07:05:21 +01:00
Magnus Norddahl
ef41e8e54e Add dynamic light to sprites 2017-02-23 06:01:01 +01:00
Magnus Norddahl
c6235fb674 Added light to span drawers 2017-02-23 04:26:37 +01:00
Magnus Norddahl
e9efb64a0b Fix light offset 2017-02-23 03:50:24 +01:00
Magnus Norddahl
01a8df7eb3 Add dynlights to wall drawer 2017-02-22 08:05:23 +01:00
Magnus Norddahl
e73031b3c9 Added sky drawers 2017-02-21 01:25:08 +01:00
Magnus Norddahl
5fa5b062d6 Added php script for the span drawers 2017-02-20 22:49:52 +01:00
Magnus Norddahl
fe854fb71f Fix php drawer blend modes 2017-02-20 07:09:30 +01:00
Magnus Norddahl
ee3bcb6f78 Fix sampling 2017-02-19 03:51:49 +01:00
Magnus Norddahl
dfcfd0462f Hook up sprite php drawers (but disable them for now as they don't fully work yet) 2017-02-19 01:23:16 +01:00
Magnus Norddahl
2bedfca071 Add php script for sprite drawers 2017-02-19 00:49:46 +01:00
Magnus Norddahl
8f06b5f9a1 Updated wall drawers to process two lines at a time 2017-02-18 09:17:47 +01:00
Magnus Norddahl
097dda38a9 Hook up all php generated wall drawers and enable them per default 2017-02-18 05:34:26 +01:00
Magnus Norddahl
89a2e434d4 Fix typo where __m128 should have been __m128i 2017-02-17 23:03:48 +01:00
Magnus Norddahl
4240a15f3a Hook up php generated wall drawer 2017-02-17 22:58:55 +01:00
Magnus Norddahl
e42f914efa Added php script generating the 32 bit wall drawers 2017-02-17 05:34:33 +01:00
Magnus Norddahl
01cbb14f14 Change wall project to use the fixed version from GZDoom as it was most likely more tested 2017-02-15 13:26:43 +01:00
Magnus Norddahl
fc97ef0913 Fix palette fog boundary rendering error 2017-02-15 13:01:00 +01:00
Magnus Norddahl
eac98ac226 Calculate sprite dynamic light contribution and pass it along to the sprite drawer 2017-02-14 06:37:06 +01:00
Magnus Norddahl
5ef8ecce2a Fix wall scroller direction 2017-02-14 02:52:41 +01:00
Magnus Norddahl
9159e3b1f0 Move software canvas drawing to its own file in the software renderer 2017-02-13 17:32:52 +01:00
Magnus Norddahl
10b36934c2 Fix vid_hw2d 0 translation bug 2017-02-13 16:13:24 +01:00
Magnus Norddahl
69787fac72 Fix translation issue 2017-02-13 15:08:11 +01:00
raa-eruanna
a2edca6032 - fix at least one of the GCC errors 2017-02-13 07:01:44 -05:00
Magnus Norddahl
22be201fc7 Split line drawing into more functions 2017-02-13 00:00:25 +01:00
Magnus Norddahl
83332562f1 Fix skyhack 2017-02-12 07:37:18 +01:00
Magnus Norddahl
bb749c032a Create SetTopTexture, SetMiddleTexture and SetBottomTexture 2017-02-12 07:24:35 +01:00
Magnus Norddahl
b5c5bd9a1c Create ClipSegmentTopBottom function 2017-02-12 06:44:03 +01:00
Magnus Norddahl
8d25a6d8d4 rw_offset is not a member variable 2017-02-12 06:23:57 +01:00
Magnus Norddahl
0dadf38bbe Create WallPartTexture class 2017-02-12 06:17:38 +01:00
Magnus Norddahl
9123c71bb6 Fix clang warning 2017-02-12 03:25:17 +01:00
Magnus Norddahl
5a85fabfa6 Add true color support to voxel renderer 2017-02-12 01:27:26 +01:00
Magnus Norddahl
0cea344dce Fix voxel clipping bug 2017-02-11 23:23:34 +01:00
Magnus Norddahl
8c5360e547 Enable Ken Silverman's voxel drawing code now that he has given us permission to license it as GPL 2017-02-11 22:10:52 +01:00
Magnus Norddahl
3e28d53308 Move rw_havelow and rw_havehigh to local function variables 2017-02-11 20:27:11 +01:00
Magnus Norddahl
9e2702d885 Move more encrypted code into IsInvisibleLine, IsDoorClosed and IsSolid 2017-02-11 20:01:23 +01:00
Magnus Norddahl
1983dd2483 Move code closer to where it is used 2017-02-11 19:13:26 +01:00
Magnus Norddahl
1141e05fdf Decipher some line setup code into ShouldMarkFloor, ShouldMarkCeiling and ShouldMarkPortal 2017-02-11 18:52:49 +01:00
Magnus Norddahl
c17317de24 Rename variables and group them a little more how they are used 2017-02-11 18:00:02 +01:00
Magnus Norddahl
3c0d769499 Fix portals draw segment indexing bug 2017-02-09 22:58:28 +01:00
Magnus Norddahl
c16aa3d361 Fix crouch player sprite 2017-02-09 12:18:40 +01:00
Magnus Norddahl
371dd98102 Show player in mirrors and portals 2017-02-09 05:57:37 +01:00
Magnus Norddahl
388c511e11 Fix portal sprite clipping bugs 2017-02-09 05:42:15 +01:00
Magnus Norddahl
2d25002e2a Fix InterestingSegments not being properly resized in PopPortal 2017-02-08 02:59:25 +01:00
Magnus Norddahl
4f73a722af Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_draw.cpp
2017-02-08 00:34:19 +01:00