Commit graph

778 commits

Author SHA1 Message Date
Sryder
8e18d804fe Draw the final screen texture in the centre with black bars
Only applies when the monitor aspect ratio is different to the game's aspect ratio.
2018-03-17 19:22:14 +00:00
Sryder
7df299d5e4 Match HWR_DrawCroppedPatch to V_DrawCroppedPatch 2018-03-17 13:58:44 +00:00
Sryder
8ed6d9c31c Add the full-screen drawfill functionality to HWR_DrawFixedPatch 2018-03-17 13:26:43 +00:00
Sryder
7308e391a9 Make HWR_DrawFill match V_DrawFill 2018-03-16 19:46:45 +00:00
Sryder
7812c55e57 Match HWR_DrawFixedPatch to V_DrawFixedPatch 2018-03-16 18:08:24 +00:00
Sryder
5c3f203d91 Translucent floors shouldn't write into the depth buffer 2018-03-15 23:59:01 +00:00
Sryder
0742655892 Better fog block colouring
They still aren't perfect, but now they are at least not quite so obviously just translucent polygons over the level. A mixture between partially modulating the background colours and adding the fog colour. Notably white fog blocks look like they're brightening what's behind them.
Additive was also setting noalphatest before, can probably decide that depending on what it needs anyway. I don't think it's currently used anyway.
2018-03-15 23:58:37 +00:00
Sryder
4114464930 Small hacky fix for MD2s and sprites until sorting for walls, floors, and sprites is done
Sorts all translucent sprites and MD2s so they're drawn after all the opaque ones. Fixes most of the observable issues between translucent MD2s and opaque sprites/MD2s.
2018-03-09 09:58:10 +00:00
Sryder
83d4f29367 Fix screenshot functionality in fullscreen in SDL2 2018-03-08 22:28:38 +00:00
Sryder
e6dff75aab Optimise the screen texture setup for SDL2, Post-processor, and wipes.
Only use glCopyTexImage2D when first creating the screen texture, use glCopyTexSubImage2D anytime after that as it does not define a new texture each time.
Flushing of the screen textures has been implemented for when the screen size changes (so that the screen textures don't stay at a wrong size) and the game is closed, I believe they would leave a memory leak before.
2018-03-07 22:55:21 +00:00
Sryder
954850b221 Decrease far clipping plane
The Far clipping plane did not need to be nearly as high as it was, the new value is 32768, which I suspect is about how far software can render before it completely falls apart.
It is desirable to increase the near clipping plane to between 6-10, but it can introduce more issues with close geometry not being drawn when the player or camera is scaled or viewheight is set to MIN in first person view. It would also stop sprites from being drawn ever so slightly too early, but this isn't too much of an issue and isn't too noticeable with those values. Might look into scaling near clipping plane in accordance to camera scale in the future.
The reason for wanting to increase the near clipping plane is because the small value can cause very noticeable Z-fighting where there shouldn't be on older GPU's, usually Intel ones, that don't support 24-bits for the depth buffer.
2018-03-07 00:39:33 +00:00
Sryder
254c53cb3d Merge branch 'master' of git@git.magicalgirl.moe:STJr/SRB2.git into openglquickfixes 2018-03-06 16:11:05 +00:00
Monster Iestyn
795da3cb1d Merge branch 'master' into texture-fixes 2018-03-04 19:20:54 +00:00
Monster Iestyn
4383d1fdd2 added a quick Z_FreeTag function as a shortcut to Z_FreeTags(tag, tag) where both tags are the same 2018-02-14 23:16:16 +00:00
toasterbabe
78bb534550 Fixed the strengths going in the wrong direction of transparency in GL! 2018-02-12 21:31:03 +00:00
toasterbabe
4d5dac0d03 Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into pretty_stuff 2018-02-12 18:59:01 +00:00
toasterbabe
b0888c44bd * Total overhaul of V_DrawFadeScreen(color, strength!
- controllable strengths between 0-31 for COLORMAP lump like before
   - arbitrary colour indices in the palette via TRANSMAP lumps, with strengths 0-9
   - exposed to Lua as v.fadeScreen(color, strength)!
* Remove last vestiges of V_STATICPATCH.
2018-02-12 17:47:31 +00:00
Monster Iestyn
7243355923 Make sure both software and OpenGL ignore patches that are completely out of a multi-patch texture's bounds.
This fixes OpenGL in particular crashing because of such a weird situation.
2018-02-09 17:23:35 +00:00
Monster Iestyn
5533c97c69 Fixed sky-sky thok barriers showing HOM (turns out the floor and ceiling share the same plane, so I've modified the code to account for this)
Additionally, place some optimisations in both software and OpenGL; in particular one has been added for when all of back and front sector (floor and ceiling) is sky: since everything is "open" anyway, we can simply the usual checks involved.
2018-02-07 17:46:01 +00:00
Steel Titanium
361bd92b4a Smoother MD2 interpolation 2018-02-06 14:50:08 -05:00
Monster Iestyn
17bedfbd87 Correct backwards skies for OpenGL too 2018-02-03 21:39:36 +00:00
Monster Iestyn
e95987f4ae Added proper support for upside-down thok barriers, in both renderers
Thankfully it was really just a copy+paste of the code I already tinkered with for the normal ceiling sky based thok barriers, but tweaked for floors instead
2018-02-03 19:48:18 +00:00
Monster Iestyn
7f7b459f69 Cleanup of the code I've tweaked for skies, added SLOPEPARAMS macro to R_StoreWallRange for use in getting seg end z positions 2018-02-03 18:30:49 +00:00
Monster Iestyn
c41b3a186a Pushing all my work to make OpenGL consistent with my changes to software's sky so far 2018-02-01 22:04:04 +00:00
toasterbabe
07b67c3059 * Update V_DrawCroppedPatch and V_DrawFill to support V_PERPLAYER.
* Fix some mistakes in the comments for v_video.h.
2018-01-21 12:56:38 +00:00
toasterbabe
0610a1396c Merge branch 'master' of https://git.magicalgirl.moe/STJr/SRB2Internal.git into pretty_stuff 2018-01-20 22:18:16 +00:00
toasterbabe
2141754e54 V_PERPLAYER. (Hooh boy.)
* Completely redid how splitscreen works, with eventual support for quads. Squish per-player stuff automatically into the right places! Works in GL, associated flag kills V_SPLITSCREEN.
* Seriously update the lives-drawing function for all gametypes, with strings that replace the lives number whenever it's missing (deprecates SKINNAMEPADDING).
* Improved how the nosshack works, alongside many other refactorings.
2018-01-20 22:14:24 +00:00
Monster Iestyn
728d27f2d5 Merge branch 'public_next'
# Conflicts:
#	src/doomdef.h
#	src/sdl12/macosx/Srb2mac.xcodeproj/project.pbxproj
#	src/win32/win_vid.c
2018-01-02 17:32:24 +00:00
Alam Ed Arias
31027d1a2d MSVC: set SubSystem on DLLs to Windows 2017-12-27 19:32:38 -05:00
toaster
7d15afe6fb Merge branch 'md2_interpfix' into 'master'
(re-)fix MD2 interpoleration.

See merge request STJr/SRB2Internal!128
2017-11-02 16:47:24 -04:00
toaster
605e51f6f3 Merge branch 'more_about_menus' into 'master'
More about menus

Closes #72

See merge request STJr/SRB2Internal!122
2017-11-02 16:31:51 -04:00
toasterbabe
b2d43cc56b (re-)fix MD2 interpoleration. 2017-11-02 14:33:56 +00:00
Monster Iestyn
b52c843139 Merge branch 'public_next' 2017-11-01 18:39:25 +00:00
Monster Iestyn
2b1fb67a5f DrawMD2i: change duration and tics to INT32, fix up any related code 2017-10-30 19:12:51 +00:00
toasterbabe
df1e5eb9b7 * Optimise the new static code further.
* Update all the other V_DrawCroppedPatch calls to match the new behaviour.
* Fix the OGL version of V_DrawCroppedPatch to match the new behaviour.

(To justify my changes: It's not exposed to Lua, and the function signature was a mess. This way it's easier to mentally map how it would work.)
2017-10-26 16:59:02 +01:00
Monster Iestyn
0cc8fbdb4e Don't use interpolation code if the frame lasts instantaneously or infinitely
Also removed the + 1 from newtime, since there was never really any need for it. It just offset the interpolation so it went like (1 -> 2] instead of [1 -> 2), so you never saw the base appearance for each frame except at the end of any frames interpolating to it

Changed DrawMD2Ex's duration/tics type to INT32 so -1 comparisons work, probably want to change the signs elsewhere too but this is fine for now
2017-10-24 20:45:55 +01:00
Monster Iestyn
3e595b8f1b Merge branch 'master' into ports-chopping-block 2017-10-14 20:47:04 +01:00
Alam Ed Arias
66201620dd cleanup a few compiler warnings 2017-10-07 13:21:12 -04:00
Alam Ed Arias
c60caa5169 Merge branch 'public_next' into master 2017-10-07 12:46:16 -04:00
Monster Iestyn
d38873854d Now that MiniGL is gone, the 1.2 Params macros will always be defined
ATI_RAGE_PRO_COMPATIBILITY isn't used, and was disabled in r_minigl.c (the only other file that mentioned it) anyway. So let's get rid of support for it!
2017-09-30 17:09:45 +01:00
Monster Iestyn
20709f55b5 Murdered MiniGL (yes it's not a port, but we don't need it anymore anyway) 2017-09-30 17:00:37 +01:00
Alam Ed Arias
6fbdf37b18 Build: support building with clang 5.0 2017-09-30 08:54:17 -04:00
Monster Iestyn
be13f10626 ended NDS 2017-09-29 22:48:14 +01:00
Monster Iestyn
5a16c39af0 XBOX was eXecuted 2017-09-29 19:27:17 +01:00
Monster Iestyn
330399ea9b Dreamcast is gone, so there is no need for KOS_GL_COMPATIBILITY anymore 2017-09-29 18:28:47 +01:00
Alam Ed Arias
5986720789 Build: fixups 2017-09-28 11:01:52 -04:00
toaster
3cc14e3985 Merge branch 'directionchar' into 'master'
Autobrake & decoupling player sprite angle from camera angle

See merge request !69
2017-09-19 07:56:22 -04:00
toaster
ecfeb7b0af Merge branch 'spr2fixes' into 'master'
Sprite2 MD2s and customisable defaulting

See merge request !115
2017-09-19 07:49:04 -04:00
Sryder13
f3a605de6b I need to stop leaving things commented out that are going 2017-09-15 18:03:06 +01:00
toasterbabe
3c785cbe94 * Add Skid SPR2/state in preperation for directionchar.
* Clean up spr2 md2 code.
* Experimented but then commented out some stuff for homing attack.
2017-09-09 22:12:23 +01:00