Commit graph

232 commits

Author SHA1 Message Date
Jaime Passos
23a8fea598 fix fog 2019-04-07 01:25:55 -03:00
Jaime Passos
4ea1dd3525 The player should be able to toggle shaders 2019-04-07 00:09:53 -03:00
Jaime Passos
fa7f627c88 stuff 2019-04-06 23:33:34 -03:00
Jaime Passos
e1f1e63cc9 fix postprocessor 2019-03-21 18:33:03 -03:00
wolfy852
6b743d383b Merge branch 'next' into md3-vanilla-kart
# Conflicts:
#	src/hardware/r_opengl/r_opengl.c
2019-03-20 19:50:20 -05:00
Jaime Passos
9451b10ac5 add SHADERS comment support 2019-03-19 18:52:41 -03:00
Jaime Passos
da001a5b54 PK3 support 2019-03-19 18:25:55 -03:00
Jaime Passos
f714cba310 Improve custom shader support 2019-03-19 17:37:04 -03:00
Jaime Passos
75919422c6 custom shader support 2019-03-18 23:03:29 -03:00
Jaime Passos
5c399b0944 add vertex shaders 2019-03-18 19:17:47 -03:00
Jaime Passos
1cfdd07ee0 gl4 2019-03-17 22:27:50 -03:00
fickleheart
d6b9a75230 Move fov cvar out of OGL-specific code 2019-02-23 10:18:20 -06:00
Sal
5982e26bb5 Merge branch 'default-md2' into 'next'
Default model for players

See merge request KartKrew/Kart-Public!27
2019-01-15 03:42:19 -05:00
mazmazz
4d5f7e78cd Merge remote-tracking branch 'kart-public-gl/next' into md3-vanilla-kart 2019-01-10 22:08:37 -05:00
Latapostrophe
a4641e1010 use PLAY as default player MD2 if avaiable. 2019-01-08 18:57:10 +01:00
Arthur
531d42c1bd Eliminate some old GL functions so we don't slide back into bad habits! 2019-01-07 04:34:16 -05:00
Arthur
9774ecbdfb Removed gr_voodoocompatibility as even low-power mobile devices do not have this limitation
No longer using byte2float in DrawPolygon -- use the surface color data directly
Vertex Buffer Objects for non-interpolated model frames
Removed some old unused paletted texture stuff
2019-01-07 04:33:22 -05:00
Arthur
1249f37fc5 Removed all glBegin/glEnd references
MD2/MD3 now works, with the exception of WAD textures for some odd reason
2019-01-07 04:30:47 -05:00
SeventhSentinel
73542c008c merge srb2 next 2019-01-05 15:59:23 -05:00
Digiku
58a2cec70f Merge branch 'float_equal' into 'master'
Clear Float equal warnings

