Magnus Norddahl
a8b79a28c8
- Disable model rendering in the software renderer
2017-11-29 22:18:21 +01:00
Magnus Norddahl
8cad912db1
- Add r_model_distance_cull to control when models turn into sprites
2017-11-29 01:09:26 +01:00
Magnus Norddahl
b621dccb9c
- Improve weapon hud model in the software renderer
2017-11-29 00:33:37 +01:00
Magnus Norddahl
d43ac8b9ae
- Add model rendering to the software renderer
2017-11-27 23:47:26 +01:00
Rachael Alexanderson
fd5b8cdbf7
Merge remote-tracking branch 'origin/master' into newtimercode4
...
# Conflicts:
# src/gl/models/gl_models.cpp
2017-11-23 21:08:09 -05:00
Magnus Norddahl
4e4f94db2f
- Implement newer scaled fuzz in softpoly's truecolor non-sse drawer
2017-11-22 06:32:55 +01:00
Rachael Alexanderson
495fc79fe9
- added dpJudas's drawer fix for the upscaled fuzz drawing
2017-11-21 05:26:46 -05:00
Christoph Oelckers
2c65f08011
- more timer cleanup
...
* store the frame time in the current screen buffer from where all render code can access it.
* replace some uses of I_MSTime with I_FPSTime, because they should not use a per-frame timer. The only one left is the wipe code but even this doesn't look like it needs either a per-frame timer or a timer counting from the start of the playsim.
2017-11-13 00:28:43 +01:00
Christoph Oelckers
e94109f1c3
- Inside the renderer, use only the time value being passed to RenderView.
...
The voxel rotation code of the software renderer and R_SetupFrame still called I_FPSTime directly.
2017-11-12 23:53:46 +01:00
Christoph Oelckers
93e9c383fa
- get the timer used for animation only once at the very beginning of the frame and pass it on to the renderer to avoid any dependencies on the timer's implementation.
2017-11-12 18:51:11 +01:00
Christoph Oelckers
6bd76d6b5a
- fixed compilation in debug mode.
...
- moved timer definitions into their own header/source files. d_main is not the right place for this.
- removed some leftover cruft from the old timer code.
2017-11-12 09:06:40 +01:00
Magnus Norddahl
307d8931d8
- Switch to C++11 steady clock
...
- Move the C++11 implementation to d_main
- Remove the platform specific timer implementations
2017-11-12 03:12:22 +01:00
Rachael Alexanderson
e6b6cb354b
- fixed: playersprite in the classic software renderer was acting oddly with a forced aspect ratio, similar to the bug fixed in ac566f4
2017-09-16 16:09:00 -04:00
Rachael Alexanderson
72054fb5e2
- implemented pixelratio for the classic software renderer
2017-09-16 05:26:18 -04:00
nashmuhandes
f96f71044f
Change camera texture FOV to doubles.
2017-09-02 07:44:38 +02:00
Magnus Norddahl
77faab5a75
- Fixed overflow for precise blend mode
2017-08-29 19:25:05 +02:00
Rachael Alexanderson
1cddd1efaf
- RFF_UNCLIPPEDTEX is no longer supported in SoftPoly.
2017-08-18 23:04:11 -04:00
Rachael Alexanderson
b8ab626609
- add sloped 3D floor support to the poly renderer's GetCaps()
2017-08-18 18:33:19 -04:00
Rachael Alexanderson
eb425f206a
- In software rendering, lights now check if they are too far above or below a certain plane before rendering. An example of this is in unloved.pk3 where in map02, some lights are above the ceiling.
2017-08-18 18:14:43 -04:00
Magnus Norddahl
dd6e0b63f2
- Fix typo in pal drawers that caused rendering errors for non-64x64 flats
2017-08-18 21:12:44 +02:00
alexey.lysiuk
eb52088487
Fixed compilation warnings reported by Clang
...
src/gl/scene/gl_sprite.cpp:685:34: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/polyrenderer/scene/poly_sprite.cpp:297:34: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/swrenderer/scene/r_opaque_pass.cpp:975:35: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/sound/mididevices/music_timiditypp_mididevice.cpp:548:30: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
2017-08-13 16:42:08 +03:00
Rachael Alexanderson
8dff91915a
- remove vestigial version.h include from r_portal.cpp. This should stop r_all.o from compiling every single commit.
2017-07-31 11:12:08 -04:00
Rachael Alexanderson
c07a4461a0
- fixed: GetCaps() did not account for r_drawvoxels cvar
2017-07-30 10:45:05 -04:00
Rachael Alexanderson
b6c15b997a
- added 'r_debug_disable_vis_filter' cvar for debug purposes, to show all objects regardless of their actor filter fields.
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
91ff447a90
- fixed compile from last commit
...
- refactored the zscript hookup a bit, made it actually work
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
712d21e26a
- implement per-renderer sprite hiding based on the actor's render feature flags
...
- hook the thing up to zscript (does not currently compile)
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
8bb5687159
- Implemented GetCaps() for the software renderer
...
- fixed: Forgot to describe Brightmap capability in the GL Renderer
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
28af2fe66b
- maxviewpitch now affects the 2.5D software renderer
2017-07-24 10:33:44 -04:00
Magnus Norddahl
1ce3b4c79c
- Fix dynamic light clamping issue in truecolor drawers
2017-07-23 23:45:43 +02:00
Magnus Norddahl
bf4d7234e1
- Increase MAXWIDTH and MAXHEIGHT defines to support supersampled 5K monitors
2017-07-23 22:04:00 +02:00
Rachael Alexanderson
a958d2ad72
- fixed pixel centering for unaccelerated player sprites
2017-07-22 08:01:27 -04:00
Magnus Norddahl
8311a18282
- Fix plane pixel center sampling bug
2017-07-22 12:29:46 +02:00
Magnus Norddahl
3ff021608d
- Fix pixel center sampling bug in SWCanvas::DrawTexture
2017-07-22 10:40:30 +02:00
Magnus Norddahl
ebd20daed8
- Fix wall texture sampling to be done at pixel centers
2017-07-22 01:45:06 +02:00
Magnus Norddahl
5be74890b7
- Fix missing pixels on walls in palette mode for npot2 textures
2017-07-21 22:48:44 +02:00
Christoph Oelckers
ffc529d100
- let r_*_cull variables default to 0.
2017-07-20 14:23:45 +02:00
Magnus Norddahl
c38d0c1637
Merge branch 'line_distance_cull' into qzdoom
...
# Conflicts:
# src/swrenderer/scene/r_opaque_pass.cpp
2017-07-12 07:11:43 +02:00
Magnus Norddahl
7d1de667be
- Added r_line_distance_cull cvar that culls lines beyond the specified distance
2017-07-12 06:56:34 +02:00
Rachael Alexanderson
25900031f5
Merge https://github.com/coelckers/gzdoom
2017-07-11 06:22:51 -04:00
Rachael Alexanderson
25ab31e92c
- corrected transferred sky offsets using ZDoom 2.8.1 source - the sky needed to be offset by 28 units.
2017-07-11 05:53:21 -04:00
Rachael Alexanderson
e1b4bb11ba
Merge https://github.com/coelckers/gzdoom
2017-07-09 20:09:12 -04:00
Magnus Norddahl
ddd1b629c3
- Calculate globvis/r_visibility in r_utility and use it in GL and poly renderers
2017-07-09 19:01:34 +02:00
Rachael Alexanderson
6a402c28d8
Merge https://github.com/coelckers/gzdoom
2017-07-02 16:36:46 -04:00
Rachael Alexanderson
aa2a39da19
Revert "- Remove r_sprite_distance_cull"
...
This reverts commit 44546ce16a
.
2017-07-02 16:35:40 -04:00
Magnus Norddahl
205350e726
- Fix sprites behind midtextures unrender when near voxel
2017-07-02 20:09:46 +02:00
Magnus Norddahl
6d8281c812
- Fix voxel clipping for r_scene_multithreaded
2017-07-02 18:22:28 +02:00
Magnus Norddahl
4545539045
- Add polyobj support to r_scene_multithreaded
2017-07-02 17:22:59 +02:00
Magnus Norddahl
adcc7588ec
- Make it more clear what bFakeBoundary did
2017-07-02 15:35:29 +02:00
Magnus Norddahl
efb1a8d113
- Don't add 3D floor dummy draw segments to the list
2017-07-02 14:46:19 +02:00
Magnus Norddahl
e19c8eba62
- Switch sprite drawing to use the interesting draw segments list
...
- Stop adding 3D floor "fake" draw segments to the interesting segments list
- Rename InterestingSegments list to TranslucentSegments
2017-07-01 23:55:41 +02:00
Rachael Alexanderson
c3cc3637db
Merge https://github.com/coelckers/gzdoom
2017-07-01 13:12:25 -04:00
Magnus Norddahl
42fedd0f4c
- Improve sprite performance when there are many draw segments
2017-07-01 03:31:06 +02:00
Magnus Norddahl
44546ce16a
- Remove r_sprite_distance_cull
2017-07-01 03:29:28 +02:00
Rachael Alexanderson
17aceac912
Merge https://github.com/coelckers/gzdoom
2017-06-29 03:50:22 -04:00
Magnus Norddahl
0cd575363f
- Add r_sprite_distance_cull that per default culls all things further than 5000 units away
2017-06-28 19:55:11 +02:00
Rachael Alexanderson
c15880a2fc
Merge https://github.com/coelckers/gzdoom
2017-06-27 17:38:26 -04:00
Magnus Norddahl
9c3361dfe2
- Fix stat fps to write something slightly more useful
2017-06-27 21:15:26 +02:00
Rachael Alexanderson
7592e6d5de
Merge https://github.com/coelckers/gzdoom
2017-06-25 00:18:19 -04:00
Magnus Norddahl
f34ededdef
- Improved fuzz rendering in software renderer by scaling it relative to 320x200
2017-06-25 00:35:15 +02:00
Rachael Alexanderson
9001009fcf
Merge https://github.com/coelckers/gzdoom
2017-06-22 01:42:33 -04:00
Rachael Alexanderson
bdc99d9768
- fixed: fillsimplepoly drawer was using an inverted scale, leading to incorrect automap texture display.
2017-06-21 04:03:37 -04:00
Rachael Alexanderson
e60d627e88
Merge https://github.com/coelckers/gzdoom
2017-06-21 03:04:06 -04:00
Magnus Norddahl
fa36677bdb
- Removed power-of-two limitation from span drawers, except for slopes
2017-06-21 03:08:11 +02:00
Rachael Alexanderson
ff257fcfd7
Merge https://github.com/coelckers/gzdoom
2017-06-20 09:39:12 -04:00
Rachael Alexanderson
e290274fb7
- fixed: Now fully fixed the 3d floor + fog boundary issue.
...
- Revert "- Partially fixed the 3d floors + fogboundary issue. There's still an issue when a sprite appears in front of a fog boundary, but because this is already a huge visual improvement I am going to go ahead and push this."
This reverts commit 7e292fbfec
.
2017-06-19 17:19:44 -04:00
Rachael Alexanderson
7e292fbfec
- Partially fixed the 3d floors + fogboundary issue. There's still an issue when a sprite appears in front of a fog boundary, but because this is already a huge visual improvement I am going to go ahead and push this.
2017-06-19 17:05:53 -04:00
Magnus Norddahl
8af76b96d8
- Fix clearfog crash
2017-06-19 20:36:28 +02:00
Rachael Alexanderson
d454fafc9e
Merge https://github.com/coelckers/gzdoom
2017-06-19 03:22:23 -04:00
Magnus Norddahl
490d7e3a35
- Remove clearfog goto
2017-06-19 00:55:32 +02:00
Magnus Norddahl
8beafbb7da
- Fix voxel speed regression in the palette software renderer
2017-06-18 19:45:15 +02:00
Christoph Oelckers
3b024c347b
- use a dedicated flag word for the dynamic light flags instead of piggybacking on some flags4 bits.
2017-06-18 10:15:31 +02:00
Major Cooke
17fc58f712
Added PSPF_MIRROR to software renderer.
2017-06-04 21:41:21 -04:00
Rachael Alexanderson
5185ebbc28
- fixed: Add light diminishing to true-color stencil drawers
...
- fixed: Non-SSE AddClampShadedBgra (stencil) drawer did not handle overflows
2017-06-04 12:46:39 -04:00
Rachael Alexanderson
62374cf3bc
- fixed: add light diminishing support to rgb666 palette stencil drawers
2017-06-04 12:26:04 -04:00
Rachael Alexanderson
564e24be28
- Added truecolor support to truecolor stencil drawers
2017-06-04 12:00:15 -04:00
Rachael Alexanderson
c18134dbd3
- r_vanillatrans: Cache the cache! Transform the function into a global variable and recheck at the start of D_Display
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
68b6f922f7
- Added auto-detection scheme for r_vanillatrans
...
It now works the following way:
(0) - Force off (ZDoom defaults)
(1) - Force on (Doom defaults)
(2) - Auto off (Prefer ZDoom defaults - if DEHACKED is detected with no ZSCRIPT it will turn on) (default)
(3) - Auto on (Prefer Doom defaults - if DECORATE is detected with no ZSCRIPT it will turn off)
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
2997f31f9f
- removed ZDOOMADD and updated actors in question with ZDOOMTRANS
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
89b372cb01
- Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
...
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
01f88cfb16
- Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
5502421901
- fixed: Using pure software drawers (vid_hw2d==false) drawing stencils on the screen resulted in black stencils
...
- this fixes crosshairs being drawn black
2017-06-01 16:21:15 -04:00
Magnus Norddahl
c30010370e
- Fix voxels not being rendered when the replaced sprite texture doesn't exist
2017-06-01 00:26:25 +02:00
Magnus Norddahl
1505f75669
- Fix testcolor and testfade in the software renderer
2017-05-28 23:57:09 +02:00
Christoph Oelckers
9d73e4c635
- fixed errors in wallsprite setup for the classic software renderer:
...
* it did not use the correct texture.
* it had a math error in the right edge's y-coordinate calculation.
2017-05-23 09:37:38 +02:00
Magnus Norddahl
e27e89b57d
- Make sure a hung worker thread always crashes the application
2017-05-21 12:03:12 +02:00
Magnus Norddahl
aff9205057
- Fix mipmap filtering bug when using nearest filter
2017-05-21 11:01:37 +02:00
Rachael Alexanderson
2acb485121
- Added +SPRITEFLIP which reverses a sprite's left-rightness.
2017-05-03 21:13:31 +02:00
Magnus Norddahl
c8070c65d4
- Add support for drawing decals on 3d floors in the software renderer
2017-05-02 22:26:13 +02:00
Christoph Oelckers
96d328de9b
- removed all Doom Source license and all default Raven copyright headers and replaced them with GPLv3. Also fixed the license in a few other files.
...
For some files that had the Doom Source license attached but saw heavy external contributions over the years I added a special note to license all original ZDoom code under BSD.
2017-04-17 13:33:19 +02:00
Christoph Oelckers
57d703236b
- changed Doom source license to GPL in all subdirectories and fixed missing licenses in a few other files.
2017-04-17 12:27:19 +02:00
Christoph Oelckers
1ee9256842
- did a complete workover of the weapon sprite translucency code that got inherited from QZDoom.
...
This was very poorly done without ever addressing the issues a composite render style can bring, it merely dealt with the known legacy render styles.
The same, identical code was also present in two different places.
The oversight that AlterWeaponSprite overrode even forced styles was also fixed.
OpenGL is not implemented yet but with the problems eliminated should be doable now.
2017-04-15 16:41:00 +02:00
Christoph Oelckers
dc5a5419fc
- took DCanvas and all its subtypes out of the DObject tree.
...
I have no idea why they were even in there, as they intentionally circumvented all GC related features - they declared themselves fixed if prone to getting collected, they all used OF_YesReallyDelete when destroying themselves and they never used any of the object creation or RTTI features, aside from a single assert in V_Init2.
Essentially they were a drag on the system and OF_YesReallyDelete was effectively added just to deal with the canvases which were DObjects but not supposed to behave like them in the first place.
2017-04-14 10:48:18 +02:00
Magnus Norddahl
d407aa3157
- Fix linear filtering bug for sprites
2017-04-13 22:16:26 +02:00
Christoph Oelckers
e4d2380775
- moved all remaining fields from PClassActor to FActorInfo.
...
- added a few access functions for FActorInfo variables.
With PClassActor now empty the class descriptors can finally be converted back to static data outside the class hierarchy, like they were before the scripting merge, and untangle the game data from VM internals.
2017-04-12 00:07:41 +02:00
Christoph Oelckers
4afe2d4218
- moved OwnedStates and NumOwnedStates out of PClassActor.
2017-04-11 22:44:35 +02:00
Magnus Norddahl
f049e6145b
- remove all usage of std::make_unique to keep things C++11 compliant
2017-04-11 01:25:44 +02:00
Magnus Norddahl
5c5e3bdcba
- change fuzzing to not do any offsetting but keep the shading pattern produced by it
2017-04-03 19:11:38 +02:00
Magnus Norddahl
6db89a2ce1
- clean up the triangle setup functions
2017-04-01 03:44:45 +02:00
Christoph Oelckers
1d4ab0cc2a
- implemented proper scaling for the status bar itself.
...
This allows using the UI scale or its own value, like all other scaling values.
In addition there is a choice between preserving equal pixel size or aspect ratio because the squashed non-corrected versions tend to look odd, but since proper scaling requires ununiform pixel sizes it is an option.
- changed how status bar sizes are being handled.
This has to recalculate all scaling and positioning factors, which can cause problems if the drawer leaves with some temporary values that do not reflect the status bar as a whole.
Changed it so that the status bar stores the base values and restores them after drawing is complete.
2017-03-29 19:23:40 +02:00
nashmuhandes
99d1581c27
Added "DontLightActors" flag for dynamic lights. Actors will not be illuminated by lights that are given this flag.
2017-03-28 21:33:16 +02:00
alexey.lysiuk
4716b712b1
Fixed compilation issues with isnan()
...
Need to do it in pure C++ way to avoid C99 macro at all costs
Tested with CI targets, on Debian Jessie using GCC 4.9 and on Ubuntu 16.04 using GCC 5.4
2017-03-28 17:10:06 +03:00
alexey.lysiuk
020c34abfa
Added workaround for undefined isnan()
...
All our continuous integration targets have no problems with C99 isnan() macro but on Ubuntu 16.04 compilation fails
It appeared that some implementation of C++ Standard Library may undefine bunch of C macros to avoid conflicts with own declarations
2017-03-27 17:06:21 +03:00
Magnus Norddahl
ad992d2ffd
- add support for choosing the particle style in the software renderer
2017-03-27 10:12:57 +02:00
alexey.lysiuk
e5d4d9a36a
Fixed compilation with GCC/Clang
...
src/swrenderer/line/r_walldraw.cpp:102:13: error: expected unqualified-id before ‘(’ token
2017-03-26 22:10:05 +03:00
Rachael Alexanderson
f1ce0f1136
- Removed redundant #ifdef __arm__ #define NO_SSE from 2.5D drawers
2017-03-25 01:39:09 -04:00
Christoph Oelckers
a3ee3c287e
- major progress on the status bar code: SBARINFO's DrawGraphic has been ported into a generic function of the base statusbar class and put to use for a few items on the Strife status bar.
...
- decided to ditch the widget system I had started to lay out. As it turns out that would make things far more complicated and slower than they need to be.
2017-03-24 00:47:08 +01:00
Rachael Alexanderson
09c3060728
- fixed: skybug on ARM was caused by undefined conversion from float to unsigned int. adding intermediary signed int cast fixes this problem.
2017-03-22 05:51:12 -04:00
Rachael Alexanderson
4110f34139
- fixed: non-SSE2 drawers still had SSE2 intrinsics for light calculations, preventing successful compilation on ARM.
2017-03-21 17:51:09 -04:00
Magnus Norddahl
11e5759913
- detached the poly renderer from the software renderer
2017-03-20 08:28:16 +01:00
Rachael Alexanderson
4784aae098
- backport cl_oldfreelooklimit from Skulltag - due to the advent of capped skies, there really was no reason to keep the upper limit so low.
2017-03-19 00:36:52 -04:00
alexey.lysiuk
cb5ddeff25
Fixed compilation warnings reported by Clang
...
src/gl/scene/gl_clipper.h:150:23: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
src/gl/dynlights/gl_aabbtree.cpp:137:24: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:137:34: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:137:44: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:139:6: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:139:30: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:139:54: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:142:6: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:143:3: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:144:3: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_aabbtree.cpp:167:6: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
src/gl/dynlights/gl_shadowmap.cpp:163:31: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/p_saveg.cpp:367:16: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
src/p_saveg.cpp:402:60: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
src/p_setup.cpp:1553:39: warning: format specifies type 'ptrdiff_t' (aka 'long') but the argument has type 'int' [-Wformat]
src/scripting/zscript/zcc_compile.cpp:293:74: warning: field 'AST' will be initialized after field 'mVersion' [-Wreorder]
src/swrenderer/drawers/r_thread.cpp:113:21: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
2017-03-18 15:13:02 +02:00
Christoph Oelckers
39b329e3f7
- this was accidentally left in.
2017-03-17 10:12:47 +01:00
Magnus Norddahl
fc0f2292ab
- add non-sse version of the sprite drawers
...
- fix some typos
2017-03-17 08:44:33 +01:00
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