Christoph Oelckers
bbea6e7e3c
Begin2D doesn't need a return type anymore
...
This was to tell the caller that software 2D was in use, but that doesn't exist anymore
2018-04-27 09:58:19 +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
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
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
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
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
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
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
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
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
0affc119fd
- moved hardware independent part of flat vertex data out of GL folder.
2018-04-14 12:05:31 +02:00
Christoph Oelckers
551691f42a
- made FTexture::GetPixels and FTexture::GetColumn non-pure-virtual.
...
With the software renderer not being used for 2D anymore it would be quite annoying if every texture class had to implement these.
If done properly, the SW renderer should actually be forced to dynamic_cast any texture to a FWorldTexture before using this stuff, but that'd be some pointless overhead better saved.
2018-04-08 21:19:57 +02:00
Christoph Oelckers
94e8d59dde
- implemented shader support for rendering the SW renderer canvas with legacy OpenGL.
2018-04-08 13:05:20 +02:00
Christoph Oelckers
b12a6fded9
- added the code for legacy shaders.
...
- force texture filtering for 2D to off when in software rendering.
2018-04-08 12:11:51 +02:00
Christoph Oelckers
0a2c415dbe
- deleted some copypasted but ultimately unused definitions.
2018-04-07 23:52:46 +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
fde87c40d2
- fix crash when in software truecolor mode - the pitch is in pixels, not bytes
2018-04-07 19:56:54 +02:00
Christoph Oelckers
1fc1fac2c2
- added missing header.
2018-04-07 19:41:21 +02:00
Christoph Oelckers
cd00f1fb45
- fixed incorrect check for SW texture recreation.
2018-04-07 18:41:25 +02:00
Christoph Oelckers
211a7f2569
- made the screen blend work for the software renderer.
...
It may use the same calculations as the hardware renderer but must use the 2D drawer for display.
It should be investigated if the hardware renderer can do this as well.
2018-04-07 10:53:20 +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
d474b849a5
- removed the remaining calls from the FRenderer interface from the main game code.
...
This does not work with a setup where the same backend is driving both renderers.
Most of this is now routed through 'screen', and the decision between renderers has to be made inside the actual render functions.
The software renderer is still driven by a thin opaque interface to keep it mostly an isolated module.
2018-04-04 00:21:25 +02:00
Christoph Oelckers
fcc33f0a09
- moved around more stuff from the FRenderer interface.
2018-04-03 22:50:47 +02:00