Magnus Norddahl
a186677092
- removed the 8x8 block drawing code from softpoly
2018-06-03 01:44:56 +02:00
Magnus Norddahl
45625399dc
- fix softpoly line portals
2018-04-23 23:09:11 +02:00
Magnus Norddahl
6e77cb4906
- fix softpoly mirrors
2018-04-22 23:29:39 +02:00
Magnus Norddahl
16a8d71caf
- Simplify the portal code in softpoly somewhat
2018-04-21 15:19:28 +02:00
Magnus Norddahl
4a3f7e8dd5
- fix missing fuzz initialization in softpoly
2018-04-16 01:15:55 +02:00
Magnus Norddahl
21c2d38342
- fix softpoly canvas drawing not restoring all globals properly
...
- add null pointer check on camera
2018-04-15 16:05:29 +02:00
Magnus Norddahl
915f8862a7
- Remove code that seemingly doesn't do anything and really shouldn't be needed
2018-04-13 21:56:34 +02:00
Magnus Norddahl
7e544c66fe
Merge remote-tracking branch 'gzdoom/master' into swmodels
2018-04-13 21:35:21 +02:00
Magnus Norddahl
c4768441b4
- Fix playersprite offset being wrong in softpoly
...
- Remove DFrameBuffer::GetCanvas as it always returned null
2018-04-08 15:49:06 +02:00
Magnus Norddahl
4a730f6dd5
- Fix softpoly ignores status bar displacement
2018-04-08 14:28:48 +02:00
Magnus Norddahl
c15328de2f
- Remove include that shouldn't be there (also caused macOS builds to fail)
2018-04-07 19:35:32 +02:00
Magnus Norddahl
2d51fa5b43
- 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
2018-04-07 15:48:48 +02:00
Christoph Oelckers
b34d7f9e08
- added a software scene drawer to the GL renderer.
...
It still looks like shit and only works on the modern render path but at least the basics are working.
2018-04-07 10:20:59 +02:00
Christoph Oelckers
65e7b6dfaa
- moved the code in gl_data.cpp to better fitting places
...
* the MAPINFO options now get handled in g_mapinfo.cpp and g_level.cpp, just like the rest of them as members of level_info_t and FLevelLocals.
* RecalcVertexHeights has been made a member of vertex_t and been moved to p_sectors.cpp.
* the dumpgeometry CCMD has been moved to p_setup.cpp
2018-04-01 18:45:27 +02:00
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
Magnus Norddahl
a120a4657e
- Apply viewpoint roll
2017-11-24 22:03:46 +01:00
Magnus Norddahl
00d7dd0c64
- Implement model rendering in softpoly
2017-11-24 00:39:10 +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
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
bf38fd57b0
- Replace subsector gbuffer in softpoly with a zbuffer
2017-08-12 15:16:31 +02: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
Magnus Norddahl
31125486ad
- Improve line portal rendering somewhat
2017-05-14 08:55:30 +02:00
Magnus Norddahl
7a2be275af
- Fix interpolator bug in softpoly
2017-05-12 17:47:11 +02:00
Magnus Norddahl
f12c42d8d1
- add fuzz mode to softpoly
2017-04-04 01:11:55 +02:00
Christoph Oelckers
0cbbd8d4b1
Merge branch 'master' of https://github.com/coelckers/gzdoom
2017-03-26 18:41:44 +02:00
Magnus Norddahl
a12f0862c9
- remove softpoly intersection math class
2017-03-26 17:12:20 +02:00
Christoph Oelckers
488fface50
- started port of Doom status bar to ZScript.
...
Fullscreen HUD done with the exception of key and inventory bar. I also used the opportunity to make it a bit more resistant against badly designed inventory icons.
2017-03-25 21:40:17 +01:00
Magnus Norddahl
f178646e1a
- improve sector portals rendering in softpoly
...
- fix a softpoly memory leak and change vertex list to be allocated using the frame allocator
2017-03-24 07:28:28 +01:00
Magnus Norddahl
11e5759913
- detached the poly renderer from the software renderer
2017-03-20 08:28:16 +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
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
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
Magnus Norddahl
00f6ed45a2
Make LightVisibility thread local
2017-03-12 20:40:00 +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
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
Magnus Norddahl
5bae06a3c6
Make RenderScene the work dispatching class
2017-02-04 14:00:21 +01:00
Magnus Norddahl
6f5e720576
Split drawer command queue from drawer threads
2017-02-04 12:38:05 +01:00
Magnus Norddahl
892350ac2e
Add functions to CameraLight
2017-02-03 09:00:46 +01:00
Magnus Norddahl
e90b73539e
Move viewport drawing to its own folder
2017-02-02 15:10:06 +01:00
Magnus Norddahl
ca93d7456a
Change redundant bRenderingToCanvas into a helper function
2017-02-01 21:59:48 +01:00
Magnus Norddahl
93166fa150
Remove r_swtruecolor variable as it is redundant
2017-02-01 21:42:08 +01:00
Magnus Norddahl
e78e76a593
Move r_viewport variables into a class
2017-02-01 16:02:21 +01:00
Magnus Norddahl
ed05a2edd3
Create CameraLight class
2017-01-26 10:22:54 +01:00