Commit graph

57 commits

Author SHA1 Message Date
Arthur
587ffa9ada 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
2018-12-27 00:35:29 -05:00
Arthur
a812acc3d4 Removed unused PF_Md2 flag
More OpenGL performance increase by making assumptions about client state
2018-12-27 00:30:07 -05:00
Arthur
0978732ecd boolean fix for VS
add GL_NORMALIZE
2018-12-27 00:24:21 -05:00
mazmazz
5ec40cf906 More mixed d&c fixes 2018-12-26 23:50:35 -05:00
mazmazz
036e44aa21 Mixed D&C fixes 2018-12-26 23:39:34 -05:00
mazmazz
b175629748 Fix floating point comparisons 2018-12-26 23:15:28 -05:00
mazmazz
74d6921f47 Merge tag 'SRB2_release_2.1.23' into md3-vanilla-ssn 2018-12-26 22:55:25 -05:00
Arthur
b19252651f Removed all glBegin/glEnd references
MD2/MD3 now works, with the exception of WAD textures for some odd reason
2018-12-23 17:00:11 -05:00
mazmazz
6c5bb7f541 Small Mixed D&C fix 2018-12-19 20:56:58 -05:00
AJ Freda
4728ad97eb Fixed a few unnoticable mistakes [vanilla] 2018-12-19 20:52:47 -05:00
mazmazz
90bd80d17a Interpolation fix attempt?
* Fix pglNormal3bv pointer because typo
2018-12-19 01:57:54 -05:00
mazmazz
98d18509e6 Hide/add Kart FTransform mirror and anglez behind ifdef 2018-12-19 00:17:51 -05:00
mazmazz
6b2f4b5858 Buildbot fixes (changed byte types to char; mixed d&c) 2018-12-18 20:23:08 -05:00
mazmazz
3dbda54d3c GCC compile fixes 2018-12-18 19:17:33 -05:00
Arthur
76dabd5e9d Support for 'tinyframes', and lots more optimization 2018-12-18 17:52:47 -05:00
Arthur
3ed0edbcfe Common model format, with MD2/MD3 loading 2018-12-18 17:52:45 -05:00
Alam Ed Arias
78634679f1 fix compiling for MSVC 2018-12-14 20:42:37 -05:00
Alam Ed Arias
6fd66bdb49 Clear float equal warnings 2018-12-14 20:34:06 -05:00
mazmazz
ea7162a76a Update source copyrights to 2018 2018-11-25 07:35:38 -05:00
Sryder
f3d63b82ce Revert "Fix screenshot functionality in fullscreen in SDL2"
This reverts commit 121fcd8369.

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
a984d979d1 Fix wipes in low resolutions 2018-03-18 17:12:12 +00:00
Sryder
31d1ef8db0 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
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
121fcd8369 Fix screenshot functionality in fullscreen in SDL2 2018-03-08 22:28:38 +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
Sryder
538d0de949 Merge branch 'master' of git@git.magicalgirl.moe:STJr/SRB2.git into openglquickfixes 2018-03-06 16:11:05 +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
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
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
Alam Ed Arias
6847a89bc2 OpenGL: check for 1.3+ or 2.0+, not just 1.3/2.X to 4.X 2017-05-29 23:04:03 -04:00
Alam Ed Arias
6be7693ecb OpenGL: Load the GLU and OpenGL 1.3 multitexturing functions during runtime 2017-05-29 22:52:51 -04:00
Monster Iestyn
f96844b262 Fix screenshots taken in OpenGL with 1366x768 being messed up
This is based on GZDoom's own fix for the same issue, had to add support for glPixelStorei first though
2017-05-29 21:28:36 +01:00
Alam Ed Arias
2823c7bffb build: fixup warnings from GCC 6.2.1 2017-03-12 17:23:56 -04:00
Alam Ed Arias
2c8008e11e NULL checks 2016-06-13 10:07:10 -04:00
Alam Ed Arias
1e3631425f r_opengl: move DrawMD2i code to DrawMD2Ex 2016-06-12 16:08:48 -04:00
Alam Ed Arias
26f78de3b4 Merge branch 'master' into next 2016-04-30 11:45:11 -04:00
Sean Ryder
0eb41b4450 Flip fade mask Y coordinates
For some reason every texture and flat loaded into GL is vertically flipped
2016-04-30 13:40:00 +01:00
Sean Ryder
d2d73f085d Change internal formats of screen fade texture to RGB
Don't think either of them need RGBA
2016-04-29 20:56:46 +01:00
Sean Ryder
55a1de899c The fade masks textures should use an alpha format
So they don't get effected by the texture format set by the screen depth
GL_RGB5_A1 from 16-bit was removing all alpha from the texture
2016-04-29 18:58:20 +01:00
Inuyasha
e6f0a4be18 Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2 into pub_next 2016-01-29 16:01:57 -08:00
Inuyasha
f500986692 use RGB for screen texture, not RGBA
the screen texture does not need an alpha channel.
the fact that it had one made OGL copy the topmost pixel of the screen texture's alpha channel.
which, naturally results in the screen becoming partially transparent and letting you see the working texture in the background.
2016-01-29 16:01:05 -08:00
MonsterIestyn
a797e88bb9 Red's last commit should have been using "pgl", not "gl" for function name prefixes, so the compiler would be happy. Also, more simplicity in my camera code please! Simplified some of the checks for whether a camera should chase or not etc
git-svn-id: https://code.orospakr.ca/svn/srb2/trunk@9046 6de4a73c-47e2-0310-b8c1-93d6ecd3f8cd
2015-03-31 18:00:14 -04:00
RedEnchilada
308a958653 yellow wanted me to push this cus it fixed md2 translucency for her test cases
git-svn-id: https://code.orospakr.ca/svn/srb2/trunk@9045 6de4a73c-47e2-0310-b8c1-93d6ecd3f8cd
2015-03-31 18:00:14 -04:00
Alam Ed Arias
73b3287b19 SRB2 2.1.14 release 2015-01-01 14:50:31 -05:00
Ronald Kinard
d056e82b3b Parse GL version correctly. 2014-11-13 18:20:32 -06:00
Ronald Kinard
d8484a86e0 Virtual resolutions in OpenGL
Also made fades use core functions if they are available.
2014-11-13 18:06:38 -06:00
Alam Ed Arias
404b5f666c SRB2 2.1.12 release 2014-11-11 19:55:07 -05:00
Alam Ed Arias
6d773c54a5 Use OpenGL 1.3 in static builds and on SDL interfaces 2014-11-02 01:11:59 -05:00