See merge request STJr/SRB2!383
2018-12-20 16:58:37 -05:00
mazmazz
96cad09db6 Change 0.05 to 0.05f 2018-12-18 16:59:59 -05:00
Azeonus
67cd6dcdd2 dispoffset OGL fix [by Azeonus] 2018-12-18 16:50:03 -05:00
Alam Ed Arias
6fd66bdb49 Clear float equal warnings 2018-12-14 20:34:06 -05:00
TehRealSalt
5534017954 Merge remote-tracking branch 'srb2public/next' into merge-next 2018-11-29 08:49:50 -05:00
Sryder
683ebec120 Rotate All MD2s to match their standing slopes
Needs to be tested in gravity flip
Also flips the normal on linedef based slopes so that it's facing the correct direction
Also makes it so slopelaunch doesn't always remove the standingslope (going down some slopes would cause it to be constantly unset and reset)
2018-11-26 00:17:34 +00:00
Monster Iestyn
0a0336a674 Merge branch 'master' into fof-slope-skew-backport
# Conflicts:
#	src/r_segs.c
2018-11-23 22:40:28 +00:00
Alam Arias
30b9cef043
Merge pull request #326 from monster-psychic-cat/opengl_splitscreen_sky_fix
Render the skies correctly on splitscreen in OpenGL mode
2018-11-23 14:48:05 -05:00
toaster
aa607ecf4c Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into nextmerge_again
# Conflicts:
#	src/d_clisrv.c
#	src/m_misc.c
2018-11-18 18:26:50 +00:00
Alam Ed Arias
f73ea4f984 Clean up warnings 2018-11-14 10:52:16 -05:00
Sryder
6af56273bf Merge branch 'next' of git@git.magicalgirl.moe:STJr/SRB2.git into nextmerge
# Conflicts:
#	src/d_main.c
#	src/d_main.h
#	src/d_netcmd.c
#	src/doomtype.h
#	src/hardware/hw_md2.h
#	src/p_user.c
#	src/r_splats.h
#	src/s_sound.c
#	src/s_sound.h
#	src/screen.c
#	src/sdl/i_system.c
2018-11-10 21:14:53 +00:00
MPC
eb4a72440a Render the skies correctly on splitscreen in OpenGL mode 2018-11-10 16:19:41 -03:00
toaster
45fc2c46e9 Merge branch 'fof-slope-skew-backport' of https://git.magicalgirl.moe/STJr/SRB2.git 2018-11-10 18:27:13 +00:00
Monster Iestyn
dd83652b71 Whoops, this broke my non-NEWCLIP test build 2018-11-10 16:10:25 +00:00
Monster Iestyn
c4569e61a8 Made some efforts to improve efficiency of new code, hard to tell if I've made it better or worse though honestly
R_IsEmptyLine is now a thing too btw
2018-11-10 16:09:21 +00:00
Monster Iestyn
1e98e3b4f2 More progress, NEWCLIP added to doomdef.h, sadly it actually all lags the game so I've disabled it for now
Other notes:
* on second thought I'll keep the hw_clip functions' gld prefixes rather than HWR, not like it matters either way
* despite the extra lag it does fix the issues with translucent walls and such when displayed at different vertical angles, such as with the GFZ1 waterfall
2018-11-10 16:08:56 +00:00
Monster Iestyn
aebcf3520b Remove pointless drawtextured variable and redundant fake planes checks (R_FakeFlat would already have made gr_frontsector/backsector something else if they were) 2018-10-27 19:32:55 +01:00
Monster Iestyn
3d88ee9d55 Added missing checks in HWR_AddLine from the software version, move v** vars to the top since R_PointToAngle calls use the same values anyway 2018-10-27 19:31:24 +01:00
Monster Iestyn
90cfa5ef16 Make new pv1/pv2 seg pointers, so AdjustSeg doesn't modify the v1/v2 pointers directly anymore
Yes I know they're void * in r_defs.h's seg_t definition, it's quicker than trying to figure out if including hardware/hw_glob.h is a good idea or not
2018-10-27 19:29:31 +01:00
toaster
880e4c0631 Final weather stuff.
* Multiplied rain speed by 3, per Oni's request.
* Disable weather density - force to 1 if weather draw distance, otherwise zero
* Move the ceilingpic check into a more convenient part of the weather spawning loop.
* `drawdist_precip_cons_t` - replaces "Infinite" with "None".
* Disable the lowest normal draw distance (256), given... both kart and srb2 are basically unplayable like that.
* Disable cv_drawdist_nights entirely.
2018-10-14 22:32:34 +01:00
toaster
a1e1aa81b5 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into nextmerge_plus_rain
# Conflicts:
#	src/d_netcmd.c
#	src/d_netcmd.h
#	src/g_game.c
#	src/p_floor.c
#	src/p_user.c
#	src/r_data.c
#	src/r_data.h
#	src/v_video.c
2018-10-14 21:52:05 +01:00
Monster Iestyn
61a29bed85 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
Sal
36696b1fbb Merge branch 'noclip-cam' into 'master'
Noclip cam

