diff options
author | Hamed Zaghaghi <hamed.zaghaghi@gmail.com> | 2008-07-12 14:21:37 +0400 |
---|---|---|
committer | Hamed Zaghaghi <hamed.zaghaghi@gmail.com> | 2008-07-12 14:21:37 +0400 |
commit | a49c9c458aac2a738c3cf90860fb6e942747617e (patch) | |
tree | 98882a609b085452b24c35bbe1a7cc6103d7ee91 /source/gameengine/Rasterizer/RAS_2DFilterManager.h | |
parent | 5f15b164c549b336e1c5ef0dff2aaede056fd6f5 (diff) |
improvement of 2d-filter custom shader,
some bugfixes,
now you can use depth buffer and luminance buffer without any settings,
also you can use object's properties in a shader
Diffstat (limited to 'source/gameengine/Rasterizer/RAS_2DFilterManager.h')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_2DFilterManager.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/source/gameengine/Rasterizer/RAS_2DFilterManager.h b/source/gameengine/Rasterizer/RAS_2DFilterManager.h index faf7c652388..9d8326b96de 100644 --- a/source/gameengine/Rasterizer/RAS_2DFilterManager.h +++ b/source/gameengine/Rasterizer/RAS_2DFilterManager.h @@ -28,8 +28,6 @@ #ifndef __RAS_I2DFILTER #define __RAS_I2DFILTER - - #define MAX_RENDER_PASS 100 class RAS_2DFilterManager @@ -37,9 +35,15 @@ class RAS_2DFilterManager private: unsigned int CreateShaderProgram(char* shadersource); unsigned int CreateShaderProgram(int filtermode); + void AnalyseShader(int passindex, vector<STR_String>& propNames); void StartShaderProgram(int passindex); void EndShaderProgram(); + void SetupTextures(bool depth, bool luminance); + void FreeTextures(); + + void UpdateOffsetMatrix(int width, int height); + float textureoffsets[18]; float view[4]; /* texname[0] contains render to texture, texname[1] contains depth texture, texname[2] contains luminance texture*/ @@ -54,6 +58,13 @@ private: short texflag[MAX_RENDER_PASS]; bool isshadersupported; + + unsigned int m_filters[MAX_RENDER_PASS]; + short m_enabled[MAX_RENDER_PASS]; + + // stores object properties to send to shaders in each pass + vector<STR_String> m_properties[MAX_RENDER_PASS]; + void* m_gameObjects[MAX_RENDER_PASS]; public: enum RAS_2DFILTER_MODE { RAS_2DFILTER_ENABLED = -2, @@ -74,19 +85,12 @@ public: RAS_2DFILTER_NUMBER_OF_FILTERS }; - unsigned int m_filters[MAX_RENDER_PASS]; - short m_enabled[MAX_RENDER_PASS]; - RAS_2DFilterManager(); ~RAS_2DFilterManager(); - void SetupTexture(); - - void UpdateOffsetMatrix(int width, int height); - void RenderFilters(RAS_ICanvas* canvas); - void EnableFilter(RAS_2DFILTER_MODE mode, int pass, STR_String& text, short tflag); + void EnableFilter(vector<STR_String>& propNames, void* gameObj, RAS_2DFILTER_MODE mode, int pass, STR_String& text); }; #endif |