From 0cad3ae24cc9628be09da4d1b4fe475a0c1733f7 Mon Sep 17 00:00:00 2001 From: Dalai Felinto Date: Wed, 3 Mar 2010 06:38:47 +0000 Subject: BGE 2D Filters: filters run per scene now (fix for [#18152]) - it (slightly) breaks backward compatibility !!! Originally we had 2DFilters (m_filtermanager) stored in RenderTools. That way filters were stored globally and were being called once per each scene. This was producing two big problems: (1) performance and (2) flexibility of use. (1) Performance - To run the filters 2X == 2X slower (2) flexibility of use - Very often we want the filter in the scene but not in the UI for example. For those reasons I believe that 2DFilters with multiple scenes was very useless or unpredictable. I hope they work fine now. To make it work as before (2.4) you can simply recreate the 2dfilter actuators across the scenes. * * * * * Imagine that we have: (a) Main Scene (b) Overlay Scene in Main Scene the Z Buffer and RGB will be from the main scene. in Overlay Scene the Z Buffer will be from the Overlay Scene and the RBG buffer is from both [(a + 2D Filter) + b]. So in pseudo code if we have a,b,c,d,e scenes we have: (2DFilterE(2DFilterD(2DFilterC(2DFilterB(2DFilterA(a) + b) + c) + d) + e) --- source/gameengine/Ketsji/KX_KetsjiEngine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/gameengine/Ketsji/KX_KetsjiEngine.h') diff --git a/source/gameengine/Ketsji/KX_KetsjiEngine.h b/source/gameengine/Ketsji/KX_KetsjiEngine.h index a6ca5fb6519..36db8685afb 100644 --- a/source/gameengine/Ketsji/KX_KetsjiEngine.h +++ b/source/gameengine/Ketsji/KX_KetsjiEngine.h @@ -185,7 +185,7 @@ private: float m_overrideFrameColorB; void RenderFrame(KX_Scene* scene, KX_Camera* cam); - void PostRenderFrame(); + void PostRenderScene(KX_Scene* scene); void RenderDebugProperties(); void RenderShadowBuffers(KX_Scene *scene); void SetBackGround(KX_WorldInfo* worldinfo); -- cgit v1.2.3