Commit graph

178 commits

Author SHA1 Message Date
Marisa Kirisame
1afcd9b7c7 Mirroring should be flipped on HUD models since the view to world space transform already inverts one axis
(cherry picked from commit f74e74ac4b)
2018-06-03 19:51:45 +02:00
Marisa Kirisame
5a76623993 Swap front face culling for GL model drawer (CCW should be the default).
Added mirroring handling to software models.

(cherry picked from commit dea1d0259d)
2018-06-03 19:49:48 +02:00
Christoph Oelckers
ff5c488a0f - pass mirroring info to model drawers.
Actual evaluation only implemented in OpenGL. Not tested yet because the bug report had no testable example.

(cherry picked from commit 94d1a73ae8)
2018-06-02 21:31:23 +02:00
Magnus Norddahl
60929f353f - replace softpoly block drawers with span drawers and make them use blending rules directly from render styles
- add dynlights to softpoly pal mode

(cherry picked from commit 4e6226fc2d)
2018-05-30 11:56:15 +02:00
Magnus Norddahl
1055e45566 - Modify TriBlendMode enum to match the render styles
(cherry picked from commit 190b673890)
2018-05-30 11:55:53 +02:00
Magnus Norddahl
77071dedcf - add two-sided culling support in software and poly
(cherry picked from commit 8098657cf4)
2018-05-24 10:30:12 +02:00
Magnus Norddahl
8de520e9e1 - avoid reusing the same mVBuf pointer for the different renderers as that causes too many problems when switching between them
- remove gl_ prefix for model functions that are no longer GL specific

(cherry picked from commit 31abe3df7e)

# Conflicts:
#	src/gl/models/gl_models.h
#	src/gl/scene/gl_scene.cpp
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/hwrenderer/scene/hw_weapon.cpp
#	src/hwrenderer/textures/hw_precache.cpp
2018-05-24 10:25:05 +02:00
Magnus Norddahl
8014b97c3d - 3d floor clipping support for models
(cherry picked from commit b27655db70)
2018-05-10 21:53:46 +02:00
Magnus Norddahl
07b067c218 - GetTimeFloat is not renderer specific
(cherry picked from commit 49c9de350f)
2018-05-10 21:53:31 +02:00
Magnus Norddahl
216ecd7e07 - fix hud model clipping
(cherry picked from commit bfe6bffd33)
2018-05-10 21:53:07 +02:00
Magnus Norddahl
5a6eb48690 - fixed missing depth for models
(cherry picked from commit 4642861501)
2018-05-10 21:29:37 +02:00
Magnus Norddahl
2f1c5ee5d2 - fix translucent walls when r_models is enabled
(cherry picked from commit 1d929dd79b)
2018-05-10 21:21:51 +02:00
Christoph Oelckers
7b822807de - renamed the flag bits for sector_t::MoreFlags, so that they are easier to distinguish from sector_t::Flags.
- precalculate if a sector's floor and ceiling plane overlap. This avoids rechecking this for each single call of hw_FakeFlat.
- vertices must be marked dirty every time they change after map setup. That means that ChangePlaneTexZ must do this as well, because it cannot rely on interpolation taking care of it.
- Having a 'dirty' argument for SetPlaneTexZ's ZScript version makes no sense. If the value changes from the script side the vertices must always be marked to be recalculated.

(cherry picked from commit 9bdb0f2e49)
2018-05-10 19:49:02 +02:00
Christoph Oelckers
8a3a293bf8 - use sector_t::GetHeightSec consistently and optimize it.
This was all over the place, with half of it using the function and half doing incomplete checks on the underlying variables.
Also did some optimization on the IGNOREHEIGHTSEC flag: Putting it on the destination sector instead of the model sector makes the check even simpler and allows to precalculate the effect of 3D floors on the heightsec, which previously had to be run on every call and made the function too complex for inlining.

(cherry picked from commit f49c6cbde2)

# Conflicts:
#	src/gl/renderer/gl_renderer.cpp
#	src/hwrenderer/scene/hw_sprites.cpp
2018-05-10 19:20:11 +02:00
Magnus Norddahl
e519605c7d - Clean up PolyTriangleDrawer API so that it can better support both softpoly and the swrenderer
- Slightly improve how softpoly processes portals
- Pass the vertex transform matrix via a command rather than being part of the drawer args
- Improve zbuffer drawers in the software renderer
- Misc model rendering fixes

(cherry picked from commit 2d51fa5b43)
2018-05-09 10:47:22 +02:00
alexey.lysiuk
709bbe3db0 Fixed crash on accessing player sprite's state in software renderer
https://forum.zdoom.org/viewtopic.php?t=60034
2018-03-30 16:40:31 +03:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
f4d9ad1123 - extended FTexture::GetPixels and FTexture::GetColumn by a RenderStyle parameter.
Now it is no longer necessary to provide specially set up textures for rendering shaded decals, they can use any PNG texture now that contains a proper red channel.
Handling of the alPh chunk has been removed as a result as it in no longer needed.
2018-03-18 21:33:44 +01:00
Magnus Norddahl
2589447d0e - fixed midtex nowrap clipping bug when 3d floors are in view
- made sure no code uses sclipTop or sclipBottom as a working variable
2018-03-09 01:30:47 +01:00
Magnus Norddahl
71623198d2 - remove fake3D with structs and localize their usage instead of sharing global state 2018-03-08 04:05:35 +01:00
Magnus Norddahl
a55be25a9d - add const qualifier on top/bottom clip arrays usage 2018-03-08 00:55:37 +01:00
Rachael Alexanderson
07f168a58b - additional check for tween-tic particle rendering, prevents jitter with timefreeze powerup 2018-02-24 16:04:20 -05:00
Rachael Alexanderson
a441cea350 - interpolate particles 2017-12-28 11:36:36 -05:00
Magnus Norddahl
a8b79a28c8 - Disable model rendering in the software renderer 2017-11-29 22:18:21 +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
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
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
Rachael Alexanderson
a958d2ad72 - fixed pixel centering for unaccelerated player sprites 2017-07-22 08:01:27 -04:00
Rachael Alexanderson
6a402c28d8 Merge https://github.com/coelckers/gzdoom 2017-07-02 16:36:46 -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
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
Rachael Alexanderson
d454fafc9e Merge https://github.com/coelckers/gzdoom 2017-06-19 03:22:23 -04: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
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
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