Christoph Oelckers
2ed744963c
- Changed frame buffer locking mechanism so that the only place where a lock is needed is when the software renderer wants to access the render buffer, which is precisely for the duration of the RenderView function.
...
No more locking insanity! :)
There are no locking counters or other saveguards here that would complicate the implementation because there's precisely two places where this buffer must be locked - the RenderView functions of the regular and poly SW renderer which cannot be called recursively.
2018-03-27 20:02:44 +02:00
Christoph Oelckers
0c3635e22c
- removed vid_hw2d CVar.
2018-03-27 17:58:25 +02:00
Christoph Oelckers
62f073ef60
- removed Accel2D variable and a little bit of locking cruft.
2018-03-27 17:13:10 +02:00
Christoph Oelckers
c06ad5c59c
- separated DFrameBuffer from DCanvas.
...
This was a bad idea from the start and really only made sense with DirectDraw.
These days a FrameBuffer represents an abstract hardware canvas that shares nothing with a software canvas so having these classes linked together makes things needlessly complicated.
The software render buffer is now a canvas object owned by the FrameBuffer.
Note that this commit deactivates a few things in the software renderer, but from the looks of it none of those will be needed anymore if we set OpenGL 2 as minimum target.
2018-03-27 14:14:46 +02:00
Christoph Oelckers
bb9283a9af
- work on separating DFrameBuffer from DCanvas.
...
2D works in D3D backend, but 3D crashes because not all pointers have been rerouted yet.
2018-03-27 13:50:31 +02:00
Christoph Oelckers
ba799aebbd
- moved locking logic from DCanvas to DFrameBuffer.
...
The software canvases used for rendering camera textures and save pictures in the software renderer do not need this.
2018-03-27 11:12:13 +02: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
a2b9a70835
- Fix crash when reloading a map
2018-03-17 00:09:43 +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
Magnus Norddahl
b8415199c9
Fix culling bug
2017-12-28 11:43:52 -05:00
Rachael Alexanderson
a441cea350
- interpolate particles
2017-12-28 11:36:36 -05:00
Magnus Norddahl
52be9895b7
- Disable softpoly models
2017-12-03 00:23:28 +01:00
Magnus Norddahl
f9fb4a0a17
- Cull back facing triangles for the span drawers
2017-11-29 00:12:15 +01:00
Magnus Norddahl
fae514923a
- Move depth testing out of span drawers
2017-11-28 23:08:28 +01:00
Magnus Norddahl
01fd404133
- Fix palette drawer crash
2017-11-28 22:03:51 +01:00
Magnus Norddahl
e0defb060d
- Add a slightly faster truecolor model drawer
2017-11-28 21:38:02 +01:00
Magnus Norddahl
d43ac8b9ae
- Add model rendering to the software renderer
2017-11-27 23:47:26 +01:00
Christoph Oelckers
836970f012
- moved the matrix code out of 'gl' because the model code also needs it.
2017-11-25 13:51:09 +01:00
Magnus Norddahl
679f42db78
- Remove model GL dependencies except for the matrix classes
2017-11-25 13:00:44 +01:00
Magnus Norddahl
a120a4657e
- Apply viewpoint roll
2017-11-24 22:03:46 +01:00
Rachael Alexanderson
1f00810f40
- re-doubled the model rotation code
2017-11-23 21:27:16 -05:00
Magnus Norddahl
00d7dd0c64
- Implement model rendering in softpoly
2017-11-24 00:39:10 +01:00
Magnus Norddahl
e7e9d1a942
- Fixed bug introduced by removing a little bit too much from the rect drawers
2017-11-22 19:02:25 +01:00
Magnus Norddahl
9052ee6bc8
- Added scaled fuzz to softpoly pal drawer
2017-11-22 18:54:49 +01:00
Magnus Norddahl
f04fca75f7
- Add scaled fuzz to softpoly sse2 drawer
2017-11-22 18:46:45 +01:00
Magnus Norddahl
4e4f94db2f
- Implement newer scaled fuzz in softpoly's truecolor non-sse drawer
2017-11-22 06:32:55 +01:00
Magnus Norddahl
5532266b14
- Fix softpoly sprite positioning bug
2017-11-20 22:43:44 +01:00
Magnus Norddahl
e71e4b6dc8
- Improved transfer heights support in softpoly
2017-09-30 23:58:11 +02:00
Magnus Norddahl
0ee021a972
- Improve transfer heights support in softpoly
2017-09-29 05:23:17 +02:00
Magnus Norddahl
d7164ba4e1
- Don't apply dynamic light to fullbright sprites
2017-09-23 16:22:22 +02:00
Magnus Norddahl
5ffd26abeb
- Add dynamic lights to the non-sse true color drawer
2017-09-23 15:51:40 +02:00
Magnus Norddahl
f3ba92f03c
- Add dynamic light to sprites
2017-09-23 14:14:59 +02:00
Magnus Norddahl
789214200c
- Attenuated lights support
2017-09-23 02:27:39 +02:00
Magnus Norddahl
ca2ef805b8
- Implement the affine part of the dynamic lights in the softpoly TC SSE2 drawer
2017-09-22 00:57:51 +02:00
Magnus Norddahl
94a33229cc
- Remove unused function argument
2017-09-22 00:56:14 +02:00
Magnus Norddahl
dd8a114bb8
- Initial dynamic light support for softpoly
2017-09-21 05:39:16 +02:00
Magnus Norddahl
59ee89b622
- Make the relationship between TriMatrix, TriVertex and ShadedTriVertex more clean
2017-09-21 01:21:21 +02:00
Magnus Norddahl
afab50b489
- Added subdivision coverage testing and an alternative triangle renderer for speed comparison
2017-09-16 15:48:39 +02:00
Rachael Alexanderson
ac566f4a84
- fixed: PlayerSprite in softpoly was not calculated correctly. Sprite will now not go all sorts of crazy places when you enable alternative scaling or forced aspect modes.
2017-09-12 15:56:35 -04:00
Magnus Norddahl
70220fb4cc
- Slightly improve softpoly opaque pass performance
2017-09-12 02:40:09 +02:00
Magnus Norddahl
0924cc3f0f
- Fix crash when switching levels
2017-09-10 17:11:17 +02:00
Magnus Norddahl
4d671fb618
- Improve softpoly culling performance
2017-09-10 16:29:57 +02:00
Magnus Norddahl
5ab0f34aca
- Don't draw 3d floor walls that have zero height or less
2017-09-10 02:18:07 +02:00
Magnus Norddahl
4706c56690
- Fix portals crashing softpoly
2017-09-10 02:17:18 +02:00
Magnus Norddahl
7a1274ab76
- Collect all PVS information first so that processing the individual sectors can be done on multiple threads
2017-09-07 00:34:09 +02:00
Magnus Norddahl
dd0bc02eec
- Convert PolyTranslucentObject to be a base class for all the different forms of translucent objects to be drawn
2017-09-02 18:17:55 +02:00
Magnus Norddahl
23aebaecc6
- Cleaned up some copyright statements
...
- Removed unused cull argument from some functions
2017-09-02 17:14:02 +02:00
Magnus Norddahl
0f0cf7261e
- Remove unused code
2017-09-02 15:02:06 +02:00
Magnus Norddahl
b80bf6930a
- Translucent 3d floor plane support
2017-09-02 02:51:09 +02:00