[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23521] trunk/blender/source/blender/imbuf /intern/divers.c: Fix #19470: displaying depth pass could crash, conversion from
Brecht Van Lommel
brecht at blender.org
Mon Sep 28 11:06:28 CEST 2009
Revision: 23521
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23521
Author: blendix
Date: 2009-09-28 11:06:28 +0200 (Mon, 28 Sep 2009)
Log Message:
-----------
Fix #19470: displaying depth pass could crash, conversion from
float to byte was not working correct.
Modified Paths:
--------------
trunk/blender/source/blender/imbuf/intern/divers.c
Modified: trunk/blender/source/blender/imbuf/intern/divers.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/divers.c 2009-09-28 08:52:02 UTC (rev 23520)
+++ trunk/blender/source/blender/imbuf/intern/divers.c 2009-09-28 09:06:28 UTC (rev 23521)
@@ -190,7 +190,11 @@
to = (unsigned char *) ibuf->rect;
}
- if (profile == IB_PROFILE_SRGB && (channels == 3 || channels == 4)) {
+ if(channels==1) {
+ for (i = ibuf->x * ibuf->y; i > 0; i--, to+=4, tof++)
+ to[1]= to[2]= to[3]= to[0] = FTOCHAR(tof[0]);
+ }
+ else if (profile == IB_PROFILE_SRGB) {
if(channels == 3) {
for (i = ibuf->x * ibuf->y; i > 0; i--, to+=4, tof+=3) {
srgb[0]= linearrgb_to_srgb(tof[0]);
@@ -207,12 +211,8 @@
floatbuf_to_srgb_byte(tof, to, 0, ibuf->x, 0, ibuf->y, ibuf->x);
}
}
- else if(ELEM(profile, IB_PROFILE_NONE, IB_PROFILE_LINEAR_RGB) && (dither==0.0f || channels!=4)) {
- if(channels==1) {
- for (i = ibuf->x * ibuf->y; i > 0; i--, to+=4, tof++)
- to[1]= to[2]= to[3]= to[0] = FTOCHAR(tof[0]);
- }
- else if(channels==3) {
+ else if(ELEM(profile, IB_PROFILE_NONE, IB_PROFILE_LINEAR_RGB) && dither==0.0f) {
+ if(channels==3) {
for (i = ibuf->x * ibuf->y; i > 0; i--, to+=4, tof+=3) {
to[0] = FTOCHAR(tof[0]);
to[1] = FTOCHAR(tof[1]);
More information about the Bf-blender-cvs
mailing list