[email protected] vor 8 Jahren
Ursprung
Commit
4fe14b79bc

+ 14 - 1
oxygine/src/oxygine/MaterialX.cpp

@@ -21,11 +21,14 @@ namespace oxygine
             return false;
         if (a._uberShader != b._uberShader)
             return false;
+        if (a._addColor != b._addColor)
+            return false;
         return true;
     }
 
     void STDMaterialX::init()
     {
+        _addColor = 0;
         _blend = blend_premultiplied_alpha;
         _flags = 0;
         _uberShader = &STDRenderer::uberShader;
@@ -38,13 +41,23 @@ namespace oxygine
         hash_combine(hash, (int)_blend);
         hash_combine(hash, _flags);
         hash_combine(hash, _uberShader);
+        hash_combine(hash, _addColor.argb);
     }
 
     void STDMaterialX::xapply()
     {
         STDRenderer* r = STDRenderer::getCurrent();
         r->setUberShaderProgram(_uberShader);
-        r->setShaderFlags(_flags);
+
+        if (_addColor.argb)
+        {
+            r->setShaderFlags(_flags | UberShaderProgram::ADD_COLOR);
+            Vector4 vec = _addColor.toVector();
+            r->getDriver()->setUniform("add_color", vec);
+        }
+        else
+            r->setShaderFlags(_flags);
+
         rsCache().setTexture(UberShaderProgram::SAMPLER_BASE, _base);
         rsCache().setTexture(UberShaderProgram::SAMPLER_ALPHA, _alpha);
         rsCache().setBlendMode(_blend);

+ 1 - 0
oxygine/src/oxygine/MaterialX.h

@@ -91,6 +91,7 @@ namespace oxygine
         spNativeTexture    _alpha;
         blend_mode         _blend;
         UberShaderProgram* _uberShader;
+        Color              _addColor;
         int                _flags;
 
         static bool cmp(const STDMaterialX& a, const STDMaterialX& b);

+ 1 - 1
oxygine/src/oxygine/actor/WebImage.cpp

@@ -3,7 +3,7 @@
 #include "../Image.h"
 #include "../HttpRequestTask.h"
 #include "Sprite.h"
-#include "Serialize.h"
+#include "../Serialize.h"
 #include <vector>
 
 namespace oxygine

+ 1 - 1
oxygine/src/oxygine/core/emscripten/HttpRequestEmscriptenTask.cpp

@@ -42,7 +42,7 @@ namespace oxygine
 
     void HttpRequestEmscriptenTask::_onprogress(int a, int b)
     {
-        log::messageln(" HttpRequestEmscriptenTask::_onprogress %d %d", a, b);
+        //log::messageln(" HttpRequestEmscriptenTask::_onprogress %d %d", a, b);
         int delta = a - _receivedContentSize;
         _receivedContentSize = a;
         _expectedContentSize = b;