Commit graph

195 commits

Author SHA1 Message Date
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
Chris Robinson
f353f8b5aa Improved OpenGL profile selection in SDL backend
https://forum.zdoom.org/viewtopic.php?t=56852
2017-11-07 11:05:06 +02:00
raa-eruanna
7d4f8af245 - fixed compile on Linux and (maybe?) Mac 2017-11-01 04:13:10 -04:00
Rachael Alexanderson
d16ad3dcb5 - added I_FriendlyWindowTitle cvar, which takes the current game/mod name and uses it as a default window title. 2017-10-31 19:47:56 -04:00
alexey.lysiuk
557958577b Removed all code needed to support macOS earlier than 10.7 Lion 2017-10-07 15:11:30 +03:00
raa-eruanna
af32edd054 - fixed linux compile 2017-07-29 16:47:10 -04:00
Rachael Alexanderson
e0494b6f13 - fixed an issue with previous commit that undid some scaling code 2017-07-25 08:09:01 -04:00
David Carlier
64e96c5f46 OpenBSD support 2017-07-25 07:56:19 -04:00
Magnus Norddahl
d8c6966917 - Fixed startup crash on Linux 2017-07-25 11:51:15 +02:00
Magnus Norddahl
1a4cf16168 - Fix swtruecolor cvar messing up the chosen video mode 2017-07-23 20:54:03 +02:00
Magnus Norddahl
c3702ae9e7 Add vid_scalemode support to GL framebuffer 2017-07-23 00:33:56 +02:00
Christoph Oelckers
03ed0656e1 - fixed: The frame timer for interpolating the renderer should always take its time from the actual beginning of the frame instead of checking the system timer in real time when rendering starts.
This fixes two issues:

* timer related texture animations are not being recreated multiple times if a scene renders multiple viewpoints (e.g. camera textures or portals.)
* interpolation is smoother when maps have a high think time of multiple milliseconds. A good map to see the difference would be ZDCMP2 which has a think time of 4-5 milliseconds. With the timer taken in real time after the thinkers have run and VSync on this resulted in alternating time slices of 11 and 21 ms between frame interpolations instead of an even 16 as should be done for smooth 60 fps because roughly every second frame was offset by those 5 ms.
2017-07-20 14:20:50 +02:00
svdijk
371a8755c2 vid_glswfb: Prevent defunct windows. 2017-05-20 23:21:51 +02:00
svdijk
b6ef9fae3e SDLGLFB: Implement mouse coordinate scaling for the menus. 2017-05-14 12:12:12 +03:00
Chris Robinson
7ad61a97ed Fix handling long wait times on POSIX's I_WaitVBL
usleep only works for sleeping up to one second. The function is also
deprecated and nanosleep should be used instead.
2017-05-09 23:21:32 +02:00
Rachael Alexanderson
65399bf075 - fixed: Added currentrenderer checks to SDL and COCOA implementations of 'swtruecolor' 2017-04-30 16:35:16 -04:00
Christoph Oelckers
57d703236b - changed Doom source license to GPL in all subdirectories and fixed missing licenses in a few other files. 2017-04-17 12:27:19 +02:00
Christoph Oelckers
cd180d29c7 - block direct use of 'new' for DObjects.
This is to ensure that the Class pointer can be set right on creation. ZDoom had always depended on handling this lazily which poses some problems for the VM.
So now there is a variadic Create<classtype> function taking care of that, but to ensure that it gets used, direct access to the new operator has been blocked.

This also neccessitated making DArgs a regular object because they get created before the type system is up. Since the few uses of DArgs are easily controllable this wasn't a big issue.

- did a bit of optimization on the bots' decision making whether to pick up a health item or not.
2017-04-14 13:31:58 +02:00
Christoph Oelckers
929affa3cb - removed MarkACSThinker.
The global variable holding a pointer to this thinker should be a weak reference to the instance in the thinker chain, there is no need to mark this global variable, as the thinker's lifetime is only determined by the thinker chain.

