Browse Source

added STDRenderer texture hook

dmuratshin 9 years ago
parent
commit
37da626492
2 changed files with 22 additions and 0 deletions
  1. 18 0
      oxygine/src/STDRenderer.cpp
  2. 4 0
      oxygine/src/STDRenderer.h

+ 18 - 0
oxygine/src/STDRenderer.cpp

@@ -34,6 +34,20 @@ namespace oxygine
     std::vector<unsigned char> STDRenderer::uberShaderBody;
 
 
+
+    void nullTextureHook(const spNativeTexture&)
+    {
+    }
+
+    render_texture_hook _renderTextureHook = nullTextureHook;
+
+
+
+    void set_render_texture_hook(render_texture_hook h)
+    {
+        _renderTextureHook = h;
+    }
+
     template<class V, class XY>
     void fillQuad(V* v, const RectF& uv, XY* positions, const Color& color)
     {
@@ -457,6 +471,9 @@ namespace oxygine
 
     void STDRenderer::setTexture(const spNativeTexture& base_, const spNativeTexture& alpha, bool basePremultiplied)
     {
+        _renderTextureHook(base_);
+        _renderTextureHook(alpha);
+
         spNativeTexture base = base_;
         if (base == 0 || base->getHandle() == 0)
             base = white;
@@ -538,6 +555,7 @@ namespace oxygine
         ShaderProgram* prog = _uberShader->getShaderProgram(_shaderFlags)->program;
         setShader(prog);
 
+
         _uberShader->apply(_driver, _base, _alpha);
 
         UberShaderProgramBase::ShaderUniformsCallback cb = _uberShader->getShaderUniformsCallback();

+ 4 - 0
oxygine/src/STDRenderer.h

@@ -113,4 +113,8 @@ namespace oxygine
         UberShaderProgram* _uberShader;
         unsigned int _shaderFlags;
     };
+
+
+    typedef void(*render_texture_hook)(const spNativeTexture& nt);
+    void set_render_texture_hook(render_texture_hook);
 }