Commit graph

139 commits

Author SHA1 Message Date
Christoph Oelckers
83e706afe7 - - removed the remains of the old FVertexBuffer class. 2018-10-27 22:04:13 +02:00
Christoph Oelckers
cd8c7a17eb - model vertex buffer converted. 2018-10-27 16:59:13 +02:00
Christoph Oelckers
72bc7693bd - refactored main vertex buffer (but didn't merge with hwrender class yet. 2018-10-27 14:24:47 +02:00
Christoph Oelckers
bc97e585ba - removed some leftover GL2 code. 2018-10-25 01:02:16 +02:00
Christoph Oelckers
cead0194bd - safety commit. To finalize we need a better vertex buffer interface. 2018-10-25 00:49:39 +02:00
Christoph Oelckers
3940f17980 - portals are now completely on the hwrenderer side.
The only thing that still needs to be on the backend side is the one function that manages the rendering.
2018-10-25 00:25:55 +02:00
Christoph Oelckers
9ef5e00cdf - some cleanup and preparation on RenderState interface. 2018-10-20 21:36:50 +02:00
Christoph Oelckers
282fdac660 - made the static portal state a struct inside the Renderer object 2018-06-23 13:25:59 +02:00
Christoph Oelckers
1967165633 - move view and projection matrices to DrawInfo. 2018-06-21 21:02:14 +02:00
Christoph Oelckers
d2309af3d5 Merge remote-tracking branch 'remotes/origin/master' into modern
# Conflicts:
#	src/d_main.cpp
#	src/hwrenderer/scene/hw_weapon.cpp
2018-06-19 19:40:52 +02:00
Christoph Oelckers
46d73e7b4b Pass ticFrac to the model renderer as a parameter
This also removes the rather pointless gl_RenderModel functions because with their two lines of content they can just be placed inline.
2018-06-19 09:18:27 +02:00
Christoph Oelckers
8ab68264c1 - removal of all code to handle OpenGL 2. From this commit on the main build of GZDoom will be OpenGL 3.3 or higher.
# Conflicts:
#	src/gl/renderer/gl_renderer.cpp
#	src/gl/shaders/gl_shader.cpp
#	src/gl/system/gl_framebuffer.cpp
#	src/gl_load/gl_interface.cpp
2018-06-15 21:45:05 +02:00
f74e74ac4b Mirroring should be flipped on HUD models since the view to world space transform already inverts one axis 2018-06-03 14:20:42 +02:00
dea1d0259d Swap front face culling for GL model drawer (CCW should be the default).
Added mirroring handling to software models.
2018-06-03 07:26:55 +02:00
Christoph Oelckers
94d1a73ae8 - pass mirroring info to model drawers.
Actual evaluation only implemented in OpenGL. Not tested yet because the bug report had no testable example.
2018-06-02 13:07:47 +02:00
Magnus Norddahl
31abe3df7e - avoid reusing the same mVBuf pointer for the different renderers as that causes too many problems when switching between them
- remove gl_ prefix for model functions that are no longer GL specific
2018-05-21 17:52:03 +02:00
Christoph Oelckers
c0837f42bd - gl_system.h as well, in particular this has no place in hw_* files. 2018-05-16 23:34:52 +02:00
Christoph Oelckers
401c9ab8ca - moved gl_interface.cpp/h to gl_load folder.
These files are not part of the actual renderer but part of the system code.
This means, for separated modern and legacy GL renderers, there still will only be one set of this, unlike everything else.
2018-05-16 23:21:21 +02:00
Magnus Norddahl
49c9de350f - GetTimeFloat is not renderer specific 2018-05-07 00:40:12 +02:00
Christoph Oelckers
1a024a9f54 - moved gl_material into hwrenderer/. 2018-04-24 23:39:58 +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
5d94af913a - no, we do not want to use global variables to pass parameters around... 2018-04-02 18:13:18 +02:00
Christoph Oelckers
cd64655f97 - removed empty header gl_convert.h 2018-04-01 12:00:51 +02:00
Christoph Oelckers
6438416adb - fixed: The culling mode for translucent models must be inverted when rendering a mirror. 2018-01-21 16:29:40 +01:00
Rachael Alexanderson
505c99b0a8 - fixed: doublize more internal structures, even if they still get converted to float later 2017-12-04 17:39:57 -05:00
Christoph Oelckers
836970f012 - moved the matrix code out of 'gl' because the model code also needs it. 2017-11-25 13:51:09 +01:00
Magnus Norddahl
7bb92812b8 - Move models into r_data 2017-11-25 13:19:00 +01:00
Magnus Norddahl
679f42db78 - Remove model GL dependencies except for the matrix classes 2017-11-25 13:00:44 +01:00
Magnus Norddahl
b25f191e85 - Move shared model code out of the GL renderer 2017-11-25 12:11:57 +01:00
Rachael Alexanderson
5e29b1c89c Merge branch 'newtimercode4' 2017-11-24 14:39:58 -05:00
Christoph Oelckers
ed871c3bf8 Merge remote-tracking branch 'remotes/origin/texman_models' 2017-11-24 19:14:08 +01:00
Rachael Alexanderson
297f00aa4b - fix model rotation some more
- a couple compiler warning fixes
2017-11-23 22:37:07 -05:00
Rachael Alexanderson
1f00810f40 - re-doubled the model rotation code 2017-11-23 21:27:16 -05:00
Rachael Alexanderson
16e6fbf5bf - commit fix - todo: need to re-double/floatify the model timers again 2017-11-23 21:12:50 -05:00
Rachael Alexanderson
fd5b8cdbf7 Merge remote-tracking branch 'origin/master' into newtimercode4
# Conflicts:
#	src/gl/models/gl_models.cpp
2017-11-23 21:08:09 -05:00
Magnus Norddahl
f1e7df542f - Create model renderer abstraction to share more model drawing between renderers 2017-11-24 00:38:52 +01:00
alexey.lysiuk
cf9a364f71 textures for models 2017-11-19 18:02:14 +02:00
Rachael Alexanderson
763222b571 - fixed: high uptime was causing overloads in uint32_t and float structures (float losing loss of precision) - this caused any computer online for more than a few days to experience jankiness with internal animations such as rotations and shader timers. Unfortunately, this sounds the death knell for 32-bit platforms, since uint64_t is now required in time-critical structures, which will hurt performance tremendeously, but 64-bit systems will be unaffected. 2017-11-14 16:15:25 -05:00
Christoph Oelckers
2c65f08011 - more timer cleanup
* store the frame time in the current screen buffer from where all render code can access it.
* replace some uses of I_MSTime with I_FPSTime, because they should not use a per-frame timer. The only one left is the wipe code but even this doesn't look like it needs either a per-frame timer or a timer counting from the start of the playsim.
2017-11-13 00:28:43 +01:00
Christoph Oelckers
e50b012c87 - fixed: Model rotation should use the time of the current frame's start, not the time of the time of processing the particular actor.
Reading the time directly would result in different values for different viewpoints in a scene or for different objects in the same scene which is not how this is supposed to work.
2017-11-12 12:04:11 +01:00
Christoph Oelckers
6bd76d6b5a - fixed compilation in debug mode.
- moved timer definitions into their own header/source files. d_main is not the right place for this.
- removed some leftover cruft from the old timer code.
2017-11-12 09:06:40 +01:00
Magnus Norddahl
307d8931d8 - Switch to C++11 steady clock
- Move the C++11 implementation to d_main
- Remove the platform specific timer implementations
2017-11-12 03:12:22 +01:00
Magnus Norddahl
d4ebe51e83 - Place the HUD model correctly in the world so that shader light calculations work 2017-11-05 15:35:03 +01:00
Magnus Norddahl
cbda6e9427 - Improve dynamic lights for the HUD model 2017-07-26 09:18:05 +02:00
Magnus Norddahl
0c0f0789c2 - Improved dynamic lights on models 2017-07-25 23:00:09 +02:00
Magnus Norddahl
4e14ed4e9e - Hook up model normals 2017-07-25 20:20:12 +02:00
Christoph Oelckers
99a61e74c7 - fixed: The first model ID was always initialized to 0, even if that model wasn't even present in the definition. 2017-05-04 00:37:43 +02:00
Christoph Oelckers
18d6fb7f49 - fixed: USEACTORPITCH in the model code was still using inverted pitch. 2017-04-08 10:24:12 +02: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
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