See merge request KartKrew/Kart!32
2018-10-07 23:15:06 -04:00
toaster
b1e02467bf 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
TehRealSalt
8ba3f88553 Don't need thissec 2018-10-06 23:37:27 -04:00
TehRealSalt
ff7b402dc5 OGL support 2018-10-06 19:25:59 -04:00
Monster Iestyn
872e2f82c1 Redo OpenGL skewing support, so that it now itself supports the lower unpegged effect for FOFs in OpenGL! 2018-09-28 17:02:02 +01:00
toaster
e4f6015b50 Revamp flat alignment to be consistent across all renderer functions except for the software slope renderer, which me and fickle tried our best at but couldn't get to work. (This is a backport of 2.2 code that slightly postdates the improved flat alignment Kart's had for a while.)
This fixes #11.
2018-09-27 18:11:43 +01:00
toaster
084b99a5c9 Merge branch 'master' of https://git.magicalgirl.moe/KartKrew/Kart.git into encore
# Conflicts:
#	src/info.c
#	src/m_menu.c
#	src/y_inter.c
2018-09-21 20:54:38 +01:00
toaster
25ae5a5e7f Partially address Sal's review last night by switching to a more sensible default. I'm still unconvinced on the need to make encore mode a seperate knob on the grounds of overcomplexity and "you can't turn map hell off", but hopefully this'll be a shippable state we can come back to later.
Also, thank you for reminding me, Sryder - disable my very, very limited progress on encore mode in openGL so that stages aren't an unintended hodgepodge of different colourschemes for the objects versus the level environment.
2018-09-21 12:12:17 +01:00
toaster
123778766a Animated sky backport 2018-09-17 11:21:25 +01:00
TehRealSalt
f6ce2bfb54 Ignore texture on horizon lines when in OGL
Before: https://cdn.discordapp.com/attachments/300531341957529602/484842910475354124/kart0110.png
After: https://cdn.discordapp.com/attachments/270211093761097728/484841628771680258/kart0109.png

Not a solution, but better than the previous.
2018-08-30 17:53:25 -04:00
toaster
6f4308905f Merge branch 'sonicitems' into encore 2018-08-08 12:04:17 +01:00
toaster
c52a4de933 Merge branch 'next' of https://git.magicalgirl.moe/STJr/SRB2.git into sonicitems
# Conflicts:
#	src/f_finale.c
#	src/hardware/hw_md2.c
2018-08-07 21:20:27 +01:00
toaster
bd78c34b99 Encore mode - a fresh take on mirror mode!
* Palette remaps.
* Branding.

TODO:
* Doesn't work in GL. (Mostly.) I have SOME ideas on how to tackle this, but...
* Transmaps are broken in Encore for some reason.
* I tried to make in-level colormaps shimmy over, but it didn't quite work, so I commented it out and only semi-fixed it.
2018-07-23 23:50:41 +01:00
Monster Iestyn
8e19611033 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
TehRealSalt
ec0c358755 Merge branch 'master' into sonicitems 2018-07-08 17:51:44 -04:00
TehRealSalt
85ab4015eb The remaining errors on a GCC 6.3 setup 2018-07-07 16:38:54 -04:00
SeventhSentinel
fb2a6b53c2 Fixed a bit of redundancy, pointed out by Sryder 2018-06-26 18:04:07 -04:00
SeventhSentinel
88f8b4d852 Extend mobj->colorized to work on... well, mobjs
Previously would only work on players. Now karma items should be easier to spot as intended!
2018-06-26 16:46:47 -04:00
Monster Iestyn
d8a86a8d74 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
aed30519d4 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
TehRealSalt
35eb978c69 MFE_DRAWONLYFORPx stuff ported to OpenGL, and MT_DRIFTDUST respects Boo powers 2018-06-11 02:15:27 -04:00
TehRealSalt
07a18e5185 Merge branch 'master' into sonicitems 2018-06-09 22:50:21 -04:00
Sryder
fffa3db5a8 Merge branch 'public_flatsprite' of git@git.magicalgirl.moe:Sryder/SRB2.git
# Conflicts:
#	src/hardware/hw_main.c
2018-06-09 23:43:25 +01:00
Sryder
ea915e5778 Fix papersprites more for real this time
(Seperate AL and AR sprites were broken, I figured out I was a dunce, oh noey)
2018-06-09 22:58:03 +01:00
Sryder
82b92d1881 Fix the issue from the merge 2018-06-09 22:25:00 +01:00
Sryder
00ac4dd59b Merge branch 'public_flatsprite' of git@git.magicalgirl.moe:STJr/SRB2.git
# Conflicts:
#	src/hardware/hw_main.c
2018-06-09 21:01:59 +01:00
Sryder
0f4e8c1eda Merge branch 'next' into public_flatsprite
I also fix papersprites in regards to flipping on one sprite fits all rotation stuff

