Commit Graph

15755 Commits

Author SHA1 Message Date
Christoph Oelckers aa32acae25 - a bit of code reordering for adding direct native entry points.
- offloaded key list generation for alternative HUD to non-UI parts.

This change also revealed a problem with handling empty sprites in the key list so this got fixed, too.
2018-12-01 14:18:28 +01:00
Magnus Norddahl 83c011740c - fix augmentation length bug 2018-12-01 14:14:28 +01:00
Magnus Norddahl b428136866 - unwind data is now working on macOS 2018-12-01 12:46:35 +01:00
Christoph Oelckers a7e472b4b3 - moved all exports from class Font to vmthunks.cpp and gave them direct native entrypoints.
- changed PARAM_STRING to use the passed string by reference instead of by value. The 3 instances where passing by value was needed now use PARAM_STRING_VAL.
2018-12-01 10:30:50 +01:00
Christoph Oelckers 03015896d6 - seems there are two versions of Hacx's MAP05. 2018-12-01 10:30:50 +01:00
Christoph Oelckers ea3d26aafd - fixed character to int conversion for UTF8-characters. 2018-12-01 10:30:50 +01:00
alexey.lysiuk 8d9b4f5a17 - previous fix attempts done right 2018-12-01 09:44:14 +02:00
SanyaWaffles 6dd73e43fd Attempts to fix errors introduced by merging of asmjit branch and wea… (#649)
* Attempts to fix errors introduced by merging of asmjit branch and weapons scripting branch

* This didn't work. The others should work though.

* fix scriptutil.cpp:(.text+0x18d): undefined reference to `PClass::FindActor(FName)'

* Attempt to fix compilation on macOS
2018-12-01 07:31:25 +01:00
Magnus Norddahl c41603c171 - implemented unwind data on Unix - does it work? no idea, there's no easy way to tell when the debugger doesn't support the interface.. 2018-12-01 01:14:15 +01:00
Christoph Oelckers 42b9a41421 - removed the longjmp based exception catch/rethrow mechanism and instead force-terminate in case a user exception is thrown while the VM is executing JITed code on a non-Windows system
On Windows none of this is needed, because we can generate a proper unwind frame for the JITed functions, but even on Linux, it would require manual additions to each single piece of native code that ever gets called from inside a JIT compiled function.
This is an utterly prohibitive proposition because it makes direct native calls a virtual impossibility
So, in order to get the thrown error properly presented both I_Error and ThrowAbortException will now forward to I_FatalError if it is called from inside a JIT context.
2018-11-30 21:30:14 +01:00
Christoph Oelckers b26b16e4b7 Merge remote-tracking branch 'remotes/origin/master' into asmjit 2018-11-30 21:29:12 +01:00
Christoph Oelckers a0c0e8bdfe Merge remote-tracking branch 'remotes/origin/weapon_scriptification' into asmjit
# Conflicts:
#	src/g_inventory/a_pickups.cpp
2018-11-30 21:28:44 +01:00
Christoph Oelckers 32f7e9a9ea -add a dummy definition for vm_jit in 32 bit. 2018-11-30 20:50:31 +01:00
Christoph Oelckers 62f649b4f6 - fixed: the direct native GetTextureSize used the wrong calling convention. 2018-11-30 19:28:24 +01:00
Player701 b79e3f8904 - Added a flag to make bouncing objects disappear when hitting sky surfaces 2018-11-30 18:53:57 +01:00
Christoph Oelckers 8e46cb3a21 Merge remote-tracking branch 'remotes/origin/master' into asmjit 2018-11-30 18:49:28 +01:00
Christoph Oelckers 00d97197db - removed deprecated method to retrieve OpenGL extensions
Since we force a core profile and this was explicitly disabled for core profiles, this code has no use anymore
2018-11-30 17:16:21 +01:00
Christoph Oelckers a3df67bdd4 - let FOBJModel::ParseVector actually use its templated size parameter
In this setup the array can be statically updated because the size is always constant per instantiation
2018-11-30 17:12:36 +01:00
Christoph Oelckers 25ad71a113 - Changed a few allocations into usin TArrays
S_SoundCurve in particular looked like a candidate for leaking memory.
2018-11-30 17:07:42 +01:00
Christoph Oelckers 024870ba11 - merged DCanvas and DSimpleCanvas and use a TArray to hold its memory. 2018-11-30 17:02:39 +01:00
Magnus Norddahl cb1153272a - fix native call crash and assertion error 2018-11-30 16:55:22 +01:00
Magnus Norddahl 6e598274f7 - hook up unix unwind info (still not working) 2018-11-30 02:06:40 +01:00
Player701 927d333063 - Exported AActor::Grind to ZScript. 2018-11-29 23:46:47 +01:00
Magnus Norddahl b1bb82fe01 - fix WriteSLEB128 2018-11-29 19:44:26 +01:00
Christoph Oelckers df6fe563c3 - cleaned up the sound options menu.
There were still some leftover definitions from FMod and far too many things were at the top level. Anything non-essential has been moved to the "Advanced Sound Options" submenu and the pointless sound backend switch has been removed entirely.
2018-11-29 19:42:53 +01:00
Magnus Norddahl 5d052fc565 - fix compile errors 2018-11-29 19:32:08 +01:00
Magnus Norddahl 37e33c6609 - implemented unwind info for Linux and macOS - now to fix the bugs that cannot be fixed when the documentation is as useless as it is for those platforms.. 2018-11-29 18:45:55 +01:00
Christoph Oelckers 19df662348 - fixed code generation for dummy results. 2018-11-29 20:15:53 +01:00
Christoph Oelckers ef2c433a8b - fixed declaration of ChangeStatNum. 2018-11-29 20:15:24 +01:00
Christoph Oelckers b8394b2f16 - fixed compilation warnings. 2018-11-29 20:11:28 +01:00
Christoph Oelckers 717912c88c - direct native methods for dynamic arrays. 2018-11-29 20:09:41 +01:00
Christoph Oelckers 3ecda35379 Add direct native calls to TexMan's native methods. 2018-11-29 19:41:03 +01:00
Christoph Oelckers ba2b9430f8 ChangeStatNum must not be virtual
Overriding this would make the engine vulnerable to  badly behaving mods. Intercepting this and altering the behavior can render the entire game inoperable, especially if more internal code gets scriptified later. So even at the risk of breaking some carelsss mods this must be blocked.
2018-11-29 19:00:25 +01:00
Christoph Oelckers 3acd9c8116 Made all virtual base functions for the event handler scripted
This was by far the largest block of native virtuals, and they were only native to be able to allow checking if the event was implemented for the current handler. This can easily be done by looking at the byte code, just like VMCall also does but in turn it removes more than half of the existing native virtuals from the interface.
2018-11-29 18:46:28 +01:00
Magnus Norddahl 110b982031 - fix compile error on systems with no SSE support 2018-11-29 13:08:46 +01:00
Christoph Oelckers 762a100d60 Direct native functions for SBarInfo
Mostly pointless because they all get used only once and aren't even virtual overrides, but I only realized this after everything was complete…
2018-11-29 12:20:24 +01:00
Christoph Oelckers 53d59559cd Added direct native functions to the remaining content of vmthunks.cpp 2018-11-29 17:55:56 +01:00
Christoph Oelckers 62efe11a85 - more direct native functions for sector utilities. 2018-11-29 17:38:58 +01:00
Magnus Norddahl e3c13fe193 - Emit DW_CFA_advance_loc and DW_CFA_def_cfa_offset codes 2018-11-29 02:37:58 +01:00
Christoph Oelckers f43f0b9bd4 - added a few more direct native entry points. 2018-11-29 00:27:09 +01:00
Magnus Norddahl fa185693d2 - _mm_rcp_ps may be faster but its precision is too poor 2018-11-29 00:17:40 +01:00
Magnus Norddahl 4ee7cf2de1 - forgot to set the light level 2018-11-29 00:03:50 +01:00
Magnus Norddahl d62a26a177 - use psprite renderstyle on HUD models 2018-11-29 00:01:16 +01:00
Christoph Oelckers d3ff657231 - added a direct native function for NextHighestCeilingAt to test multiple return values. 2018-11-28 21:40:56 +01:00
Magnus Norddahl 5ae456d059 - fix typo in macro 2018-11-28 19:59:35 +01:00
Christoph Oelckers a5a9ab07af Merge branch 'master' into asmjit 2018-11-28 18:44:42 +01:00
Christoph Oelckers 9c398cd343 - fixed: P_Recalculate3DFloors may not be called before the vertex buffer has been set up.
Since this function creates dynamic copies for 3D floors that need to be split it requires the vertex buffer index to be set up.
In older versions this did not produce errors because there was a fallback render path that was less efficient.
Now with that fallback removed this resulted in temporary 3D floors being created without valid vertex data.
2018-11-28 18:42:37 +01:00
Christoph Oelckers 7ff0cd70ad - explicitly declare the constructor and destructor methods of FCheckPosition so that they get a working prototype. 2018-11-28 17:33:37 +01:00
Magnus Norddahl 232c24e4de - add .eh_frame generation code except for building the actual CIE and FDE instructions 2018-11-28 13:10:31 +01:00
Christoph Oelckers fc7ca39927 - allocate storage for all of a function's return values 2018-11-28 00:24:50 +01:00