Magnus Norddahl
1435832b09
- added non-sse span drawers
2017-03-17 07:36:02 +01:00
Magnus Norddahl
5644b2c0fd
Create non-sse version of the wall drawers
2017-03-17 06:58:36 +01:00
Magnus Norddahl
a6e47b571f
- change _mm_load_ss to _mm_set_ss just in case compilers are really dumb
2017-03-17 06:19:26 +01:00
Christoph Oelckers
fea4079b7c
- moved nodes into FLevelLocals.
2017-03-17 01:42:37 +01:00
Christoph Oelckers
f201dab534
- moved the subsectors into FLevelLocals.
2017-03-17 00:22:52 +01:00
Christoph Oelckers
2b2c986bd0
- cleanup of GL renderer interface and improper header use in software renderer.
2017-03-16 21:34:03 +01:00
Magnus Norddahl
1f109a5deb
- fix wrong particle Y offset
2017-03-16 19:15:42 +01:00
Magnus Norddahl
dbea29e02c
- added missing memory barrier
2017-03-16 17:58:41 +01:00
Magnus Norddahl
f1b03b48e9
- add thread safety to GetSpecialLights
2017-03-16 17:53:12 +01:00
Christoph Oelckers
b529b1e3a7
- removed several unneeded GL headers from the software renderer's sources.
...
- consolidated the code to calculate a sprite's display angle for all 3 renderers.
As it turned out, they all differed in their feature support because they had always been updated independently by different people.
2017-03-16 13:49:34 +01:00
alexey.lysiuk
889a2ae6aa
Fixed compilation with GCC/Clang
2017-03-16 11:13:02 +02:00
Christoph Oelckers
3aa7687d91
- made 'nocoloredspritelighting' a global option and also implemented it in the software renderer.
2017-03-16 00:56:03 +01:00
Christoph Oelckers
91da8aecdb
- fixed fog init for SW Truecolor.
2017-03-15 23:38:12 +01:00
Christoph Oelckers
76d3ae5ba2
made the sector's color_* properties work in the software renderer.
...
With no 3D floors this appears to be ok, but there are so many places where colormaps are being set in the software renderer that I cannot guarantee that I got all of them correct. This will need some testing.
2017-03-15 23:24:53 +01:00
Christoph Oelckers
921bc763fb
- separated the software-renderer-specific parts of colormap processing from the common parts.
...
- moved testcolor and test fades into SWRenderer files.
These CCMDs work by hacking the default colormap and were never implemented for hardware rendering because they require many checks throughout the code.
2017-03-15 22:04:59 +01:00
Christoph Oelckers
9a24771a7d
- refactored FDynamicColormap out of sector_t.
...
This has increasingly become an obstacle with the hardware renderer, so now the values are being stored as plain data in the sector, with the software renderer getting the actual color tables when needed. While this is a bit slower than storing the pregenerated colormap, in realistic situations the added time is mostly negligible in the microseconds range.
2017-03-15 22:04:59 +01:00
Rachael Alexanderson
a2fc2fb707
- Add new drawer: AddClampShadedSprite
...
- fixed: AddShaded did not have a drawer associated with it in the software renderer - used new drawer for this purpose.
2017-03-15 14:40:22 -04:00
Magnus Norddahl
225ce82a5a
- turned r_scene_multithreaded back off as zdcmp2 revealed some problems
2017-03-15 04:01:28 +01:00
Magnus Norddahl
366d1637ce
- enable r_scene_multithreaded
2017-03-15 03:01:43 +01:00
Magnus Norddahl
80f9c81e36
- move PrepareTexture out of the inner drawer loops
2017-03-15 02:59:33 +01:00
Magnus Norddahl
93908bc2ef
- fix crash if a worker thread is the first thread to queue drawer commands
2017-03-14 23:47:41 +01:00
Magnus Norddahl
3838ec3edc
- allow drawer queues to run immediately to improve r_scene_multithreaded performance
...
- removed unused pass ranges in DrawerThread
2017-03-14 23:03:14 +01:00
Christoph Oelckers
d86bd470e5
- moved two MAPINFO settings that are not exclusively used by the OpenGL renderer to the common code.
2017-03-14 18:31:11 +01:00
Christoph Oelckers
5141fee8c0
- reverted the change of position where polyobjects get linked to the subsectors.
2017-03-13 21:17:25 +01:00
Magnus Norddahl
a08f35fe3b
Fix missing player sprites in some situations when r_scene_multithreaded is on
2017-03-13 19:19:46 +01:00
Magnus Norddahl
a408ea312f
Remove if statement that was always false
2017-03-13 17:54:05 +01:00
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