# Conflicts:
#	src/hardware/hw_main.c
2018-06-09 18:47:42 +01:00
TehRealSalt
4e2b30fcae Fixes 2018-06-08 00:02:28 -04:00
TehRealSalt
dd05edfcc0 Merge remote-tracking branch 'srb2public/next' 2018-06-04 16:58:35 -04:00
Monster Iestyn
8e5dbb22f0 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
f4181f7eb6 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
badbb4324e Fix FF_FULLBRIGHT not working in sectors with multiple light levels in OpenGL 2018-05-16 21:04:57 +01:00
TehRealSalt
36b52e1c67 Merge remote-tracking branch 'refs/remotes/srb2public/next'
# Conflicts:
#	src/f_finale.c
#	src/hardware/hw_draw.c
#	src/hardware/hw_main.c
#	src/m_misc.c
2018-04-07 18:43:59 -04:00
Sryder
6f2de824fb 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
0aaae501d3 Warnings must die 2018-03-30 18:53:23 +01:00
Sryder
f3aa02e26d Start with lightnum on sector lightlevel 2018-03-30 18:13:52 +01:00
Sryder
65c893da86 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
fab4b7f5ea Stop squashing the screen vertically in non-green resolutions 2018-03-22 01:10:53 +00:00
Sryder
839ee0ab85 OpenGL Sprite Splitting 2018-03-22 00:52:14 +00:00
Sryder
0885d27171 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
4e95066f5a 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
1b3e1f78af Translucent floors shouldn't write into the depth buffer 2018-03-15 23:59:01 +00:00
Sryder
5a4ea9fab3 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
e4ed3a793b 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
77af3a8f95 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
67ee1637c9 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
Sryder13
4b06594dd0 Star colormap is decided to be used per mobj with mobj->colorize
Star creates afterimages that are colorized and fullbright
Star makes the player fullbright
2018-02-05 00:00:36 +00:00
TehRealSalt
4a23c4704d Rendering fixes ahoy!
- Fix squished sky in Software 3P/4P
- Fix reversed sky in OpenGL Mirror Mode
- Fix MD2 culling in Mirror Mode
2017-12-29 14:50:16 -05:00
TehRealSalt
349b27e0de Change splitscreen into UINT8, fix HUD slightly more 2017-12-18 20:59:04 -05:00
TehRealSalt
122eb82170 Merge remote-tracking branch 'refs/remotes/origin/battle' into quads
# Conflicts:
#	src/g_game.c
#	src/k_kart.c
2017-12-18 01:02:53 -05:00
TehRealSalt
1f958091df OpenGL rendering 2017-12-17 16:33:21 -05:00
TehRealSalt
b6d86145a9 OGL Mirror Mode
Haven't tested a whole lot but it seems okay?
2017-12-12 17:31:25 -05:00
Wolfy
fb976ab26c more quad stuff 2017-12-11 00:12:38 -06:00
Sryder13
81a077b9af New player frameangle used instead of mobj angle for players
Set to mobj angle except when spinning where it's set to spin
Only 1 spin frame needed now
2017-11-04 14:07:53 +00:00
Sryder13
8742b3b2d9 Star power translation tables
Redid the part that handled the regular kart translation tables too, now uses the new table created instead of the horror of what was there before
2017-10-26 20:04:05 +01:00
TehRealSalt
5fe2f4928f Merge remote-tracking branch 'refs/remotes/srb2public/next' into zarrotsu
# Conflicts:
#	src/doomdef.h
#	src/sdl/i_main.c
#	src/sdl/i_video.c
#	src/y_inter.c
2017-10-17 15:53:34 -04:00
Sryder13
f3a605de6b I need to stop leaving things commented out that are going 2017-09-15 18:03:06 +01:00
Sryder13
db99537a6b Various Transparent Texture Fixes
Draw Textures and Flats that have holes in them like a solid polygon so they use the depth buffer and don't need to be sorted
Disable all linear filtering on textures and flats that have holes in them, the linear filtering introduces translucency into the textures where the edges are. Leaving them with either a black border, or causing pixels behind the slightly translucent areas to not be drawn. Doesn't apply to sprites and the HUD as they are always already sorted properly.
Make the Alpha Testing more strict on non-translucent blend modes. This makes it so any transparency below 0.5 is discarded instead. Would make anything that is blended and has holes in it look slightly better, only the HUD and MD2s where the texture has holes are effected currently.
Set TF_TRANSPARENT on flat texture flags when there are holes in the texture.
Minor fix to make sure MD2s always set the right blend mode
2017-09-09 00:44:13 +01:00
Sryder13
6877930ed9 Go through and draw MD2s and sprites at the same time so they are sorted from each other (mostly) correctly 2017-09-08 00:57:21 +01:00