Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHamed Zaghaghi <hamed.zaghaghi@gmail.com>2008-07-12 14:21:37 +0400
committerHamed Zaghaghi <hamed.zaghaghi@gmail.com>2008-07-12 14:21:37 +0400
commita49c9c458aac2a738c3cf90860fb6e942747617e (patch)
tree98882a609b085452b24c35bbe1a7cc6103d7ee91 /source/gameengine/Rasterizer/RAS_2DFilterManager.h
parent5f15b164c549b336e1c5ef0dff2aaede056fd6f5 (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.h24
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