Commit Graph

12335 Commits

Author SHA1 Message Date
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
Christoph Oelckers 4c61048278 - moved gl_fixedcolormap into GLSceneDrawer.
This means that one of the most extensively used global variables is gone.
2017-03-12 21:57:39 +01:00
Magnus Norddahl 00f6ed45a2 Make LightVisibility thread local 2017-03-12 20:40:00 +01:00
Christoph Oelckers 61c91f05fc Merge branch '3.0_work'
# Conflicts:
#	src/gl/scene/gl_portal.cpp
#	src/r_plane.cpp
2017-03-12 20:31:34 +01:00
ZZYZX 0176c29ec2 Will not emit OP_SCOPE if self type can be checked at compile time. 2017-03-12 20:27:38 +01:00
ZZYZX 91e83bf3c6 Fixed DECORATE scope for duplicates 2017-03-12 20:27:38 +01:00
ZZYZX bd889cc8f1 Fixed various virtualscope oddities; set scope for DECORATE classes to play. 2017-03-12 20:27:38 +01:00
Christoph Oelckers 438b983ab1 - inlined the 4 remaining short functions of the Plane class and removed gl_geometric.cpp.
# Conflicts:
#	src/CMakeLists.txt

# Conflicts:
#	src/CMakeLists.txt
2017-03-12 20:11:57 +01:00
Christoph Oelckers b52d1c3d50 - some cleanup. 2017-03-12 20:04:46 +01:00
Christoph Oelckers 4cd0d3d454 - removed the Vector class in the GL renderer and replaced all its uses with FVector3.
- optimized the math to get a plane equation from a linedef. The original code used a generic algorithm that knew nothing about the fact that Doom walls are always perfectly vertical. With this knowledge the plane calculation can be reduced to a lot less code because retrieving the normal is trivial in this special case.
- use the SSE2 rsqrtss instruction to calculate a wall's length, because this is by far the most frequent use of square roots in the GL renderer. So far this is only active on x64, it may be activated on 32 bit later as well, but only after it has been decided if 32 bit builds should be x87 or SSE2.

# Conflicts:
#	src/gl/dynlights/gl_dynlight.cpp

# Conflicts:
#	src/g_shared/a_dynlightdata.cpp
2017-03-12 19:59:45 +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 5bcdc7d889 Fix compile error on Linux 2017-03-12 18:56:48 +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
alexey.lysiuk 23130678a1 Fixed compilation errors and warnings in Mac PowerPC target
Tested with GCC 5.2 on 10.4 (32-bit only) and Clang from Xcode 8.2 on 10.12 (64-bit only)
2017-03-12 16:27:02 +02:00
alexey.lysiuk b398c7458c Do not draw crosshair on automap with alternative HUD enabled 2017-03-12 08:57:25 -04:00
Christoph Oelckers e7330cfa03 - all main functions in gl_scene.cpp now belong to the new GLSceneDrawer class. 2017-03-12 12:51:26 +01:00
Christoph Oelckers e4d7d9de8b - moved several more functions from FGLRenderer to GLSceneDrawer. 2017-03-12 12:03:54 +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 64183fc3cd - moved GL texture precaching to gl_texture.cpp. 2017-03-12 01:49:44 +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
Rachael Alexanderson 0f61197bae - Forbade return scripts from triggering on save load. 2017-03-12 00:22:59 +01:00
Magnus Norddahl c79051126e Fix ssao being applied to skybox portals 2017-03-12 00:22:58 +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
Rachael Alexanderson bfc8c614a0 - Forbade return scripts from triggering on save load. 2017-03-11 17:39:57 -05: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 8e2ebe15fe - removed several unused variables from OpenGLFrameBuffer.
- removed the LastCamera logic in RenderView. This code predates the first GZDoom release and apparently was only added because back then R_SetupFrame was not fully compatible with the hardware renderer. Today it is not needed anymore.
2017-03-11 21:10:21 +01:00
Christoph Oelckers 9e70771da3 - Added a check to allow shader storage buffers on GL 4.3 Intel drivers. It doesn't work if GLSL version is set to 4.0 and the feature activated via extension. 2017-03-11 20:14:18 +01:00
Christoph Oelckers 9eae422dab Merge branch 'shadowmaps' of https://github.com/raa-eruanna/qzdoom into 3.0_work
# Conflicts:
#	src/CMakeLists.txt
#	wadsrc/static/language.enu
2017-03-11 19:55:43 +01:00
Christoph Oelckers 28aba3469d - missed 2 includes 2017-03-11 19:18:31 +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
Christoph Oelckers 756e6432c0 - missed a typo. 2017-03-11 18:26:56 +01:00
Christoph Oelckers 7d6cd2ac83 - fixed some issues with the AudioToolboxMIDIDevice interface that got broken by yesterday's changes. 2017-03-11 18:17:08 +01:00
Magnus Norddahl 38ad6ce6b7 Fix ssao being applied to skybox portals 2017-03-11 17:20:06 +01:00
Rachael Alexanderson d868f79413 - fixed: Froze on startup on Linux. 2017-03-11 11:04:37 -05:00
Rachael Alexanderson 81291e6892 - fixed: Clang on Linux compile 2017-03-11 11:01:30 -05:00
Christoph Oelckers 355bbf4829 - removed debug output from recent translation additions. 2017-03-11 14:58:59 +02:00
alexey.lysiuk b8ba2d20e5 Do not draw crosshair on automap with alternative HUD enabled 2017-03-11 14:58:33 +02:00
Christoph Oelckers 72da1fed7e - removed many 'extern "C"' declarations, now that assembly is no longer a concern.
- some concepts about building a RenderViewpoint struct. No actual work yet.
2017-03-11 11:31:09 +01:00
Christoph Oelckers 56986ba843 - removed debug output from recent translation additions. 2017-03-11 09:56:05 +01:00
Christoph Oelckers daacaa961e - removed Windows includes from two more files. 2017-03-10 23:30:30 +01:00
Christoph Oelckers 5eb9587135 - moved the various music format files into their own directory. 2017-03-10 22:26:02 +01:00
Christoph Oelckers 95b181e618 -added missing file. 2017-03-10 22:19:36 +01:00
Magnus Norddahl b407ea2164 Change gl_light_shadowmap to default to being off 2017-03-10 22:12:13 +01:00
Magnus Norddahl 59ec97d2d5 Fix shadow map acne and the attenuate flag 2017-03-10 22:08:55 +01:00
Christoph Oelckers 5cc525cd54 - renamed Timidity++ device source file for consistency. 2017-03-10 21:34:42 +01:00
Christoph Oelckers c8bfef039a - removed dependency on windows.h for music_fluidsynth_mididevice.cpp. It just accesses a single function from Windows so let's manually define this so that this file can use precompiled headers.
- enable precompiled headers for all non-system-specific MIDI devices.
- moved the native Windows and Mac MIDI devices into their respective sections in the project file so that they won't get compiled on the other ones.
2017-03-10 21:18:15 +01:00