Commit graph

300 commits

Author SHA1 Message Date
Christoph Oelckers
d2fa4d0ff9 - most stat stuff done. 2018-03-12 19:33:48 +01:00
Christoph Oelckers
6a02eaa595 - second part of texture fix. 2018-02-15 18:40:23 +01:00
alexey.lysiuk
61979f63c1 Removed last remnants of PowerPC Mac support 2018-02-11 16:35:34 +02:00
Rachael Alexanderson
6aa724a9b4 - add 'gl_riskymodernpath' for computers that worked before the GL >= 3.3 modern path enforcement, since some did, but they seemed to be the exception rather than the rule. 2018-01-03 21:46:04 -05:00
Rachael Alexanderson
1559d74c2c - repaired the video scaling code 2017-12-10 04:22:28 -05:00
alexey.lysiuk
5162e7162e Fixed overbright screenshots with hardware gamma off
When render buffers are used to apply gamma/brightness/contrast screenshots should not use PNG gamma correction
2017-12-06 11:24:10 +02: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
Rachael Alexanderson
69abf095c9 - added vid_cropaspect. This cvar turns vid_aspect into a letterboxing function that will crop the unused sides of the screen away, instead of stretching it. Requires one of the non-legacy OpenGL framebuffers to work. 2017-10-07 20:18:37 -04:00
Rachael Alexanderson
8454e09694 - fixed: I was using the wrong check to determine which renderer was in use. Ooops. It now checks for the actual (active) renderer rather than the state of vid_glswfb 2017-09-12 14:32:29 -04:00
Rachael Alexanderson
1e4d7534c4 - remove gl_legacy_mode check in the glswfb 2017-09-12 08:57:27 -04:00
Rachael Alexanderson
79fc219afd - allow OpenGL 3.0 MESA drivers to use vid_glswfb 2017-09-12 08:18:22 -04:00
Magnus Norddahl
7d21fe6d75 - Fix mouse position being wrong when vid_scalemode is active 2017-07-29 19:26:53 +02:00
Rachael Alexanderson
30087f7cd7 - cleaned up the video scale mode code a bit, in order to increase future flexibility. 2017-07-27 03:05:01 -04:00
David Carlier
64e96c5f46 OpenBSD support 2017-07-25 07:56:19 -04:00
Magnus Norddahl
e06f87cf10 - Added 0.75x scale mode 2017-07-24 08:35:27 +02:00
Magnus Norddahl
18f0f6be4b - Pixel stretch for 320x200 and 640x400 in glswfb 2017-07-23 17:26:55 +02:00
Rachael Alexanderson
2f37c4b272 - added vid_scalemode == 4 to super-sample the screen 2017-07-23 11:24:04 -04:00
Magnus Norddahl
370e53befe - Replace vid_max_width and vid_max_height with vid_scalemode for the GL software framebuffer backend
- Fix a crash if the window was resized before creating a game
- Fix main menu scaling being wrong if the video mode didn't match the unscaled screen size
2017-07-23 04:23:13 +02:00
Magnus Norddahl
c3702ae9e7 Add vid_scalemode support to GL framebuffer 2017-07-23 00:33:56 +02:00
Rachael Alexanderson
0d8b7c55ef - added a grayscale formula selector 2017-07-02 16:45:06 -04:00
Rachael Alexanderson
63da6e70c0 - added a vid_saturation control - works in postprocessing, only. 2017-07-02 16:45:06 -04:00
Christoph Oelckers
c74356a1c0 - made OpenGL 3.3 a requirement for running the modern render path. Also force '-glversion 3' to use the modern render path, even though actual OpenGL 3.0 won't support it.
This will exclude Intel HD3000 and many obsolete drivers for NVidia and ATI which should have been updated long ago.
2017-06-28 17:57:04 +02:00
svdijk
c698f10257 Fix setting of the gl_legacy_mode cvar. 2017-06-05 14:45:24 +02:00
Magnus Norddahl
7acb492852 - Add gl_shadowmap_quality cvar that controls the resolution of the 1D shadow map texture 2017-06-04 00:44:49 +02:00
Magnus Norddahl
7edb75d299 - The mandatory include compile error fix for unix 2017-06-03 18:28:12 +02:00
Magnus Norddahl
d38dae5de8 - Add gpu stat that displays how much time the GPU spent on named GL groups 2017-06-03 18:14:24 +02:00
Magnus Norddahl
b111a708da - Fix compile error and some warnings 2017-05-27 06:27:36 +02:00
Magnus Norddahl
3f991429d1 - Reduce the number of naked new/delete calls in OpenGLSWFrameBuffer 2017-05-27 02:31:15 +02:00
Christoph Oelckers
a4231ffd00 - more handling of some very broken old ATI drivers. 2017-05-19 21:33:48 +02:00
Christoph Oelckers
762ba13cd9 - store the last found OpenGL version in the INI so that modern GL related options can be removed when running old hardware with software rendering. 2017-05-08 19:30:51 +02:00
Magnus Norddahl
81de951abc - Fix missing include 2017-05-06 22:25:18 +02:00
Magnus Norddahl
f083109b51 - Add SSE code to OpenGLSWFrameBuffer::OpenGLPal::Update to workaround a broken auto-vectorizer in GCC 2017-05-06 22:03:32 +02:00
Christoph Oelckers
567c21cdeb - fixed recursion in Dim functions. When the main worker function was renamed to DoDim the Super calls were not fixed for it. 2017-05-06 10:44:29 +02:00
Magnus Norddahl
e68da4cd6b - Fix crash in glswfb if vid_hw2d is toggled off 2017-05-02 22:56:31 +02:00
Christoph Oelckers
47bb29bac6 - check the return value of ogl_LoadFunctions and abort if it indicates failure.
If this happens there is normally something very wrong on the system side so continuing is not advised.
2017-04-14 15:32:04 +02:00
Christoph Oelckers
dc5a5419fc - took DCanvas and all its subtypes out of the DObject tree.
I have no idea why they were even in there, as they intentionally circumvented all GC related features - they declared themselves fixed if prone to getting collected, they all used OF_YesReallyDelete when destroying themselves and they never used any of the object creation or RTTI features, aside from a single assert in V_Init2.

