Fix 35091: Blender internal does not render face texture alpha
authorSergey Sharybin <sergey.vfx@gmail.com>
Fri, 26 Apr 2013 14:32:06 +0000 (14:32 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Fri, 26 Apr 2013 14:32:06 +0000 (14:32 +0000)
Issue was introduced in svn rev54374.

Now made it so image's flag from imagewrap*() argument
is checked instead of using tex->ima, which seems how
this functions were supposed to work.

Doublechecking on this change is really welcome!

source/blender/render/intern/source/imagetexture.c

index f38d1d88fc79a12567a0f7292eb4b684afdcdc9e..8bb44918fb6135658e44471bda18fee031e6ce8d 100644 (file)
@@ -224,7 +224,7 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], TexResul
        }
 
        /* keep this before interpolation [#29761] */
-       if ((tex->imaflag & TEX_USEALPHA) && tex->ima && (tex->ima->flag & IMA_IGNORE_ALPHA) == 0) {
+       if ((tex->imaflag & TEX_USEALPHA) && (tex->ima->flag & IMA_IGNORE_ALPHA) == 0) {
                if ((tex->imaflag & TEX_CALCALPHA) == 0) {
                        texres->talpha = TRUE;
                }
@@ -1109,7 +1109,7 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
        /* mipmap test */
        image_mipmap_test(tex, ibuf);
        
-       if ((tex->imaflag & TEX_USEALPHA) && tex->ima && (tex->ima->flag & IMA_IGNORE_ALPHA) == 0) {
+       if ((tex->imaflag & TEX_USEALPHA) && (ima->flag & IMA_IGNORE_ALPHA) == 0) {
                if ((tex->imaflag & TEX_CALCALPHA) == 0)
                        texres->talpha = 1;
        }
@@ -1526,7 +1526,7 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
        /* mipmap test */
        image_mipmap_test(tex, ibuf);
 
-       if ((tex->imaflag & TEX_USEALPHA) && tex->ima && (tex->ima->flag & IMA_IGNORE_ALPHA) == 0) {
+       if ((tex->imaflag & TEX_USEALPHA) && (tex->ima->flag & IMA_IGNORE_ALPHA) == 0) {
                if ((tex->imaflag & TEX_CALCALPHA) == 0) {
                        texres->talpha = TRUE;
                }