Commit graph

1651 commits

Author SHA1 Message Date
Christoph Oelckers
9d13e6b7ec - gl_colormap.h is no longer needed. 2018-04-27 00:31:00 +02:00
Christoph Oelckers
fc0d673935 - moved the files 2018-04-27 00:28:30 +02:00
Christoph Oelckers
dd524b046e - GLWall is mostly clean, except some smaller things in gl_sky.cpp 2018-04-27 00:22:00 +02:00
Christoph Oelckers
937a2cf69f - abstracted the vertex allocator. 2018-04-26 20:07:56 +02:00
Christoph Oelckers
9a1603b246 - made GLWall ready for multithreaded processing.
* to do this efficiently the amount of required vertices needs to be calculated up-front
* always create the vertices in the data generation pass, not the render pass.
* added synchronisation code to the vertex buffer allocator.

Without multithreading this causes a slight slowdown, due to added processing cost. (Frozen Time bridge scene drops from 47 fps to 44 fps on my test machine.
2018-04-26 19:25:11 +02:00
Christoph Oelckers
6e58f72329 - continued reorganization of GLWall. 2018-04-26 07:07:46 +02:00
Christoph Oelckers
1ae6ad2a82 - moved the legacy member functions of GLWall to FDrawInfo. 2018-04-25 22:58:56 +02:00
Christoph Oelckers
41d5bd76d4 - moved decal rendering from GLWall to FDrawInfo.
First step of turning GLWall into a pure data container.
2018-04-25 22:09:12 +02:00
Christoph Oelckers
306b630de2 - merged the remains of gl_texture.cpp into hw_cvars.cpp.
- eliminated hqresize.cpp's dependency on GL headers.
- cleaned up the logic for CreateTexBuffer so that hqresize.cpp does not need to check for software warped textures anymore.
2018-04-25 21:02:50 +02:00
Christoph Oelckers
ceeb479261 - moved the CVAR definitions from gl/ to hwrenderer/.
- disabled gl_texture_format because in its existing form it is mostly a useless feature.
2018-04-25 20:33:55 +02:00
Christoph Oelckers
85300993af - replaced gl_PatchMenu with an MMX 'ifoption' check. 2018-04-25 19:36:48 +02:00
Christoph Oelckers
cf8ee3130b - gl_clock moved to hwrenderer. 2018-04-25 18:39:54 +02:00
Christoph Oelckers
982776d48d - removed dependencies on GL-API related classes from gl_walls.cpp and gl_sky.cpp
Not complete yet, but at least the GLWall memberes no longer reference GLSceneDrawer and the implementation dependent parts of FDrawInfo.
2018-04-25 14:58:13 +02:00
Christoph Oelckers
81341ac6c5 - Moved all static variables in hw_renderhacks into HWDrawInfo
- removed the profiling code from hw_renderhacks because it was broken in its current state and if still needed needs to be redone differently.
2018-04-25 13:59:14 +02:00
Christoph Oelckers
bc8f47444f - texture precaching also moved to hwrenderer/. 2018-04-25 00:07:46 +02:00
Christoph Oelckers
e24b597ae4 - got rid of the gl_info substructure in FTexture and moved all elements into the main class. 2018-04-24 23:51:19 +02:00
Christoph Oelckers
1a024a9f54 - moved gl_material into hwrenderer/. 2018-04-24 23:39:58 +02:00
Christoph Oelckers
0675315b41 - made FHardwareTexture inherit from an abstract interface to remove all GL dependencies from gl_material.cpp. 2018-04-24 23:06:34 +02:00
Christoph Oelckers
f9a82e66e4 - removed all GL dependencies from gl_material.h. 2018-04-24 22:37:52 +02:00
Christoph Oelckers
5e8a4b96fe - make sure that warping textures never create a warped true color image.
This replaces the old redirection hackery that had to work differently for the legacy render path.
Overriding CopyTrueColorTranslated is far more robust and ensures that no edge cases can reach the GetPixels function, which wasn't the case before.
2018-04-24 21:58:26 +02:00
Christoph Oelckers
c37ff22a05 - removed the intermediate FGLTexture class.
This wasn't serving any real purpose anymore, and all its remaining functionality could be moved to FHardwareTexture
2018-04-24 20:41:52 +02:00
Christoph Oelckers
8d62ebd2f4 - renamed the functions in hw_fakeflat.cpp 2018-04-24 17:52:35 +02:00
Christoph Oelckers
0dcc6ec6d3 Merge branch 'master' of https://github.com/coelckers/gzdoom
# Conflicts:
#	src/CMakeLists.txt
#	src/gl/renderer/gl_renderer.h
#	src/gl/scene/gl_portal.cpp
#	src/gl/scene/gl_scene.cpp
2018-04-24 17:39:03 +02:00
alexey.lysiuk
2ae8d39441 Removed all superfluous #include's
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
Christoph Oelckers
e55b52f356 Moving the files to hwrenderer/ 2018-04-24 11:58:04 +02:00
Christoph Oelckers
dbb1492bf9 Fully separated HWDrawInfo from GL dependencies.
This also required temoporarily moving one small function because in the current state this cannot be done in the API independent part.
2018-04-24 11:52:15 +02:00
Christoph Oelckers
a803b3d393 Split FDrawInfo in two
Done so that the entire gl_renderhacks.cpp file can be moved out of the GL folder.
Not cleaned up yet
2018-04-24 10:30:26 +02:00
Christoph Oelckers
a93799b21f - moved the "unused" folder to the repo's top level. 2018-04-23 22:25:29 +02:00
Christoph Oelckers
5ca1fca8d1 - moved gl_clipper and gl_fakeflat to the hwrenderer folder because both files do not contain anything API specific. 2018-04-23 22:18:13 +02:00
Christoph Oelckers
60567f207c - made CheckViewArea a global function.
This can be put into the common hwrenderer folder but for that it shouldn't be part of the scene drawer.
2018-04-23 22:10:11 +02:00
alexey.lysiuk
9398d602f8 Fixed applying of dymanic lights to models
https://forum.zdoom.org/viewtopic.php?t=60301
2018-04-19 12:50:07 +03:00
alexey.lysiuk
a4a4abe896 Fixed usage of wrong drawlist for lit flats in legacy renderer
https://forum.zdoom.org/viewtopic.php?t=60279
2018-04-17 17:06:58 +03:00
Christoph Oelckers
c1ce6c90ca Moved gl_dynlight to hwrenderer because it does not depend on any direct renderer info. 2018-04-16 09:02:48 +02:00
Christoph Oelckers
3e6f69f64a Renamed two functions 2018-04-16 08:55:13 +02:00
Christoph Oelckers
8a2e52d651 Removed gl_lights_checkside which essentially was just a pointless piece of cruft inherited from ZDoomGL. 2018-04-16 08:45:50 +02:00
Christoph Oelckers
f57c804a5a store shadow map index in the light actor instead of a separate TMap
This frees another file of a direct renderer dependency and generally also should be faster
2018-04-16 08:42:37 +02:00
Christoph Oelckers
88f856d995 - fixed a y/Z mixup with the hardware renderer's vectors.
Why do they have to be different from what the game itself uses...? :(
2018-04-15 23:51:41 +02:00
Christoph Oelckers
dcefa3cd12 - GLSprite done, too. 2018-04-15 19:57:28 +02:00
Christoph Oelckers
ee1d1a29a6 - converted GLFLat list to use pointers as well.
- added copy constructors and assignement operators to GLFlat and GLWall so that they can use memcpy instead of field-by-field copy. This actually increases performance slightly.
2018-04-15 19:00:54 +02:00
Christoph Oelckers
d17216d7dd - fixed the translucent wall splitter, it forgot to copy the original wall before making adjustments to it and its copy. 2018-04-15 17:04:02 +02:00
Christoph Oelckers
e8eb8dd596 - store the wall render nodes as pointers, not as objects.
This is mainly for future-proofing because storing these as objects in an array not only has a negative impact when using multithreading due to longer blocking time for the threads but also makes it hard to cache this data for reuse.
2018-04-15 14:25:42 +02:00
Magnus Norddahl
e15baa21cb - Remove dead code 2018-04-15 12:21:40 +02:00
Christoph Oelckers
515323dcbd - fixed: Rendering a translucent mid texture did not unset the render style for the following bottom texture.
With additive translucency and non-black fog this caused visual errors.
2018-04-15 08:29:40 +02:00
Christoph Oelckers
c03024e1b0 - fixed last commit 2018-04-14 22:34:25 +02:00
Christoph Oelckers
71c8417578 - removed UniqueLineToLines because it wasn't used anywhere. 2018-04-14 21:24:48 +02:00
Christoph Oelckers
790182a2f4 - split GLWall::PutWall in two. 2018-04-14 20:20:43 +02:00
Christoph Oelckers
59a08ce0df - fixed a few warnings and changed the return type of FGLTexture::Bind, because no caller needs the hardware texture. 2018-04-14 12:24:04 +02:00
Christoph Oelckers
0affc119fd - moved hardware independent part of flat vertex data out of GL folder. 2018-04-14 12:05:31 +02:00
Christoph Oelckers
e654a99d39 - changed GLDebug to receive char pointers instead of FStrings.
The most frequent call using this is the regular texture creation function where this results in a pointless allocation and destruction of a temporary string which is easily avoided.
2018-04-14 10:40:11 +02:00
Christoph Oelckers
ad021cc374 - fixed: Hardware camera textures were given a dimension of (0, 0). 2018-04-14 10:26:56 +02:00