Magnus Norddahl
ee443b6fb6
- disable software models
2018-04-14 22:22:40 +02:00
Magnus Norddahl
c3bd93a85c
Merge remote-tracking branch 'gzdoom/master' into swmodels
2018-04-14 21:20:05 +02:00
Christoph Oelckers
870890d8cf
- r_clearcolor did not consider that the base palette's alpha is not set.
2018-04-14 09:33:45 +02:00
Christoph Oelckers
cef6ddca6e
- fixed: Rendering to a camera textures clobbered the main render target for the software renderer.
2018-04-14 08:09:40 +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
Christoph Oelckers
df4f435952
- merged vid_renderer, swtruecolor and r_polyrender into one CVAR to reduce menu clutter.
...
- with renderers freely switchable, some shortcuts in the 3D floor code had to be removed, because now the hardware renderer can get FF_THISINSIDE-flagged 3D floors.
- changed handling of attenuated lights in the legacy renderer to be adjusted when being rendered instead of when being spawned. For the software renderer the light needs to retain its original values.
2018-04-07 23:30:28 +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
bc485a7f2c
- moved a large portion of gl_textures.cpp into the main files for the implementing classes.
...
The old organization made sense when ZDoom still was a thing but now it'd be better if all pure data with no dependence on renderer implementation details was moved out.
A separation between GL2 and GL3+4 renderers looks to be inevitable and the more data is out of the renderer when that happens, the better.
2018-03-31 19:20:59 +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
cff5f0e3c7
- removed DFrameBuffer's locking mechanism.
...
In its current form this is quite useless. What's really needed is to require a lock on the RenderBuffer for the 3D scene, but since this is not needed for the 2D stuff anymore it can be done far simpler.
2018-03-27 16:48:33 +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
Magnus Norddahl
a8b79a28c8
- Disable model rendering in the software renderer
2017-11-29 22:18:21 +01:00
Magnus Norddahl
d43ac8b9ae
- Add model rendering to the software renderer
2017-11-27 23:47:26 +01:00
Magnus Norddahl
9c3361dfe2
- Fix stat fps to write something slightly more useful
2017-06-27 21:15:26 +02:00
Magnus Norddahl
f34ededdef
- Improved fuzz rendering in software renderer by scaling it relative to 320x200
2017-06-25 00:35:15 +02:00
Magnus Norddahl
e27e89b57d
- Make sure a hung worker thread always crashes the application
2017-05-21 12:03:12 +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
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
11e5759913
- detached the poly renderer from the software renderer
2017-03-20 08:28:16 +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
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
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
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
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
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
Magnus Norddahl
388c511e11
Fix portal sprite clipping bugs
2017-02-09 05:42:15 +01:00
Magnus Norddahl
58495ea714
Renamed Clip3DFloors to Clip3D to fix gcc compile error
2017-02-06 16:04:27 +01:00
Magnus Norddahl
d1cbb76b63
Only render player sprites on main thread
2017-02-04 21:00:05 +01:00
Magnus Norddahl
beae9a3dc7
Stop using validcount for sprites
2017-02-04 20:32:06 +01:00
Magnus Norddahl
cfe4c55973
Remove software renderer internals from F3DFloor
2017-02-04 19:13:56 +01:00
Magnus Norddahl
8ad132b64f
Execute scene slices on worker threads
2017-02-04 16:45:36 +01:00
Magnus Norddahl
d9e545a519
Hook up thread slices and eliminate some statics hiding in misc functions
2017-02-04 15:51:54 +01:00
Magnus Norddahl
f50532af8a
Reorder scene setup to do the stuff that can't be threaded first
2017-02-04 14:20:58 +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
45f623faf4
Move frame memory allocator into RenderThread
2017-02-04 02:50:52 +01:00
Magnus Norddahl
627a388d57
Move renderer singletons into a RenderThread class
2017-02-04 00:25:37 +01:00
Magnus Norddahl
da346427d3
Change draw segment list to use TArray
2017-02-03 21:11:55 +01:00
Magnus Norddahl
892350ac2e
Add functions to CameraLight
2017-02-03 09:00:46 +01:00