Commit graph

367 commits

Author SHA1 Message Date
raa-eruanna
0df2779004 - fixed mac compile(hopefully?) 2017-07-29 17:03:18 -04: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
Rachael Alexanderson
e42500c07a Revert "- ported Linux crash fix to Mac"
This reverts commit 6a49251722.
2017-07-25 07:34:26 -04:00
Rachael Alexanderson
6a49251722 - ported Linux crash fix to Mac 2017-07-25 06:55:29 -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
alexey.lysiuk
c6351825b8 Enable Core Profile on macOS only when OpenGL 3.3 is available 2017-07-13 18:05:58 +03:00
alexey.lysiuk
58b348e75a Skip autogenerated mouse move events in Cocoa backend regardless of mode 2017-07-08 13:36:55 +03:00
alexey.lysiuk
9292b23bb4 Restore mouse position when entering GUI capture mode in Cocoa backend 2017-07-08 12:46:38 +03:00
alexey.lysiuk
925274ca0c Added name of upcoming macOS to OS detection 2017-07-01 12:29:25 +03: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
371a8755c2 vid_glswfb: Prevent defunct windows. 2017-05-20 23:21:51 +02:00
Christoph Oelckers
9fc309d5b5 - stop the music when processing a fatal error. 2017-05-19 12:20:33 +02:00
svdijk
b6ef9fae3e SDLGLFB: Implement mouse coordinate scaling for the menus. 2017-05-14 12:12:12 +03:00
Chris Robinson
092b339c8f Replace usleep with nanosleep for macOS too 2017-05-10 09:44:54 +02: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
Rachael Alexanderson
dfa5a3cd07 - Changed cocoa backend's s_currentRenderer to match PC version's 'currentrenderer' to address a possible Mac compilation issue. 2017-04-30 16:21:11 -04:00
alexey.lysiuk
e78d88094d Removed obsolete timer workaround from Cocoa backend 2017-04-23 17:35:35 +03:00
alexey.lysiuk
6fb1689d02 Disabled truecolor software renderer on PowerPC by default
Performance on such old hardware is not acceptable
2017-04-23 17:35:35 +03:00
alexey.lysiuk
ab8759049d Enabled GLSW framebuffer in Cocoa backend by default
Added fallback to generic Cocoa implementation if it's not available (i.e. without OpenGL Core Profile support)
Value of vid_glswfb CVAR is now saved to configuration file
2017-04-23 17:35:35 +03:00
alexey.lysiuk
bd74cf85a4 Added selection of frame buffer implementation in Cocoa backend
Added vid_glswfb CVAR but set it to false by default for compatibility reasons
2017-04-23 14:49:36 +03: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
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
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
63f85f6b07 Fixed compilation of Cocoa backend
Use the same member names in framebuffer class for all backends
2017-04-02 10:11:41 +03:00
alexey.lysiuk
36ad485edd Proper default value for GL framebuffer lock in Cocoa backend
No more error when running with +map command line parameter with classic HUD:
> VM execution aborted:  Attempt to draw to screen outside a draw function
> Called from BaseStatusBar.DrawImage [Native]
> Called from DoomStatusBar.DrawFullScreenStuff at gzdoom.pk3:zscript/statusbar/doom_sbar.txt, line 140
> Called from DoomStatusBar.Draw at gzdoom.pk3:zscript/statusbar/doom_sbar.txt, line 41
2017-04-01 13:16:31 +03:00
alexey.lysiuk
28be42675d Fixed build of SDL backend on macOS 2017-03-26 11:49:23 +03:00
alexey.lysiuk
80f3c1ed81 Mouse input can now be disabled completely in Cocoa backend 2017-03-25 11:04:06 +02:00
Christoph Oelckers
61c91f05fc Merge branch '3.0_work'
# Conflicts:
#	src/gl/scene/gl_portal.cpp
#	src/r_plane.cpp
2017-03-12 20:31:34 +01:00
Magnus Norddahl
5bcdc7d889 Fix compile error on Linux 2017-03-12 18:56:48 +01:00
alexey.lysiuk
23130678a1 Fixed compilation errors and warnings in Mac PowerPC target
Tested with GCC 5.2 on 10.4 (32-bit only) and Clang from Xcode 8.2 on 10.12 (64-bit only)
2017-03-12 16:27:02 +02: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
fec958cc0a - finally managed to get rid of the DWORD type.
This one was particularly nasty because Windows also defines a DWORD, but in Windows it is an unsigned long, not an unsigned int so changing types caused type conflicts and not all could be removed.
Those referring to the Windows type have to be kept, fortunately they are mostly in the Win32 directory, with a handful of exceptions elsewhere.
2017-03-10 19:46:22 +01: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
a4710bcdb0 - did a bit of header cleanup to reduce the dependency on dobject.h. 2017-03-09 23:30:42 +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
5dad292c56 Merge remote-tracking branch 'remotes/gzdoom/master' 2017-02-15 05:43:15 -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
alexey.lysiuk
dd0f55e8d8 Fixed compilation of Cocoa backend 2017-02-14 22:02:47 +02:00
Christoph Oelckers
2234d36c7a Merge branch 'thereisnospoon' of https://github.com/jewalky/gzdoom
# Conflicts:
#	src/dobject.h
2017-02-14 19:10:02 +01:00
Rachael Alexanderson
6ed46921c8 Merge https://github.com/coelckers/gzdoom 2017-02-09 11:21:01 -05:00
alexey.lysiuk
7c8babceba Extended mouse wheel handling in Cocoa backend
Horizontal scrolling using mouse wheel with Shift keyboard button hold is no longer ignored
2017-02-09 16:07:28 +02:00
ZZYZX
b833f5a852 Merge remote-tracking branch 'gz/master' into thereisnospoon 2017-02-04 10:27:37 +02:00
Rachael Alexanderson
ebb8da563a Merge https://github.com/coelckers/gzdoom 2017-02-04 02:56:18 -05:00
alexey.lysiuk
c6e42d6fa0 Added handling of modifier keys for mouse events in Cocoa backend 2017-02-03 22:01:34 +02:00
alexey.lysiuk
f04b0d129d Removed useless assignment in Cocoa backend 2017-02-03 21:56:14 +02:00
ZZYZX
03f7c39ea7 Fixed mouse input in event handlers. Added RequireMouse field in event handler to signify that native mouse should be turned on for certain handlers. 2017-02-03 20:34:34 +02:00
ZZYZX
08f1731ded Added keyboard modifiers for mouse events in SDL backend. 2017-02-03 17:39:26 +02:00
ZZYZX
6a0103a746 Merged p_setup conflict 2017-02-03 13:02:44 +02:00
ZZYZX
9bb4cf1c03 User input events first take 2017-02-03 12:28:40 +02:00
Christoph Oelckers
1515ab8f4a - removed the long broken and obsolete PlayMovie code. 2017-02-02 23:21:21 +01:00
Rachael Alexanderson
4e45ea2300 Merge https://github.com/coelckers/gzdoom 2017-01-31 23:04:56 -05:00
alexey.lysiuk
b12c8a8f79 RDTSC-based glcycle_t for macOS
Time profiler implementation is now closer to Windows version
2017-01-31 16:00:14 +02:00
alexey.lysiuk
1cdfcb4935 RDTSC-based cycle_t for macOS
Windows and macOS now share most of related code
Old implementation using mach_absolute_time() was more precise (at least in theory) but too costly
2017-01-31 15:57:47 +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
Magnus Norddahl
1d941c9839 Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_plane.cpp
#	src/win32/zdoom.rc
2017-01-13 13:21:10 +01:00
alexey.lysiuk
4001e7e6bd Fixed compilation with macOS SDK earlier than 10.7 2017-01-13 10:52:35 +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