From 7256502afa0babe60fcafbd2888cd3e33c3f9b6b Mon Sep 17 00:00:00 2001 From: xolatile Date: Wed, 16 Jul 2025 23:07:43 +0200 Subject: Source code, broken... --- src/engine/glare.cpp | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/engine/glare.cpp (limited to 'src/engine/glare.cpp') diff --git a/src/engine/glare.cpp b/src/engine/glare.cpp new file mode 100644 index 0000000..dc639ad --- /dev/null +++ b/src/engine/glare.cpp @@ -0,0 +1,71 @@ +#include "engine.h" +#include "rendertarget.h" + +static struct glaretexture : rendertarget +{ + bool dorender() + { + extern void drawglare(); + drawglare(); + return true; + } +} glaretex; + +void cleanupglare() +{ + glaretex.cleanup(true); +} + +VARFP(glaresize, 6, 8, 10, cleanupglare()); +VARP(glare, 0, 0, 1); +VARP(blurglare, 0, 4, 7); +VARP(blurglareaspect, 0, 1, 1); +VARP(blurglaresigma, 1, 50, 200); + +VAR(debugglare, 0, 0, 1); + +void viewglaretex() +{ + if(!glare) return; + glaretex.debug(); +} + +bool glaring = false; + +void drawglaretex() +{ + if(!glare) return; + + int w = 1< (1<<5) && (screenw*h)/w >= (screenh*4)/3) h /= 2; + blury = ((1 + 4*blurglare)*(screenw*h)/w + screenh*2)/(screenh*4); + blury = clamp(blury, 1, MAXBLURRADIUS); + } + + glaretex.render(w, h, blurglare, blurglaresigma/100.0f, blury); +} + +FVAR(glaremod, 0.5f, 0.75f, 1); +FVARP(glarescale, 0, 1, 8); + +void addglare() +{ + if(!glare) return; + + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + + SETSHADER(screenrect); + + glBindTexture(GL_TEXTURE_2D, glaretex.rendertex); + + float g = glarescale*glaremod; + gle::colorf(g, g, g); + + screenquad(1, 1); + + glDisable(GL_BLEND); +} + -- cgit v1.2.3