- committed a few Posix related file the last commit missed.
2017-04-14 10:59:57 +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
df8fa1274a - Oops, forgot to actually disable vid_glswfb in last commit 2017-04-12 03:22:38 +02:00
Magnus Norddahl
96834fa524 - Turn off vid_glswfb, gl_es on Linux ARM and stop saving it in the config file until it fully works 2017-04-12 03:21:43 +02:00
Rachael Alexanderson
3a36ffee35 - vid_glswfb is now true by default in Linux 2017-04-07 09:53:59 -04:00
alexey.lysiuk
28be42675d Fixed build of SDL backend on macOS 2017-03-26 11:49:23 +03:00
Magnus Norddahl
5bcdc7d889 Fix compile error on Linux 2017-03-12 18:56:48 +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
8d6fe24945 cleanup of MIDI code dependencies
* make the critical section local to the respective platform instead of polluting everything with system specific symbols.
* moved system specific class declarations into the source file instead of having them in the global header.

This commit temporarily disables the Windows system device because it cannot be done without polluting the global header and still needs a bit of refactoring.
2017-03-10 19:08:36 +01:00
Christoph Oelckers
9b87a167d7 - replaced a large batch of DWORDs.
Most of those which still rely on ZDoom's own definition should be gone, unfortunately the code in files that include Windows headers is a gigantic mess with DWORDs being longs there intead of ints, so this needs to be done with care. DWORD should only remain where the Windows type is actually wanted.
2017-03-09 20:19:55 +01:00
Christoph Oelckers
d2beacfc5f - except for DWORD, all homegrown integer types are gone - a handful were left where they represent genuine Windows types. 2017-03-09 19:54:41 +01:00
Christoph Oelckers
c008ddaf66 - replaced homegrown SWORD, SBYTE and uint32_t types. 2017-03-09 19:31:45 +01:00
Rachael Alexanderson
536e8fad19 - Make QZDoom GZDoom again! 2017-03-09 11:51:42 -05:00
Rachael Alexanderson
cc9a2e5121 Merge https://github.com/coelckers/gzdoom 2017-03-08 21:25:24 -05:00
Christoph Oelckers
ba0f5a3f94 - most WORD and SWORD are gone. 2017-03-08 18:55:55 +01:00
Christoph Oelckers
8ab562ef13 - the fourth. 2017-03-08 18:55:54 +01:00
Rachael Alexanderson
d84ba4b953 Merge https://github.com/coelckers/gzdoom 2017-03-02 04:22:32 -05:00
Matthew McAllister
0583691670 Add bash-style console shortcuts 2017-03-01 11:33:14 +01:00
Rachael Alexanderson
e644adf3b8 - added "vid_glswfb" CVAR for linux, defaults to false, to allow init without GL framebuffer. This will need to be ultimately finished at a later date. 2017-02-18 02:46:30 -05:00
Rachael Alexanderson
2b8db72cef Merge commit '2234d36c7ac531fd802803216f747f82b58be8c2'
# Conflicts:
#	src/r_main.cpp
#	src/r_plane.cpp
#	src/r_things.cpp
2017-02-15 05:42:57 -05:00
ZZYZX
08f1731ded Added keyboard modifiers for mouse events in SDL backend. 2017-02-03 17:39:26 +02:00
ZZYZX
9bb4cf1c03 User input events first take 2017-02-03 12:28:40 +02:00
Magnus Norddahl
9c4b11b671 Add OpenGL ES support to Linux target and enable it for ARM devices 2017-01-25 07:18:26 +01:00
Magnus Norddahl
eb2b5269f9 Fix linux compile errors 2017-01-25 03:28:11 +01:00
Magnus Norddahl
934f6a88bb Fix compile error 2017-01-24 17:10:28 +01:00
Magnus Norddahl
55d9392fb8 Add fallback code to Linux target so if OpenGL is either unavailable or can't be used it falls back to the old software SDL FB 2017-01-24 01:43:45 +01:00
Rachael Alexanderson
03226e5a0a Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_things.cpp
2017-01-23 00:17:25 -05:00
alexey.lysiuk
da4981ef91 Fixed invisible mouse cursor in SDL backend
See https://mantis.zdoom.org/view.php?id=71
2017-01-22 10:25:37 +02:00
Rachael Alexanderson
05662e5c4d Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_bsp.cpp
#	src/r_plane.cpp
#	src/r_things.cpp
2017-01-09 09:51:06 -05:00
Kyle Evans
8cc52dab5e Fix build on GCC/Clang
Obtained from: kcat/Csonicgo (IRC)
2017-01-09 10:11:13 +02:00
alexey.lysiuk
2f9d5e285d Removed deprecated code from macOS SDL backend 2016-12-27 13:18:33 +02:00
alexey.lysiuk
186c7b8814 Removed deprecated code from macOS SDL backend 2016-12-27 12:56:21 +02:00
alexey.lysiuk
96228fd645 Fixed compilation of non-Windows backends 2016-12-27 12:55:26 +02:00
Rachael Alexanderson
2200f6eda3 - fixed: compile error with SDLGLVideo class macro 2016-12-07 13:21:28 +01:00
Christoph Oelckers
56f67726f0 - seems a Linux file was missed when refactoring the IMPLEMENT_CLASS macros. 2016-12-07 00:54:40 +01:00
Rachael Alexanderson
8a23befd4d - Fixed abstract class macro in SDLGLFB class. 2016-12-06 18:22:36 -05:00
Rachael Alexanderson
a78b713f4b Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/v_video.cpp
2016-12-06 18:19:08 -05:00
Christoph Oelckers
c3fb43db3a Merge branch 'gz-zscript' 2016-12-06 22:47:37 +01:00
Christoph Oelckers
c927aca2a0 Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
# Conflicts:
#	wadsrc/static/zscript.txt
2016-11-30 18:46:23 +01:00
Christoph Oelckers
b0ddba2240 Merge branch 'master' of c:\Programming\Doom-Dev\zdoom_\ into zscript 2016-11-27 16:31:26 +01:00
Rachael Alexanderson
383a59259a Revert "Merge commit 'refs/pull/122/head' of https://github.com/coelckers/gzdoom"
This reverts commit 71b4f57058, reversing
changes made to 449d4963ae.
2016-11-25 21:02:18 -05:00
Rachael Alexanderson
509108f8b6 Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-11-24 23:46:33 -05:00
Christoph Oelckers
66d28a24b8 - disabled the scripted virtual function module after finding out that it only works if each single class that may serve as a parent for scripting is explicitly declared.
Needless to say, this is simply too volatile and would require constant active maintenance, not to mention a huge amount of work up front to get going.
It also hid a nasty problem with the Destroy method. Due to the way the garbage collector works, Destroy cannot be exposed to scripts as-is. It may be called from scripts but it may not be overridden from scripts because the garbage collector can call this function after all data needed for calling a scripted override has already been destroyed because if that data is also being collected there is no guarantee that proper order of destruction is observed. So for now Destroy is just a normal native method to scripted classes
2016-11-25 00:25:26 +01:00
Christoph Oelckers
49605bc109 Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-11-24 09:59:48 +01:00
Magnus Norddahl
4eb32a50e3 Add vid_vsync support to Linux target 2016-11-24 09:59:40 +01:00
Christoph Oelckers
aa4b3bb230 Merge branch 'master' of https://github.com/rheit/zdoom 2016-11-24 09:58:29 +01:00
Edoardo Prezioso
68dc3c4f2d - Preventive fix for future include conflicts.
basicinlines.h is only included in m_fixed.h, while basictypes.h is included only in headers, so it's better to respect this convention. OSX compiles fine also without m_fixed.h, even better.
2016-11-24 09:09:09 +01:00
Magnus Norddahl
7b4df20c51 Merge branch 'linux_vsync' into qzdoom 2016-11-24 07:41:58 +01:00
Magnus Norddahl
33958ca5b2 Add vid_vsync support to Linux target 2016-11-24 07:37:15 +01:00
Magnus Norddahl
ff738de279 Bgra support 2016-11-23 01:01:28 +01:00
Magnus Norddahl
f313bfd2cc Merge branch 'gl_swframebuffer' into qzdoom 2016-11-23 00:56:39 +01:00
Magnus Norddahl
7beac65471 Add Linux support for GLSWFrameBuffer 2016-11-23 00:55:07 +01:00
Rachael Alexanderson
71b4f57058 Merge commit 'refs/pull/122/head' of https://github.com/coelckers/gzdoom
# Conflicts:
#	src/posix/cocoa/i_video.mm
#	src/posix/sdl/hardware.cpp
#	src/win32/hardware.cpp
2016-11-16 01:03:32 -05:00
Rachael Alexanderson
813030efef - Fully implemented CVAR_OVERRIDEGET for vid_renderer from the ZDoom code submission. 2016-11-15 20:03:50 -05:00
Christoph Oelckers
3a2d0e3486 - copied all necessary adjustments from the test branch in the QZDoom repo. 2016-11-15 11:49:27 +01:00
Christoph Oelckers
6e223ebc21 Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
# Conflicts:
#	src/CMakeLists.txt
#	wadsrc/static/actors/doom/doomarmor.txt
#	wadsrc/static/decorate.txt
2016-11-15 11:36:59 +01:00
Christoph Oelckers
196986ae6b Merge branch 'master' of https://github.com/rheit/zdoom 2016-11-15 11:25:42 +01:00
Christoph Oelckers
85ff172ee3 Merge remote-tracking branch 'remotes/origin/master' into zscript 2016-11-14 15:03:14 +01:00
Rachael Alexanderson
87e9ba0f05 Merge branch 'master' of https://github.com/rheit/zdoom 2016-11-12 22:31:05 -05:00
Braden Obrzut
9342898361 - Added support for GTK3 (thanks to "MineyMe" and edward-san)
- Replaced GTK/OS X (note different from Cocoa) clipboard code with SDL clipboard API.
- Removed requirement to link to GTK in order to compile with GTK support.
	- GTK is no longer init'd if the GTK IWAD picker is not used.
	- Our usage of GTK is such that the dynamic loader can work with both GTK2 and GTK3 depending on what's installed.
	- Since we're accumulating a lot of library loaders I've built a generic interface as FModule which replaces TOptWin32Proc and the loaders in the OpenAL and Fluidsynth code.
