Commit graph

195 commits

Author SHA1 Message Date
Monster Iestyn
ef230df2c6 Ensure file is closed whenever MD2 reading errors happen 2018-10-27 18:53:38 +01:00
Monster Iestyn
2eb531cf20 Add MD2_INDENT and MD2_VERSION so we can cleanly check that it's a valid MD2 from magic number/version 2018-10-27 18:53:18 +01:00
mazmazz
bf93dace76 Merge remote-tracking branch 'public-gitlab/master' into public-music-cleanup 2018-10-19 22:04:26 -04:00
Monster Iestyn
6fb3dcb52f Remove unused sscount variable
(it's only set to 0 in software, and only ++'d in OpenGL, what kind of sense does that make?)
2018-10-11 19:59:26 +01:00
toaster
2ad2cbcc0a Weather is already run client-side. What if we ran it render-side, for major performance gains? This commit will answer all your questions - and more! 2018-10-07 15:00:58 +01:00
mazmazz
dcf0dd70fd nodigimusic nomusic nosound refactor other targets
(cherry picked from commit 86f151db654beb14e8d6893cdff2adaa965e8e4b)
2018-09-14 10:35:56 -04:00
Monster Iestyn
1e4e0006cb Merge branch 'opengl-fof-lowerunpegged' into 'master'
OpenGL: FOF walls + Lower unpegged

See merge request STJr/SRB2!258
2018-07-11 16:36:26 -04:00
Monster Iestyn
c8aaad253d Merge branch 'opengl-projectsprite-fix' into 'master'
OpenGL HWR_ProjectSprite fix

See merge request STJr/SRB2!255
2018-07-11 16:15:42 -04:00
Monster Iestyn
71a40a8125 Merge branch 'md2-fopen-error' into 'master'
More helpful error messages

See merge request STJr/SRB2!243
2018-07-06 14:38:59 -04:00
Monster Iestyn
5758beb6b2 Merge branch 'md2-smoother-interpolation' into 'master'
Smoother MD2 interpolation

See merge request STJr/SRB2!224
2018-07-06 14:38:37 -04:00
GoldenTails
cdaadc0037 Merge remote-tracking branch 'STJrSRB2/master' into patch-1 2018-07-05 16:44:34 -05:00
Steel Titanium
6d1a8703c7 Merge remote-tracking branch 'upstream/master' into md2-smoother-interpolation 2018-07-05 01:23:56 -04:00
Steel Titanium
d47e7014bc Merge remote-tracking branch 'upstream/master' into md2-fopen-error 2018-07-05 01:21:09 -04:00
Monster Iestyn
e3616de7de Fix OpenGL completely missing the ability to alter FOF wall pegging by lower unpegged flag. Stupid OpenGL.
Sorry in advance Lat'!
2018-06-26 21:41:05 +01:00
Monster Iestyn
609cc16b1e Fix HWR_ProjectSprite to check properly whether the displayed player's mobj or its subsector exists, to avoid a crash when checking for fake planes. (also use viewplayer since its available to use, silly hardware code)
Also tweaked a weird splitscreen check in HWR_DrawSpriteShadow; still investigating whether stplyr is ever not player 2 when it's player 2's view, but this looks better for now
2018-06-23 18:47:32 +01:00
Monster Iestyn
892bed87d9 Merge branch 'opengl-bigmap-fix' into 'master'
OpenGL: Very large map rendering issue fixed

See merge request STJr/SRB2!249
2018-06-03 15:08:10 -04:00
Sryder
51606f675f Very large map rendering issue fixed
Move old fix for too large maps having rendering issues from R_CheckBBox to OpenGL's HWR_CheckBBox
From what I know, this effects at least Aerial Garden and Seraphic Skylands
2018-05-26 13:13:37 +01:00
Sryder
85aff6fa6b Fix FF_FULLBRIGHT not working in sectors with multiple light levels in OpenGL 2018-05-16 21:04:57 +01:00
Steel Titanium
af4d412d36 Include errno if not already included. 2018-05-13 16:04:34 -04:00
Steel Titanium
020853f7aa More helpful error message 2018-05-13 15:35:38 -04:00
GoldenTails
332ac72de4 Update hw_md2.c 2018-05-13 14:34:08 -05:00
GoldenTails
b0a21732f6 Update hw_md2.c 2018-05-13 14:32:33 -05:00
GoldenTails
468c56ee2d Fixed MD2 models not loading correctly on Linux 2018-05-13 14:19:36 -05:00
Sryder
347651ffb1 Uncomment HWR_CorrectSWTricks but set gr_correcttricks to be off by default
I wasn't aware of the cvar, this should do for now since I don't believe any maps use these software tricks, probably an old leftover from DOOM.
2018-03-30 23:12:44 +01:00
Sryder
8757f6b933 Warnings must die 2018-03-30 18:53:23 +01:00
Sryder
5981fb5efc Start with lightnum on sector lightlevel 2018-03-30 18:13:52 +01:00
Sryder
d27b10d5eb static tempsec for R_FakeFlat
I don't fully understand this, but it's what software does and it fixes the issue of the lighting in DSZ3. Also don't need the extra call to R_Prep3DFloors.
2018-03-29 23:28:54 +01:00
Sryder
fd64227e95 Stop squashing the screen vertically in non-green resolutions 2018-03-22 01:10:53 +00:00
Sryder
59c1488435 OpenGL Sprite Splitting 2018-03-22 00:52:14 +00:00
Sryder
38cdee2532 Transform sprites in world space rather than screen space
Transformation based on screen space would make sense if we didn't want anything in the world to effect the sprites.
This should allow sprite splitting and sorting of sprites with level geometry easier.
stransform is no longer needed.
2018-03-21 19:45:37 +00:00
Sryder
9502d87d86 Some fixes and updates for HWR_SplitWall
Solid walls *can* be cut
Fix issues with water and fog FOFs not cutting each other out correctly
Fix Fog colourmap and lighting setting that is done here.
Remove HWR_SplitFog

There is currently a bug with FF_DOUBLESHADOW (that also exists in software) but has a larger impact here. When 2 FF_DOUBLESHADOW lights are directly stacked on each other the bottom one has its height set incorrectly. This causes all the Fog in the timed gravity flipping section of ERZ2 to be drawn and it looks really bad.
2018-03-20 14:20:08 +00:00
Sryder
9c1bf9798a Revert "Fix screenshot functionality in fullscreen in SDL2"
This reverts commit 83d4f29367.

The reason I am reverting this is because the last commit actually fixes the *old* screenshot functionality, as the screen is being drawn back onto the buffer after they're swapped in the "real" size. Meaning the old function actually works perfectly fine now.
2018-03-18 18:33:53 +00:00
Sryder
4e40a810f7 Fix wipes in low resolutions 2018-03-18 17:12:12 +00:00
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
Steel Titanium
361bd92b4a Smoother MD2 interpolation 2018-02-06 14:50:08 -05:00
Alam Ed Arias
31027d1a2d MSVC: set SubSystem on DLLs to Windows 2017-12-27 19:32:38 -05:00
Monster Iestyn
2b1fb67a5f DrawMD2i: change duration and tics to INT32, fix up any related code 2017-10-30 19:12:51 +00: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
Alam Ed Arias
6fbdf37b18 Build: support building with clang 5.0 2017-09-30 08:54:17 -04:00