Commit graph

14240 commits

Author SHA1 Message Date
Christoph Oelckers
cd94d0927a - fixed a problems with BeginHUD clobbering gST_Y.
The code involved is a total mess and needs some cleanup.
2017-03-28 20:49:06 +02:00
Magnus Norddahl
e8ba1156af - add rect drawers for softpoly's player sprites 2017-03-28 16:46:22 +02:00
alexey.lysiuk
4716b712b1 Fixed compilation issues with isnan()
Need to do it in pure C++ way to avoid C99 macro at all costs
Tested with CI targets, on Debian Jessie using GCC 4.9 and on Ubuntu 16.04 using GCC 5.4
2017-03-28 17:10:06 +03:00
Christoph Oelckers
6816902a09 - forgot to save doom_sbar.txt 2017-03-28 13:27:59 +02:00
Christoph Oelckers
e2e17f575c - added safeguards to all 2D drawing functions to throw an exception if used outside a valid 2D draw context.
This is necessary because the hardware accelerated renderers will hide the problem, but with pure software rendering to a locked hardware surface, like DirectDraw can result in a crash.
Note that ANY mod that gets caught in this did something wrong!
2017-03-28 13:25:17 +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
Christoph Oelckers
c4c2b440fc Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-28 11:00:18 +02:00
Christoph Oelckers
b9485d4edf - ported the Hexen status bar to zscript.
Note that DrawBar with a background texture does not work yet because the clipping rectangle is not done yet.
2017-03-28 11:00:05 +02:00
Magnus Norddahl
d15def7d41 - remove TriVertex::NumVaryings as this did not help on readability at all 2017-03-28 10:52:19 +02:00
Magnus Norddahl
5adf7463cd - support render styles on decals 2017-03-27 21:59:43 +02:00
Christoph Oelckers
bac464f2b7 - added the inventory bar on Heretic's status bar. 2017-03-27 21:30:05 +02:00
Magnus Norddahl
0537e9c1ba - implement all styles for sprites in softpoly 2017-03-27 21:03:51 +02:00
Christoph Oelckers
78095460ac Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-27 21:01:47 +02:00
Christoph Oelckers
a6bf93c624 - implemented the Heretic status bar. 2017-03-27 21:01:40 +02:00
alexey.lysiuk
020c34abfa Added workaround for undefined isnan()
All our continuous integration targets have no problems with C99 isnan() macro but on Ubuntu 16.04 compilation fails
It appeared that some implementation of C++ Standard Library may undefine bunch of C macros to avoid conflicts with own declarations
2017-03-27 17:06:21 +03:00
Magnus Norddahl
e865ba60f5 - support particle styles in softpoly 2017-03-27 11:33:16 +02:00
alexey.lysiuk
bed559f763 Fixed compilation with GCC/Clang
src/g_statusbar/sbar.h:399:23: error: extra qualification on member 'DrawString'
2017-03-27 11:55:17 +03:00
Magnus Norddahl
ad992d2ffd - add support for choosing the particle style in the software renderer 2017-03-27 10:12:57 +02:00
alexey.lysiuk
5f44bc4d5f Fixed crash in line portal setup
https://mantis.zdoom.org/view.php?id=488
2017-03-27 10:55:51 +03:00
Christoph Oelckers
0fdd118906 - change statusbar drawers to use the top left of the virtual screen as origin, not the top left of the actual status bar, to bring this in line with SBARINFO.
The Strife status bar which was still native code had it differently and that was used as the initial guideline.
2017-03-27 09:52:30 +02:00
Rachael Alexanderson
2338fe7e66 Merge commit 'c8eabe5' 2017-03-26 21:57:23 -04:00
Christoph Oelckers
bc95e5180d - moved the BarShader textures into the texture manager so that ZScript can use them. ZScript only knows about TextureIDs, but those require the texture to be handled by the texture manager. 2017-03-27 01:55:47 +02:00
Christoph Oelckers
bb04eea996 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-27 01:06:28 +02:00
Christoph Oelckers
a112b29c43 - implemented the inventory bar. This object is a bit special because it requires a lot of parameters, most of which are easily set to defaults. To make handling easier, most are passed through a container object which does some processing up front.
- finished work on the Doom status bar. I also took the opportunity to fix the layout of the inventory bar which is a bit broken in SBARINFO.
- tuned the selection rules for deciding what creates the status bar, so that the most recent definition that can be found is chosen.
2017-03-27 01:02:10 +02:00
Christoph Oelckers
e791c957d9 - implemented the regular Doom status bar.
The DOOM status bar and HUD are complete, except the inventory bar.
2017-03-26 22:04:58 +02:00
alexey.lysiuk
c8eabe57ff Fixed compilation warning reported by GCC/Clang
src/v_draw.cpp:503:25: warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
2017-03-26 22:10:05 +03:00
alexey.lysiuk
e5d4d9a36a Fixed compilation with GCC/Clang
src/swrenderer/line/r_walldraw.cpp:102:13: error: expected unqualified-id before ‘(’ token
2017-03-26 22:10:05 +03:00
Magnus Norddahl
84e94f2a32 - change softpoly psprite drawing to do exactly what the software renderer does 2017-03-26 18:55:23 +02:00
Christoph Oelckers
0cbbd8d4b1 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-26 18:41:44 +02:00
Christoph Oelckers
08b3c38304 - simplified the parameters of the HUD draw functions by moving all booleans into one flags word and ordering them so that the less likely ones to be used can be made optional.
- got rid of the image list in the Doom status bar. The cost of the texture lookup is mostly irrelevant here so clearer and shorter code is preferrable.
- moved the box fitting code from DrawTexture into the native function to have all coordinate calculations in one place which is necessary to implement proper alignment default handling. Without higher level functions altering positioning the default can be set to automatic alignment determination, i.e. the value's sign decides where something is placed. Of course for special cases this can be overridden.
- use ANIMDEFS to animate the inventory arrow,
2017-03-26 18:41:24 +02:00
Magnus Norddahl
a12f0862c9 - remove softpoly intersection math class 2017-03-26 17:12:20 +02:00
alexey.lysiuk
28be42675d Fixed build of SDL backend on macOS 2017-03-26 11:49:23 +03:00
Magnus Norddahl
ffc90f16ab - Simplify the PolyDrawArgs interface 2017-03-26 10:10:55 +02:00
Magnus Norddahl
7b58eab332 - fix softpoly light visibility bug 2017-03-26 05:28:27 +02:00
Christoph Oelckers
1c71d038dd - Doom keybar is working.
I did not implement an equivalent to SBARINFO's DrawKeyBar. This is too limiting because it needs to consider any possibility. It really is easier to let a mod implement this itself and custom adjust it to its needs.

- fixed some stuff, in particular use DrawInventoryIcon to get smarter icon lookup.
2017-03-25 23:43:19 +01:00
Christoph Oelckers
488fface50 - started port of Doom status bar to ZScript.
Fullscreen HUD done with the exception of key and inventory bar. I also used the opportunity to make it a bit more resistant against badly designed inventory icons.
2017-03-25 21:40:17 +01:00
Christoph Oelckers
3e67a8bafa - let hud_scale act like an override to uiscale, just like con_scale does.
- better handling of ForceScale for the fullscreen HUD that doesn't mess around with CVARs.
- moved the mug shot into the status bar, because this is global state that needs to be shared between different pieces of code which want to display a mug shot.
- SBARINFO should work off the current status bar settings instead of the ones stored in its script object
2017-03-25 18:32:47 +01:00
Rachael Alexanderson
71ad6c9651 Merge https://github.com/coelckers/gzdoom 2017-03-25 11:19:27 -04:00
alexey.lysiuk
093a05b588 Reset OpenGL 2D drawer state fully on each frame
https://mantis.zdoom.org/view.php?id=469
2017-03-25 11:32:39 +02:00
alexey.lysiuk
80f3c1ed81 Mouse input can now be disabled completely in Cocoa backend 2017-03-25 11:04:06 +02:00
Rachael Alexanderson
f5e1502bd7 Merge https://github.com/coelckers/gzdoom 2017-03-25 03:53:25 -04:00
Magnus Norddahl
04057b8b91 - implement the blending modes for palette mode in softpoly 2017-03-25 08:38:27 +01:00
Rachael Alexanderson
c5805ddd6e - removed another vestigial #define NO_SSE 2017-03-25 01:46:41 -04:00
Rachael Alexanderson
2c3d867946 - fixed invalid variable reference on ARM 2017-03-25 01:40:13 -04:00
Rachael Alexanderson
f1ce0f1136 - Removed redundant #ifdef __arm__ #define NO_SSE from 2.5D drawers 2017-03-25 01:39:09 -04:00
Rachael Alexanderson
2d035a39b4 - fixed: Pushed -DNO_SSE for ARM processors unconditionally. We don't support SSE whatsoever on ARM so all code should always be aware of it. 2017-03-25 01:15:24 -04:00
Magnus Norddahl
af5355c69d - fix SSE intrinsics being used on arm 2017-03-25 06:14:19 +01:00
Rachael Alexanderson
733cf1acc5 Merge https://github.com/coelckers/gzdoom 2017-03-25 00:26:06 -04:00
Christoph Oelckers
bdb9275f8c - made the mugshot accessible to ZScript.
Note that there is no direct access, all this exposes is a single function to get the current face's texture which then can be drawn using the existing functions.
2017-03-25 01:22:42 +01:00
Christoph Oelckers
2d17594f6f - converted the Strife status bar to use the new HUD specific draw functions so that it also can benefit from coming changes.
Note that the pop screens are special because they are not subject to scaling - they will always be drawn with the current resolutions clean scale. As a result they cannot use the HUD drawers but instead continue to use the low level draw functions directly.
2017-03-25 00:35:19 +01:00