Essentially they were a drag on the system and OF_YesReallyDelete was effectively added just to deal with the canvases which were DObjects but not supposed to behave like them in the first place.
2017-04-14 10:48:18 +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
9f180b29b9 - Remove GL_MAJOR_VERSION check for OpenGL ES as apparently not even this can be done right by driver writers 2017-04-08 00:19:39 +02:00
Magnus Norddahl
73effc70bb - The legacy OpenGL path resets the GLSL version, which in turn makes #version 0 crash the AMD driver. Old stuff that uses the legacy path will not get glswfb acceleration. 2017-04-07 15:45:08 +02:00
Magnus Norddahl
35c35fc26f - Check if glCreateProgram or glCreateShader fails, because apparently AMD found a way to make exactly that happen 2017-04-07 15:27:04 +02:00
Magnus Norddahl
85a9984807 - Add OpenGL ES 3 support to GL renderer 2017-04-06 23:34:42 -04:00
Magnus Norddahl
b7482e10e2 - Detect dinosaur OpenGL and refuse to use it 2017-04-06 23:34:37 -04:00
Magnus Norddahl
e690de25a8 - Use SDL_GL_GetProcAddress on platforms where the SDL is being used. Since SDL initialized OpenGL for us, it is the only reliable way of retrieving proc addresses.
- Check if ogl_LoadFunctions failed and make OpenGLSWFrameBuffer gracefully recover from that
2017-04-06 23:33:56 -04:00
alexey.lysiuk
659f75c84a Avoid duplication of member in OpenGL software framebuffer class 2017-04-02 10:13:25 +03:00
Magnus Norddahl
4268090738 - switch OpenGLSWFrameBuffer to use m_Lock instead of LockCount 2017-04-02 00:47:18 +02:00
Magnus Norddahl
0ed60b8df6 - fix OpenGLSWFrameBuffer::Begin2D 2017-04-01 22:14:04 +02:00
Christoph Oelckers
54764c136d - changed the 2D draw abort check to use a dedicated variable, that gets set in Begin2D and unset at the end of D_Display.
This is really all the extent where 2D draw operations may be allowed. Trying to detect this from other variables is not reliable.
2017-04-01 12:59:58 +02:00
Christoph Oelckers
01b095c911 - added colorization for untranslated fonts. This uses the light color of the vertices. The software rendered 2D code will ignore this infomation.
- added a virtual OnRetrun method to menus.
2017-03-29 21:22:05 +02:00
Magnus Norddahl
d160424aea - added DFrameBuffer::HasBegun2D to allow scripting to test if 2D drawing is active (instead of using IsLocked, which may return false when vid_hw2d is active) 2017-03-29 00:45:53 +02:00
Christoph Oelckers
f3db5f3803 - added a clipping rectangle to DCanvas that can be used independently of DrawTexture calls.
Currently this is only being used for draw operations that are not automap related, i.e. DrawLine, DrawPixel and FillSimplePoly are not subjected to it.
2017-03-28 13:06:24 +02:00