Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-04-16 17:52:38 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-04-16 17:52:38 +0400
commit18feb1630d1fbcd3f6e8d71c3a2c5fc44fc9e02b (patch)
tree41fc7534e528709758e84293a9fdb2bcc559b52d /intern/cycles
parentfe4305ef825f5652191d937d1d7ff22f302ddbd0 (diff)
Fix #34966: cycles packed PNG images were showing alpha fringe, packed images
were not properly premultiplied.
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/blender/blender_session.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 1f1bb830771..f4f9ec548a4 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -693,6 +693,14 @@ bool BlenderSession::builtin_image_pixels(const string &builtin_name, void *buil
}
}
+ /* premultiply, byte images are always straight for blender */
+ unsigned char *cp = pixels;
+ for(int i = 0; i < width * height; i++, cp += channels) {
+ cp[0] = (cp[0] * cp[3]) >> 8;
+ cp[1] = (cp[1] * cp[3]) >> 8;
+ cp[2] = (cp[2] * cp[3]) >> 8;
+ }
+
return true;
}