2016-11-12 18:32:09 -05:00
Leonard2
7dbc4710f1 Add the new argument to all uses of the implement macro 2016-11-09 17:45:55 +01:00
Leonard2
bb2d61de50 Replaced the many implement macros with a single one that takes arguments instead 2016-11-09 17:45:53 +01:00
Magnus Norddahl
f37ee3a024 Add bgra support to OpenGLSWFrameBuffer 2016-10-11 15:43:12 +02:00
raa-eruanna
0bc54cbda4 Fixed SDL backend. This project is now Linux capable! 2016-09-25 17:40:37 -04:00
raa-eruanna
d9e60644b1 Some Linux SDL fixes. Will have to do this for Mac, later, too. 2016-09-21 01:08:00 -04:00
raa-eruanna
842558384a Forgot to set vid_renderer defaults for Linux and Mac. 2016-09-14 07:33:31 -04:00
raa-eruanna
b0029fcd1e Set version to 0.0 (prerelease), set render defaults for true-color software renderer since that is the focus of this project 2016-09-14 06:38:08 -04:00
raa-eruanna
dede94b7e2 Merge branch 'master' of https://github.com/coelckers/gzdoom
# Conflicts:
#	src/posix/cocoa/i_video.mm
#	src/win32/hardware.cpp
#	wadsrc/static/menudef.txt
2016-09-08 03:26:11 -04:00
raa-eruanna
32f758de41 Merge branch 'truecolor' of https://github.com/dpjudas/zdoom
# Conflicts:
#	src/v_video.cpp
2016-09-08 03:19:08 -04:00
Magnus Norddahl
945d5b154a Remove gl_vid_multisample 2016-08-28 18:10:39 +02:00
Christoph Oelckers
abafcd5486 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	wadsrc/static/language.enu
2016-08-28 10:00:19 +02:00
Christoph Oelckers
e04055dbb2 - added multiple message levels for 'developer' CVAR so that the important stuff won't get drowned in pointless notification spam that's of no use to anyone.
- made 'developer' CVAR persist across launches and added some menu entries for it.
- added checks for 'developer' to ACS's CheckInventory function.
2016-08-28 09:55:04 +02:00
alexey.lysiuk
f79c442df5 Fixed compilation of SDL backend 2016-08-24 16:44:40 +03:00
Magnus Norddahl
276fb7dbb2 Add vid_maxfps support for Windows and Linux 2016-08-22 22:00:44 +02:00
Magnus Norddahl
0c2db5447c Save gl_debug in ini file and add support in Linux 2016-08-17 20:57:00 +02:00
Magnus Norddahl
c817979eae Remove GetTrueHeight from GL renderer and concentrate all viewport calculations in SetOutputViewport 2016-08-14 09:05:48 +02:00
Magnus Norddahl
e82c38e4f9 Update copyright and typo fix 2016-07-27 11:15:20 +02:00
Magnus Norddahl
aeb7df09de Added hardware gamma option and improved window handling on Windows 2016-07-27 11:15:19 +02:00
Magnus Norddahl
40b76dc9b0 Apply gamma when using true color output on Linux and Mac 2016-06-11 18:41:56 +02:00
Magnus Norddahl
02a39ef457 Added bgra support to SDL target 2016-06-02 20:05:08 +02:00