Browse Source

removing flags from Diffuse

dmuratshin 9 years ago
parent
commit
62a03516f5

+ 1 - 1
oxygine/src/oxygine/AnimationFrame.cpp

@@ -85,7 +85,7 @@ namespace oxygine
         _row = _column = 0;
         _resAnim = 0;
         _diffuse.base = t;
-        _diffuse.premultiplied = true;
+        //_diffuse.premultiplied = true;
         _srcRect = RectF(0, 0, 1, 1);
         _destRect = RectF(0, 0, (float)t->getWidth(), (float)t->getHeight());
         _frameSize = Vector2((float)t->getWidth(), (float)t->getHeight());

+ 3 - 2
oxygine/src/oxygine/AnimationFrame.h

@@ -9,10 +9,11 @@ namespace oxygine
     class Diffuse
     {
     public:
-        Diffuse(): premultiplied(true) {}
+        Diffuse(): flags(0) {}
         spNativeTexture base;
         spNativeTexture alpha;
-        bool premultiplied;
+        //bool premultiplied;
+        int flags;
     };
 
     class HitTestData

+ 1 - 1
oxygine/src/oxygine/Box9Sprite.cpp

@@ -298,7 +298,7 @@ namespace oxygine
         {
             if (_guidesX.size() >= 2 || _guidesY.size() >= 2)
             {
-                renderer->setTexture(df.base, df.alpha, df.premultiplied);
+                //renderer->setTexture(df.base, df.alpha, df.premultiplied);
                 renderer->setBlendMode(getBlendMode());
                 renderer->setTransform(rs.transform);
 

+ 1 - 1
oxygine/src/oxygine/ProgressBar.cpp

@@ -124,7 +124,7 @@ namespace oxygine
         if (df.base)
         {
             renderer->setBlendMode(getBlendMode());
-            renderer->setTexture(df.base, df.alpha, df.premultiplied);
+            //renderer->setTexture(df.base, df.alpha, df.premultiplied);
 
             RectF destRect = inherited::getDestRect();
 

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

@@ -232,6 +232,9 @@ namespace oxygine
             mat->_base  = df.base;
             mat->_alpha = df.alpha;
 
+            mat->_flags = df.flags;
+            /*
+
             if (df.premultiplied)
                 mat->_flags &= ~UberShaderProgram::ALPHA_PREMULTIPLY;
             else
@@ -241,6 +244,7 @@ namespace oxygine
                 mat->_flags |= UberShaderProgram::SEPARATE_ALPHA;
             else
                 mat->_flags &= ~UberShaderProgram::SEPARATE_ALPHA;
+                */
 
 
             _mat = mc().cache(*mat.get());

+ 1 - 1
oxygine/src/oxygine/res/ResAtlasGeneric.cpp

@@ -433,7 +433,7 @@ namespace oxygine
                         AnimationFrame frame;
                         Diffuse df;
                         df.base = ad.texture;
-                        df.premultiplied = true;//!Renderer::getPremultipliedAlphaRender();
+                        //df.premultiplied = true;//!Renderer::getPremultipliedAlphaRender();
 
                         Vector2 fsize = Vector2((float)frame_width, (float)frame_height) * walker.getScaleFactor();
                         frame.init2(ra, x, y, df,

+ 8 - 1
oxygine/src/oxygine/res/ResAtlasPrebuilt.cpp

@@ -1,5 +1,6 @@
 #include "ResAtlasPrebuilt.h"
 #include "Resources.h"
+#include "core/UberShaderProgram.h"
 
 extern "C"
 {
@@ -172,7 +173,13 @@ namespace oxygine
                         df.alpha = alpha;
 
                         //compressed data could not be premultiplied
-                        df.premultiplied = !compressed;
+                        //df.premultiplied = !compressed;
+
+                        if (compressed)
+                            df.flags |= UberShaderProgram::ALPHA_PREMULTIPLY;
+
+                        if (alpha)
+                            df.flags |= UberShaderProgram::SEPARATE_ALPHA;
 
                         size_t n = frames.size();
                         int column = n % columns;