summaryrefslogtreecommitdiffstats
path: root/src/extras/postfx.h
diff options
context:
space:
mode:
authorNikolay Korolev <nickvnuk@gmail.com>2020-08-16 13:46:20 +0200
committerNikolay Korolev <nickvnuk@gmail.com>2020-08-16 13:46:20 +0200
commit7669b97ac64bd77dc0932210f81e4a0def9bfb1b (patch)
tree51c7580701ea00abc769e68d14a83a25b8ebd0cf /src/extras/postfx.h
parentsubmodule (diff)
parentMerge branch 'master' into miami (diff)
downloadre3-7669b97ac64bd77dc0932210f81e4a0def9bfb1b.tar
re3-7669b97ac64bd77dc0932210f81e4a0def9bfb1b.tar.gz
re3-7669b97ac64bd77dc0932210f81e4a0def9bfb1b.tar.bz2
re3-7669b97ac64bd77dc0932210f81e4a0def9bfb1b.tar.lz
re3-7669b97ac64bd77dc0932210f81e4a0def9bfb1b.tar.xz
re3-7669b97ac64bd77dc0932210f81e4a0def9bfb1b.tar.zst
re3-7669b97ac64bd77dc0932210f81e4a0def9bfb1b.zip
Diffstat (limited to 'src/extras/postfx.h')
-rw-r--r--src/extras/postfx.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/extras/postfx.h b/src/extras/postfx.h
new file mode 100644
index 00000000..ace2e4a8
--- /dev/null
+++ b/src/extras/postfx.h
@@ -0,0 +1,45 @@
+#pragma once
+
+#ifdef EXTENDED_COLOURFILTER
+
+class CPostFX
+{
+public:
+ enum {
+ POSTFX_OFF,
+ POSTFX_SIMPLE,
+ POSTFX_NORMAL,
+ POSTFX_MOBILE
+ };
+ static RwRaster *pFrontBuffer;
+ static RwRaster *pBackBuffer;
+ static bool bJustInitialised;
+ static int EffectSwitch;
+ static bool BlurOn; // or use CMblur for that?
+ static bool MotionBlurOn; // or use CMblur for that?
+ static float Intensity;
+
+ // smooth blur color
+ enum { NUMAVERAGE = 20 };
+ static int PrevRed[NUMAVERAGE], AvgRed;
+ static int PrevGreen[NUMAVERAGE], AvgGreen;
+ static int PrevBlue[NUMAVERAGE], AvgBlue;
+ static int PrevAlpha[NUMAVERAGE], AvgAlpha;
+ static int Next;
+ static int NumValues;
+
+ static void InitOnce(void);
+ static void Open(RwCamera *cam);
+ static void Close(void);
+ static void RenderOverlayBlur(RwCamera *cam, int32 r, int32 g, int32 b, int32 a);
+ static void RenderOverlaySniper(RwCamera *cam, int32 r, int32 g, int32 b, int32 a);
+ static void RenderOverlayShader(RwCamera *cam, int32 r, int32 g, int32 b, int32 a);
+ static void RenderMotionBlur(RwCamera *cam, uint32 blur);
+ static void Render(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 bluralpha);
+ static void SmoothColor(uint32 red, uint32 green, uint32 blue, uint32 alpha);
+ static bool NeedBackBuffer(void);
+ static bool NeedFrontBuffer(int32 type);
+ static bool UseBlurColours(void) { return EffectSwitch != POSTFX_SIMPLE; }
+};
+
+#endif