dmuratshin 8 ani în urmă
părinte
comite
68f0f1412c

+ 4 - 0
examples/Demo/src/TestTweenPostProcessing.h

@@ -36,6 +36,7 @@ public:
         _test = sprite;
 
 
+
         spSprite anim;
 
         anim = createAnim(false);
@@ -56,6 +57,7 @@ public:
         anim = createAnim(false);
         anim->setPosition(sprite->getWidth(), sprite->getHeight() / 2);
         anim->attachTo(sprite);
+		
 
 
         _fullscreen = false;
@@ -101,6 +103,8 @@ public:
         opt.fullscreen(_fullscreen);
         opt.singleRender(_singleRender);
 
+		//_type = 1;
+
         spTween t;
         if (_type == 0)
             t = _test->addTween(TweenOutline(Color::YellowGreen, opt), 5000, -1, true, 0, Tween::ease_inOutCubic);

+ 13 - 2
oxygine/src/oxygine/PostProcess.cpp

@@ -23,6 +23,11 @@ namespace oxygine
         _ppBuilt = true;
 
 
+
+		IVideoDriver* driver = IVideoDriver::instance;
+
+
+
         file::Zips zp;
         zp.add(system_data, system_size);
 
@@ -46,8 +51,6 @@ namespace oxygine
         unsigned int ps = ShaderProgramGL::createShader(GL_FRAGMENT_SHADER, (const char*)&fs_blur.front());
 
 
-        IVideoDriver* driver = IVideoDriver::instance;
-
         shaderBlurV = new ShaderProgramGL(ShaderProgramGL::createProgram(v, ps, decl));
         driver->setShaderProgram(shaderBlurV);
         driver->setUniformInt("s_texture", 0);
@@ -300,6 +303,9 @@ namespace oxygine
             //driver->setState(IVideoDriver::STATE_BLEND, 0);
             spNativeTexture prevRT = driver->getRenderTarget();
 
+
+			ShaderProgram *sp = driver->getShaderProgram();
+
             for (size_t i = 0; i < postProcessItems.size(); ++i)
             {
                 PPTask* p = postProcessItems[i];
@@ -309,6 +315,7 @@ namespace oxygine
 
             postProcessItems.clear();
             driver->setRenderTarget(prevRT);
+			driver->setShaderProgram(sp);
             _renderingPP = false;
         }
 
@@ -431,10 +438,14 @@ namespace oxygine
         }
 
         //OX_ASSERT(0);
+		Material *rd = actor->getMaterial();
+		actor->setMaterial(STDMaterial::instance);
         STDMaterial::instance->Material::render(actor, rs);
 
         STDRenderer::current->flush();
 
+		actor->setMaterial(rd);
+
         MaterialX::current = 0;
     }
 

+ 4 - 0
oxygine/src/oxygine/TweenOutline.cpp

@@ -16,6 +16,7 @@ namespace oxygine
 
         void render(Actor* actor, const RenderState& rs) override
         {
+
             if (!_pp._rt)
                 return;
 
@@ -41,6 +42,7 @@ namespace oxygine
             Color color = Color(Color::White).withAlpha(255).premultiplied();
             renderer->draw(rt, color.rgba(), src, dest);
 
+			
 
             RenderState r = rs;
             actor->setMaterial(_prevMaterial);
@@ -58,6 +60,8 @@ namespace oxygine
             if (w < 0 || h < 0)
                 return;
 
+
+
             IVideoDriver* driver = IVideoDriver::instance;
             const VertexDeclarationGL* decl = static_cast<const VertexDeclarationGL*>(IVideoDriver::instance->getVertexDeclaration(vertexPCT2::FORMAT));