1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2024-11-26 10:13:49 +00:00
Commit graph

17 commits

Author SHA1 Message Date
fgenesis
f7090f33d5 fix issues with glDrawBuffersARB() code path in prev commit 2024-04-26 03:28:07 +02:00
fgenesis
09edbf49fd Changes to rendering logic, incl water surface flicker fix, plus other fixes.
This commit changes a bunch of internal rendering logic to
use FBOs in a way that doesn't violate the GL spec.
The water surface FBO's output texture was bound for reading
while at the same time rendering the water surface back into the
same FBO! Depending on the card/driver/load/zoom factor/moon phase,
this could lead to water surface flickering, chessboard effects,
and other visual glitches.
In order to fix this an extra FBO is needed.
In theory this is a simple fix but in practice this is the Aquaria
codebase and everything is more complicated than it has any right to be.

Couple other things:

- FBOs no longer have a depth renderbuffer. Aquaria never uses the depth
buffer for anything, so this can go to save some memory.
Also remove renderbuffer GL function pointers.

- Make FBOs multi-"paged". This is supposedly more efficient on desktop GL,
if glDrawBuffer() supports GL_COLOR_ATTACHMENTn. This is currently checked
via the presence of glDrawBuffersARB().

- Main core FBO now has 2 pages becaus it's needed for the water surface.
The same 2 pages are later used by the after effect manager to ping-pong
postprocessing shaders. Remove private after effect FBO.

TODO:
- There's still a bug in the one-fbo-multiple-binding-points code path.
-> for now glDrawBuffersARB must be NULL to work properly.
2024-04-25 03:33:02 +02:00
fgenesis
b63d27b7b5 Merge branch 'experimental' into tile-optimization 2024-01-11 00:25:23 +01:00
fgenesis
49ffcf227b FrameBuffer: change glTexImage2D to use more a compatible format
reported by pbarzena -- apparently causes problems with newer nvidia gpus on win11
but i'm not sure if this is really the problem
2024-01-11 00:06:42 +01:00
fgenesis
f1656d2fbc small clarification in framebuffer, no functional change 2023-08-26 02:09:44 +02:00
fgenesis
b6fb6944f6 first step towards making the render process const 2022-05-19 05:17:00 +02:00
fgenesis
7456e785fa Remove mandatory defines and their checks:
BBGE_BUILD_SHADERS
BBGE_BUILD_FRAMEBUFFER
BBGE_BUILD_OPENGL
BBGE_BUILD_OPENGL_DYNAMIC
2017-02-05 22:51:25 +01:00
fgenesis
b781b45789 Implement "Desktop" resolution (0x0, default). Also fix music slider update in options menu
This makes the window resizable in desktop mode, and fixed size otherwise.
Fullscreen desktop has always the dame resolution as the desktop.
Add config setting to specify initial display.
Add config setting for the refresh rate (not yet properly integrated)

Closes #17
2017-01-13 18:20:35 +01:00
fgenesis
034cf6a69f Little fixup + use RGBA16f framebuffer 2016-11-15 12:58:55 +01:00
fgenesis
90d70c117b Clean up framebuffer code a little 2016-11-15 04:48:21 +01:00
fgenesis
0db3c8242c Remove hardcoded Intel GMA 950 check 2016-11-15 01:18:54 +01:00
fgenesis
b5e6234269 Move glext function pointer loading to GLLoad.cpp 2016-09-26 04:13:28 +02:00
fgenesis
58df545ec8 cleanup #2, no functional changes 2016-09-26 01:54:45 +02:00
fgenesis
8472718fb7 Major include refactor; changes to pretty much everything
This untangles some of the gigantic kitchen sink headers
in an attempt to split things into smaller files.
Also don't include gl.h, glext.h, windows.h,
and other such nonsense *everywhere*.

Lots of cleanups on the way too. More dead/unused code removal.

Remove incrFlag(), decrFlag() Lua functions.
2016-07-09 04:18:40 +02:00
Nicolas Braud-Santoni
eb128e65a4 Remove commented-out code 2016-05-05 19:57:50 +02:00
Nicolas Braud-Santoni
276265be1d Eliminating obsolete #ifdefs and friends (#26)
The following options have been applied globally, using unifdef(1):
```c
 #undef BBGE_BUILD_DIRECTX

 #define BBGE_BUILD_OPENGL 1
 #define GL_GLEXT_LEGACY   1
 #define HAVE_PUTENV       1
 #define TIXML_USE_STL     1
 #define BBGE_BUILD_SDL    1
```
2016-05-05 03:49:41 +02:00
fgenesis
3096eaf5e2 initial commit. This is icculus version 5542b94cae02a6333845854bbbd1abe0a259f1a4 2011-08-03 22:05:33 +02:00