Christoph Oelckers
7d99552903
- added two new integral types SpriteID and TextureID, both are needed to allow proper serialization as they require something different to be written out than a regular integer.
2016-11-21 13:45:33 +01:00
Christoph Oelckers
7c122d03e9
- renamed all instances of 'float' parameters to 'double', so that the Float32 type can be made usable for structs.
2016-11-21 13:04:27 +01:00
Christoph Oelckers
de2eb18727
- added per-channel access for color variables. However, since they are locally stored in registers, it required a minor bit of fudging for this case.
...
- make sure that a PFunction's implementation is always initialized before starting the code generator.
2016-11-21 12:38:39 +01:00
Christoph Oelckers
393bcf9e91
- extended ExpEmit::RegNum to 16 bits so that it can hold larger values for constant registers.
2016-11-21 10:50:09 +01:00
Christoph Oelckers
188c0ee932
- removed the REGT_NIL check from the PARAM_EXISTS macro, because with the implemented handling of named arguments it isn't possible that REGT_NIL can end up in the parameters without a programming error..
2016-11-21 10:28:06 +01:00
Magnus Norddahl
5e9c9c825d
Add stencil blend mode as apparently the shaded mode uses indices whiles stencil uses mask/alpha..
2016-11-21 05:52:02 +01:00
Magnus Norddahl
e7d64a380a
Fix AABB culling bug
2016-11-21 05:09:53 +01:00
Kyle Evans
3270b20045
Remove non-existant source file
2016-11-20 21:33:23 -06:00
Magnus Norddahl
2ba2dc7611
Change shaded blend mode use srcalpha and destalpha.
...
Fix blending error in add/sub/revsub
2016-11-21 03:49:55 +01:00
Magnus Norddahl
144c7f4139
Flip sub and revsub TC drawers in the old renderer
2016-11-21 01:56:54 +01:00
Magnus Norddahl
29005b5ce6
Compile fix for older versions of LLVM
2016-11-21 01:40:08 +01:00
Christoph Oelckers
e7f6bae83e
- implemented named arguments.
...
- fixed flag CVAR access. As it turned out, OP_LBIT is a bit messy to set up properly when accessing integers that may or may not be big endian, so it now uses a shift and bit masking to do its work.
- used the SpawnPlayerMissile call in A_FireBFG to test named arguments.
2016-11-21 01:32:01 +01:00
Rachael Alexanderson
dadee080e4
- Implemented Wall blend modes
...
- fixed: set color for "shaded" modes - though it's still not yet properly implemented.
2016-11-20 18:36:26 -05:00
Christoph Oelckers
7d8143224e
- restored two accidentally deleted VM instructions.
2016-11-21 00:33:55 +01:00
Christoph Oelckers
0cbd260f96
- replaced all calls to GetCVar with direct CVar accesses.
2016-11-20 23:39:37 +01:00
Christoph Oelckers
8f722a3633
- fixed: FxCVar must free its address register.
2016-11-20 23:26:32 +01:00
Rachael Alexanderson
4ed548a189
- Implemented some sprite blend modes.
2016-11-20 17:07:58 -05:00
Christoph Oelckers
e93961da96
- removed all constant versions of vector instructions. The vector code does not use compound constants so there's no need to have instructions for them.
...
- fixed: The code generator had no good safeguards for exceeding the maximum amount of registers.
All there was was a handful of pitiful asserts which in production code do nothing at all but generate broken output.
Even worse, the VM was hardwired to at most 255 constants per type per function by storing the constant count in a byte! This has been extended to 65535, but since many instructions only have a byte available for the constant index, a workaround had to be added to do a two-instruction setup if larger indices are needed.
2016-11-20 23:00:05 +01:00
Christoph Oelckers
1c2c26eb08
- implemented direct CVar access.
2016-11-20 20:24:39 +01:00
Christoph Oelckers
159f09105e
- used static constant arrays to shorten some code.
2016-11-20 18:34:27 +01:00
Christoph Oelckers
5951a9449c
- added static constant arrays. At the moment they can only be defined inside functions due to lack of dedicated storage inside classes for static data.
...
- added new VM instructions to access the constant tables with a variable index.
- refactored VMFunctionBuilder's constant tables so that they are not limited to one entry per value. While this works fine for single values, it makes it impossible to store constant arrays in here.
2016-11-20 18:00:37 +01:00
Magnus Norddahl
ebd810d843
Fix decal vertical position being wrong
2016-11-20 16:43:13 +01:00
Magnus Norddahl
bd9ec843dd
Add palette version of the blend modes
2016-11-20 16:42:53 +01:00
Christoph Oelckers
bb25c5faaa
- scriptified the remaining Doom weapon code.
...
- implemented method calls from struct instances.
- optimized disassembly of VM call instructions to print the function's name at the end where it is more visible and does not need to be truncated. Also use the printable name for script functions here.
2016-11-20 12:27:26 +01:00
Christoph Oelckers
ab6b2f369e
- fixed: For varargs, not only the type but also the flag of the last specified argument need to be stored for later parameters.
2016-11-20 09:47:46 +01:00
Magnus Norddahl
6761e8639a
Add palette support
2016-11-20 04:06:21 +01:00
Magnus Norddahl
7ac0cace7d
Stop copying the matrix and remove r_triangle
2016-11-20 02:07:55 +01:00
Magnus Norddahl
f8efe394cc
Remove unused code
2016-11-20 01:51:08 +01:00
Magnus Norddahl
845bf93c95
Change triangle full block to use vectored load and store
2016-11-20 01:29:19 +01:00
Christoph Oelckers
3c726aa570
- scriptified A_FirePlasma.
2016-11-20 01:18:21 +01:00
Christoph Oelckers
fdab994fcb
- scriptified the Rocket launcher.
2016-11-20 01:11:01 +01:00
Christoph Oelckers
814493b68d
- scriptified the Super Shotgun.
2016-11-20 00:45:06 +01:00
Christoph Oelckers
af34d82888
- scriptified A_Saw.
...
- implemented multiple-return-value assignment. Due to some grammar conflicts the originally intended Lua-inspired syntax of 'a, b = Function()' could not be done, so it's '[a, b] = Function()'
2016-11-20 00:25:38 +01:00
Rachael Alexanderson
08c4f2ac18
- Added a tool to clear the LLVM cache, if ever there is corruption or it needs rebuilt.
2016-11-19 17:08:08 -05:00
Rachael Alexanderson
fc011e42dd
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-19 12:46:01 -05:00
Christoph Oelckers
74c5659fc5
- explicitly call Destroy in PClass::StaticShutdown because some class type objects were no longer automatically collected.
2016-11-19 18:09:34 +01:00
Christoph Oelckers
7595343aaa
- fixed: Completely empty if statements left the code generator in a broken state.
2016-11-19 18:02:07 +01:00
Magnus Norddahl
b4eb49678a
Cache the optimized bitcode (note: this adds LLVMBitWriter as a dependency)
2016-11-19 17:14:37 +01:00
alexey.lysiuk
c28bcca3f3
Print unknown if release information is unavailable on macOS
...
At least 10.4 Tiger doesn't support required sysctl name
2016-11-19 16:42:16 +01:00
alexey.lysiuk
60ac12be0a
Fixed compilation warnings in Cocoa backend
2016-11-19 16:42:16 +01:00
alexey.lysiuk
3b240b73e9
Fixed endianness issue with saved games
...
See http://forum.zdoom.org/viewtopic.php?t=54272
2016-11-19 16:42:16 +01:00
Christoph Oelckers
0b70df88d8
- scriptified A_FireShotgun and A_FireChaingun.
2016-11-19 16:39:45 +01:00
Magnus Norddahl
d197ebca78
Remove redundant line
2016-11-19 14:07:39 +01:00
Christoph Oelckers
d50da34664
- scriptified the pistol to test if struct member functions work.
...
- made APlayerPawn::PlayAttacking(2) virtual script functions so that mods have better control over player animations. Note that these have no native base so they skip the templated interface for managing virtual functions.
2016-11-19 13:56:29 +01:00
Magnus Norddahl
114fda1ed5
Added missing TranslateAlphaBlend and created a helper function for specifying the translation
2016-11-19 13:32:57 +01:00
Christoph Oelckers
de8cacc465
- for struct member calls an address request is needed.
2016-11-19 12:41:00 +01:00
Magnus Norddahl
17ed585c1f
Fix vsync not working
2016-11-19 12:30:58 +01:00
Christoph Oelckers
25e285b65d
- fixed bad conversion from FString to const char * in state label type cast.
2016-11-19 12:25:53 +01:00
Christoph Oelckers
9fab8380ff
- fixed: FxVMFunctionCall::GetDirectFunction did not check if the function could be called with no arguments.
2016-11-19 12:22:58 +01:00
Christoph Oelckers
f11f020b6c
- allow functions in structs. This is needed for several internal data types like players, sectors, lines, etc.
...
- added a new type 'NativeStruct'. This will be used for types that cannot be instantiated, and is also needed to cleanly handle many internal types that only can exist as reference.
2016-11-19 12:12:29 +01:00