summaryrefslogtreecommitdiff
path: root/src/render/MBlur.h
blob: 3dc5308269cf4c09d33fa2e0293a5e7b3ebbcb11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once

enum FxType
{
	FXTYPE_WATER1,
	FXTYPE_WATER2,
	FXTYPE_BLOOD1,
	FXTYPE_BLOOD2,
	FXTYPE_HEATHAZE,
	FXTYPE_SPLASH1,
	FXTYPE_SPLASH2,
	FXTYPE_SPLASH3
};

class CMBlur
{
public:
	static RwRaster *pFrontBuffer;
	static bool ms_bJustInitialised;
	static bool ms_bScaledBlur;
	static bool BlurOn;
	static float Drunkness;

	static int32 pBufVertCount;

public:
	static RwBool MotionBlurOpen(RwCamera *cam);
	static RwBool MotionBlurClose(void);
	static void CreateImmediateModeData(RwCamera *cam, RwRect *rect);
	static void CreateImmediateModeData(RwCamera *cam, RwRect *rect, RwIm2DVertex *verts, RwRGBA color, float u1Off, float v1Off, float u2Off, float v2Off, float z, int fullTexture);
	static void MotionBlurRender(RwCamera *cam, uint32 red, uint32 green, uint32 blue, uint32 blur, int32 type, uint32 bluralpha);
	static void OverlayRender(RwCamera *cam, RwRaster *raster, RwRGBA color, int32 type, int32 bluralpha);
	static void SetDrunkBlur(float drunkness);
	static void ClearDrunkBlur();
	
	static bool PosInside(RwRect *rect, float x1, float y1, float x2, float y2);
	static bool AddRenderFx(RwCamera *cam, RwRect *rect, float z, FxType type);
	static void OverlayRenderFx(RwCamera *cam, RwRaster *frontBuf);
};