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:
authorCampbell Barton <ideasman42@gmail.com>2012-05-14 02:05:51 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-05-14 02:05:51 +0400
commit4f2c83f573472c69f7f72762a34e1158433a06b6 (patch)
treee5fe9dcd6d151adf2b906603b15ee20fb4ba9067 /source/blender/imbuf/intern/filter.c
parente5963aae1de14c4aaf2953b1cb91b4119415c565 (diff)
style cleanup: imbuf & icons
Diffstat (limited to 'source/blender/imbuf/intern/filter.c')
-rw-r--r--source/blender/imbuf/intern/filter.c341
1 files changed, 171 insertions, 170 deletions
diff --git a/source/blender/imbuf/intern/filter.c b/source/blender/imbuf/intern/filter.c
index bc5e85a3c55..e744851a9b6 100644
--- a/source/blender/imbuf/intern/filter.c
+++ b/source/blender/imbuf/intern/filter.c
@@ -49,19 +49,19 @@ static void filtrow(unsigned char *point, int x)
{
unsigned int c1, c2, c3, error;
- if (x>1) {
+ if (x > 1) {
c1 = c2 = *point;
error = 2;
- for (x--;x>0;x--) {
+ for (x--; x > 0; x--) {
c3 = point[4];
- c1 += (c2<<1) + c3 + error;
+ c1 += (c2 << 1) + c3 + error;
error = c1 & 3;
*point = c1 >> 2;
point += 4;
- c1=c2;
- c2=c3;
+ c1 = c2;
+ c2 = c3;
}
- *point = (c1 + (c2<<1) + c2 + error) >> 2;
+ *point = (c1 + (c2 << 1) + c2 + error) >> 2;
}
}
@@ -69,17 +69,17 @@ static void filtrowf(float *point, int x)
{
float c1, c2, c3;
- if (x>1) {
+ if (x > 1) {
c1 = c2 = *point;
- for (x--;x>0;x--) {
+ for (x--; x > 0; x--) {
c3 = point[4];
c1 += (c2 * 2) + c3;
- *point = 0.25f*c1;
+ *point = 0.25f * c1;
point += 4;
- c1=c2;
- c2=c3;
+ c1 = c2;
+ c2 = c3;
}
- *point = 0.25f*(c1 + (c2 * 2) + c2);
+ *point = 0.25f * (c1 + (c2 * 2) + c2);
}
}
@@ -90,21 +90,21 @@ static void filtcolum(unsigned char *point, int y, int skip)
unsigned int c1, c2, c3, error;
unsigned char *point2;
- if (y>1) {
+ if (y > 1) {
c1 = c2 = *point;
point2 = point;
error = 2;
- for (y--;y>0;y--) {
+ for (y--; y > 0; y--) {
point2 += skip;
c3 = *point2;
- c1 += (c2<<1) + c3 +error;
+ c1 += (c2 << 1) + c3 + error;
error = c1 & 3;
*point = c1 >> 2;
- point=point2;
- c1=c2;
- c2=c3;
+ point = point2;
+ c1 = c2;
+ c2 = c3;
}
- *point = (c1 + (c2<<1) + c2 + error) >> 2;
+ *point = (c1 + (c2 << 1) + c2 + error) >> 2;
}
}
@@ -112,19 +112,19 @@ static void filtcolumf(float *point, int y, int skip)
{
float c1, c2, c3, *point2;
- if (y>1) {
+ if (y > 1) {
c1 = c2 = *point;
point2 = point;
- for (y--;y>0;y--) {
+ for (y--; y > 0; y--) {
point2 += skip;
c3 = *point2;
c1 += (c2 * 2) + c3;
- *point = 0.25f*c1;
- point=point2;
- c1=c2;
- c2=c3;
+ *point = 0.25f * c1;
+ point = point2;
+ c1 = c2;
+ c2 = c3;
}
- *point = 0.25f*(c1 + (c2 * 2) + c2);
+ *point = 0.25f * (c1 + (c2 * 2) + c2);
}
}
@@ -139,9 +139,9 @@ void IMB_filtery(struct ImBuf *ibuf)
x = ibuf->x;
y = ibuf->y;
- skip = x<<2;
+ skip = x << 2;
- for (;x>0;x--) {
+ for (; x > 0; x--) {
if (point) {
if (ibuf->planes > 24) filtcolum(point, y, skip);
point++;
@@ -177,9 +177,9 @@ void imb_filterx(struct ImBuf *ibuf)
x = ibuf->x;
y = ibuf->y;
- skip = (x<<2) - 3;
+ skip = (x << 2) - 3;
- for (;y>0;y--) {
+ for (; y > 0; y--) {
if (point) {
if (ibuf->planes > 24) filtrow(point, x);
point++;
@@ -188,7 +188,7 @@ void imb_filterx(struct ImBuf *ibuf)
filtrow(point, x);
point++;
filtrow(point, x);
- point+=skip;
+ point += skip;
}
if (pointf) {
if (ibuf->planes > 24) filtrowf(pointf, x);
@@ -198,7 +198,7 @@ void imb_filterx(struct ImBuf *ibuf)
filtrowf(pointf, x);
pointf++;
filtrowf(pointf, x);
- pointf+=skip;
+ pointf += skip;
}
}
}
@@ -209,44 +209,44 @@ void IMB_filterN(ImBuf *out, ImBuf *in)
register char *cp, *r11, *r13, *r21, *r23, *r31, *r33;
int rowlen, x, y;
- rowlen= in->x;
+ rowlen = in->x;
- for (y=0; y<in->y; y++) {
+ for (y = 0; y < in->y; y++) {
/* setup rows */
- row2= (char*)(in->rect + y*rowlen);
- row1= (y == 0)? row2: row2 - 4*rowlen;
- row3= (y == in->y-1)? row2: row2 + 4*rowlen;
+ row2 = (char *)(in->rect + y * rowlen);
+ row1 = (y == 0) ? row2 : row2 - 4 * rowlen;
+ row3 = (y == in->y - 1) ? row2 : row2 + 4 * rowlen;
- cp= (char *)(out->rect + y*rowlen);
+ cp = (char *)(out->rect + y * rowlen);
- for (x=0; x<rowlen; x++) {
+ for (x = 0; x < rowlen; x++) {
if (x == 0) {
r11 = row1;
r21 = row1;
r31 = row1;
}
else {
- r11 = row1-4;
- r21 = row1-4;
- r31 = row1-4;
+ r11 = row1 - 4;
+ r21 = row1 - 4;
+ r31 = row1 - 4;
}
- if (x == rowlen-1) {
+ if (x == rowlen - 1) {
r13 = row1;
r23 = row1;
r33 = row1;
}
else {
- r13 = row1+4;
- r23 = row1+4;
- r33 = row1+4;
+ r13 = row1 + 4;
+ r23 = row1 + 4;
+ r33 = row1 + 4;
}
- cp[0]= (r11[0] + 2*row1[0] + r13[0] + 2*r21[0] + 4*row2[0] + 2*r23[0] + r31[0] + 2*row3[0] + r33[0])>>4;
- cp[1]= (r11[1] + 2*row1[1] + r13[1] + 2*r21[1] + 4*row2[1] + 2*r23[1] + r31[1] + 2*row3[1] + r33[1])>>4;
- cp[2]= (r11[2] + 2*row1[2] + r13[2] + 2*r21[2] + 4*row2[2] + 2*r23[2] + r31[2] + 2*row3[2] + r33[2])>>4;
- cp[3]= (r11[3] + 2*row1[3] + r13[3] + 2*r21[3] + 4*row2[3] + 2*r23[3] + r31[3] + 2*row3[3] + r33[3])>>4;
- cp+=4; row1+=4; row2+=4; row3+=4;
+ cp[0] = (r11[0] + 2 * row1[0] + r13[0] + 2 * r21[0] + 4 * row2[0] + 2 * r23[0] + r31[0] + 2 * row3[0] + r33[0]) >> 4;
+ cp[1] = (r11[1] + 2 * row1[1] + r13[1] + 2 * r21[1] + 4 * row2[1] + 2 * r23[1] + r31[1] + 2 * row3[1] + r33[1]) >> 4;
+ cp[2] = (r11[2] + 2 * row1[2] + r13[2] + 2 * r21[2] + 4 * row2[2] + 2 * r23[2] + r31[2] + 2 * row3[2] + r33[2]) >> 4;
+ cp[3] = (r11[3] + 2 * row1[3] + r13[3] + 2 * r21[3] + 4 * row2[3] + 2 * r23[3] + r31[3] + 2 * row3[3] + r33[3]) >> 4;
+ cp += 4; row1 += 4; row2 += 4; row3 += 4;
}
}
}
@@ -263,32 +263,32 @@ void IMB_mask_filter_extend(char *mask, int width, int height)
int rowlen, x, y;
char *temprect;
- rowlen= width;
+ rowlen = width;
/* make a copy, to prevent flooding */
- temprect= MEM_dupallocN(mask);
+ temprect = MEM_dupallocN(mask);
- for (y=1; y<=height; y++) {
+ for (y = 1; y <= height; y++) {
/* setup rows */
- row1= (char *)(temprect + (y-2)*rowlen);
- row2= row1 + rowlen;
- row3= row2 + rowlen;
- if (y==1)
- row1= row2;
- else if (y==height)
- row3= row2;
-
- for (x=0; x<rowlen; x++) {
- if (mask[((y-1)*rowlen)+x]==0) {
- if (*row1 || *row2 || *row3 || *(row1+1) || *(row3+1) ) {
- mask[((y-1)*rowlen)+x] = FILTER_MASK_MARGIN;
+ row1 = (char *)(temprect + (y - 2) * rowlen);
+ row2 = row1 + rowlen;
+ row3 = row2 + rowlen;
+ if (y == 1)
+ row1 = row2;
+ else if (y == height)
+ row3 = row2;
+
+ for (x = 0; x < rowlen; x++) {
+ if (mask[((y - 1) * rowlen) + x] == 0) {
+ if (*row1 || *row2 || *row3 || *(row1 + 1) || *(row3 + 1) ) {
+ mask[((y - 1) * rowlen) + x] = FILTER_MASK_MARGIN;
}
- else if ((x!=rowlen-1) && (*(row1+2) || *(row2+2) || *(row3+2)) ) {
- mask[((y-1)*rowlen)+x] = FILTER_MASK_MARGIN;
+ else if ((x != rowlen - 1) && (*(row1 + 2) || *(row2 + 2) || *(row3 + 2)) ) {
+ mask[((y - 1) * rowlen) + x] = FILTER_MASK_MARGIN;
}
}
- if (x!=0) {
+ if (x != 0) {
row1++; row2++; row3++;
}
}
@@ -301,10 +301,10 @@ void IMB_mask_clear(ImBuf *ibuf, char *mask, int val)
{
int x, y;
if (ibuf->rect_float) {
- for (x=0; x<ibuf->x; x++) {
- for (y=0; y<ibuf->y; y++) {
- if (mask[ibuf->x*y + x] == val) {
- float *col= ibuf->rect_float + 4*(ibuf->x*y + x);
+ for (x = 0; x < ibuf->x; x++) {
+ for (y = 0; y < ibuf->y; y++) {
+ if (mask[ibuf->x * y + x] == val) {
+ float *col = ibuf->rect_float + 4 * (ibuf->x * y + x);
col[0] = col[1] = col[2] = col[3] = 0.0f;
}
}
@@ -312,10 +312,10 @@ void IMB_mask_clear(ImBuf *ibuf, char *mask, int val)
}
else {
/* char buffer */
- for (x=0; x<ibuf->x; x++) {
- for (y=0; y<ibuf->y; y++) {
- if (mask[ibuf->x*y + x] == val) {
- char *col= (char *)(ibuf->rect + ibuf->x*y + x);
+ for (x = 0; x < ibuf->x; x++) {
+ for (y = 0; y < ibuf->y; y++) {
+ if (mask[ibuf->x * y + x] == val) {
+ char *col = (char *)(ibuf->rect + ibuf->x * y + x);
col[0] = col[1] = col[2] = col[3] = 0;
}
}
@@ -325,23 +325,23 @@ void IMB_mask_clear(ImBuf *ibuf, char *mask, int val)
static int filter_make_index(const int x, const int y, const int w, const int h)
{
- if (x<0 || x>=w || y<0 || y>=h) return -1; /* return bad index */
- else return y*w+x;
+ if (x < 0 || x >= w || y < 0 || y >= h) return -1; /* return bad index */
+ else return y * w + x;
}
static int check_pixel_assigned(const void *buffer, const char *mask, const int index, const int depth, const int is_float)
{
int res = 0;
- if (index>=0) {
- const int alpha_index = depth*index+(depth-1);
+ if (index >= 0) {
+ const int alpha_index = depth * index + (depth - 1);
- if (mask!=NULL) {
- res = mask[index]!=0 ? 1 : 0;
+ if (mask != NULL) {
+ res = mask[index] != 0 ? 1 : 0;
}
- else if ( (is_float && ((const float *) buffer)[alpha_index]!=0.0f) ||
- (!is_float && ((const unsigned char *) buffer)[alpha_index]!=0) ) {
- res=1;
+ else if ( (is_float && ((const float *) buffer)[alpha_index] != 0.0f) ||
+ (!is_float && ((const unsigned char *) buffer)[alpha_index] != 0) ) {
+ res = 1;
}
}
@@ -354,93 +354,94 @@ static int check_pixel_assigned(const void *buffer, const char *mask, const int
* */
void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter)
{
- const int width= ibuf->x;
- const int height= ibuf->y;
- const int depth= 4; /* always 4 channels */
- const int chsize= ibuf->rect_float ? sizeof(float) : sizeof(unsigned char);
- const int bsize= width*height*depth*chsize;
- const int is_float= ibuf->rect_float!=NULL;
- void *dstbuf= (void *) MEM_dupallocN(ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect);
- char *dstmask= mask==NULL ? NULL : (char *) MEM_dupallocN(mask);
- void *srcbuf= ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect;
- char *srcmask= mask;
- int cannot_early_out= 1, r, n, k, i, j, c;
+ const int width = ibuf->x;
+ const int height = ibuf->y;
+ const int depth = 4; /* always 4 channels */
+ const int chsize = ibuf->rect_float ? sizeof(float) : sizeof(unsigned char);
+ const int bsize = width * height * depth * chsize;
+ const int is_float = ibuf->rect_float != NULL;
+ void *dstbuf = (void *) MEM_dupallocN(ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect);
+ char *dstmask = mask == NULL ? NULL : (char *) MEM_dupallocN(mask);
+ void *srcbuf = ibuf->rect_float ? (void *) ibuf->rect_float : (void *) ibuf->rect;
+ char *srcmask = mask;
+ int cannot_early_out = 1, r, n, k, i, j, c;
float weight[25];
/* build a weights buffer */
- n= 1;
+ n = 1;
#if 0
- k= 0;
+ k = 0;
for (i = -n; i <= n; i++)
for (j = -n; j <= n; j++)
weight[k++] = sqrt((float) i * i + j * j);
#endif
- weight[0]=1; weight[1]=2; weight[2]=1;
- weight[3]=2; weight[4]=0; weight[5]=2;
- weight[6]=1; weight[7]=2; weight[8]=1;
+ weight[0] = 1; weight[1] = 2; weight[2] = 1;
+ weight[3] = 2; weight[4] = 0; weight[5] = 2;
+ weight[6] = 1; weight[7] = 2; weight[8] = 1;
/* run passes */
for (r = 0; cannot_early_out == 1 && r < filter; r++) {
int x, y;
cannot_early_out = 0;
- for (y= 0; y<height; y++) {
- for (x= 0; x<width; x++) {
- const int index= filter_make_index(x, y, width, height);
+ for (y = 0; y < height; y++) {
+ for (x = 0; x < width; x++) {
+ const int index = filter_make_index(x, y, width, height);
/* only update unassigned pixels */
if (!check_pixel_assigned(srcbuf, srcmask, index, depth, is_float)) {
float tmp[4];
- float wsum=0;
- float acc[4]={0, 0, 0, 0};
+ float wsum = 0;
+ float acc[4] = {0, 0, 0, 0};
k = 0;
- if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x-1, y, width, height), depth, is_float) ||
- check_pixel_assigned(srcbuf, srcmask, filter_make_index(x+1, y, width, height), depth, is_float) ||
- check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y-1, width, height), depth, is_float) ||
- check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y+1, width, height), depth, is_float)) {
- for (i= -n; i<=n; i++) {
- for (j=-n; j<=n; j++) {
+ if (check_pixel_assigned(srcbuf, srcmask, filter_make_index(x - 1, y, width, height), depth, is_float) ||
+ check_pixel_assigned(srcbuf, srcmask, filter_make_index(x + 1, y, width, height), depth, is_float) ||
+ check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y - 1, width, height), depth, is_float) ||
+ check_pixel_assigned(srcbuf, srcmask, filter_make_index(x, y + 1, width, height), depth, is_float))
+ {
+ for (i = -n; i <= n; i++) {
+ for (j = -n; j <= n; j++) {
if (i != 0 || j != 0) {
- const int tmpindex= filter_make_index(x+i, y+j, width, height);
+ const int tmpindex = filter_make_index(x + i, y + j, width, height);
- if (check_pixel_assigned(srcbuf, srcmask, tmpindex, depth, is_float)) {
+ if (check_pixel_assigned(srcbuf, srcmask, tmpindex, depth, is_float)) {
if (is_float) {
- for (c=0; c<depth; c++)
- tmp[c] = ((const float *) srcbuf)[depth*tmpindex+c];
+ for (c = 0; c < depth; c++)
+ tmp[c] = ((const float *) srcbuf)[depth * tmpindex + c];
}
else {
- for (c=0; c<depth; c++)
- tmp[c] = (float) ((const unsigned char *) srcbuf)[depth*tmpindex+c];
+ for (c = 0; c < depth; c++)
+ tmp[c] = (float) ((const unsigned char *) srcbuf)[depth * tmpindex + c];
}
- wsum+= weight[k];
+ wsum += weight[k];
- for (c=0; c<depth; c++)
- acc[c]+= weight[k] * tmp[c];
+ for (c = 0; c < depth; c++)
+ acc[c] += weight[k] * tmp[c];
}
}
k++;
}
}
- if (wsum!=0) {
- for (c=0; c<depth; c++)
- acc[c]/= wsum;
+ if (wsum != 0) {
+ for (c = 0; c < depth; c++)
+ acc[c] /= wsum;
if (is_float) {
- for (c=0; c<depth; c++)
- ((float *) dstbuf)[depth*index+c] = acc[c];
+ for (c = 0; c < depth; c++)
+ ((float *) dstbuf)[depth * index + c] = acc[c];
}
else {
- for (c=0; c<depth; c++) {
- ((unsigned char *) dstbuf)[depth*index+c]= acc[c] > 255 ? 255 : (acc[c] < 0 ? 0 : ((unsigned char) (acc[c]+0.5f)));
+ for (c = 0; c < depth; c++) {
+ ((unsigned char *) dstbuf)[depth * index + c] = acc[c] > 255 ? 255 : (acc[c] < 0 ? 0 : ((unsigned char) (acc[c] + 0.5f)));
}
}
- if (dstmask!=NULL) dstmask[index]=FILTER_MASK_MARGIN; /* assigned */
+ if (dstmask != NULL) dstmask[index] = FILTER_MASK_MARGIN; /* assigned */
cannot_early_out = 1;
}
}
@@ -450,12 +451,12 @@ void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter)
/* keep the original buffer up to date. */
memcpy(srcbuf, dstbuf, bsize);
- if (dstmask!=NULL) memcpy(srcmask, dstmask, width*height);
+ if (dstmask != NULL) memcpy(srcmask, dstmask, width * height);
}
/* free memory */
MEM_freeN(dstbuf);
- if (dstmask!=NULL) MEM_freeN(dstmask);
+ if (dstmask != NULL) MEM_freeN(dstmask);
}
/* threadsafe version, only recreates existing maps */
@@ -464,14 +465,14 @@ void IMB_remakemipmap(ImBuf *ibuf, int use_filter)
ImBuf *hbuf = ibuf;
int curmap = 0;
- ibuf->miptot= 1;
+ ibuf->miptot = 1;
while (curmap < IB_MIPMAP_LEVELS) {
if (ibuf->mipmap[curmap]) {
if (use_filter) {
- ImBuf *nbuf= IMB_allocImBuf(hbuf->x, hbuf->y, 32, IB_rect);
+ ImBuf *nbuf = IMB_allocImBuf(hbuf->x, hbuf->y, 32, IB_rect);
IMB_filterN(nbuf, hbuf);
imb_onehalf_no_alloc(ibuf->mipmap[curmap], nbuf);
IMB_freeImBuf(nbuf);
@@ -480,10 +481,10 @@ void IMB_remakemipmap(ImBuf *ibuf, int use_filter)
imb_onehalf_no_alloc(ibuf->mipmap[curmap], hbuf);
}
- ibuf->miptot= curmap+2;
- hbuf= ibuf->mipmap[curmap];
+ ibuf->miptot = curmap + 2;
+ hbuf = ibuf->mipmap[curmap];
if (hbuf)
- hbuf->miplevel= curmap+1;
+ hbuf->miplevel = curmap + 1;
if (!hbuf || (hbuf->x <= 2 && hbuf->y <= 2))
break;
@@ -500,11 +501,11 @@ void IMB_makemipmap(ImBuf *ibuf, int use_filter)
imb_freemipmapImBuf(ibuf);
- ibuf->miptot= 1;
+ ibuf->miptot = 1;
while (curmap < IB_MIPMAP_LEVELS) {
if (use_filter) {
- ImBuf *nbuf= IMB_allocImBuf(hbuf->x, hbuf->y, 32, IB_rect);
+ ImBuf *nbuf = IMB_allocImBuf(hbuf->x, hbuf->y, 32, IB_rect);
IMB_filterN(nbuf, hbuf);
ibuf->mipmap[curmap] = IMB_onehalf(nbuf);
IMB_freeImBuf(nbuf);
@@ -512,9 +513,9 @@ void IMB_makemipmap(ImBuf *ibuf, int use_filter)
else
ibuf->mipmap[curmap] = IMB_onehalf(hbuf);
- ibuf->miptot= curmap+2;
- hbuf= ibuf->mipmap[curmap];
- hbuf->miplevel= curmap+1;
+ ibuf->miptot = curmap + 2;
+ hbuf = ibuf->mipmap[curmap];
+ hbuf->miplevel = curmap + 1;
if (hbuf->x <= 2 && hbuf->y <= 2)
break;
@@ -525,8 +526,8 @@ void IMB_makemipmap(ImBuf *ibuf, int use_filter)
ImBuf *IMB_getmipmap(ImBuf *ibuf, int level)
{
- CLAMP(level, 0, ibuf->miptot-1);
- return (level == 0)? ibuf: ibuf->mipmap[level-1];
+ CLAMP(level, 0, ibuf->miptot - 1);
+ return (level == 0) ? ibuf : ibuf->mipmap[level - 1];
}
void IMB_premultiply_rect(unsigned int *rect, char planes, int w, int h)
@@ -534,22 +535,22 @@ void IMB_premultiply_rect(unsigned int *rect, char planes, int w, int h)
char *cp;
int x, y, val;
- if (planes == 24) { /* put alpha at 255 */
- cp= (char *)(rect);
+ if (planes == 24) { /* put alpha at 255 */
+ cp = (char *)(rect);
- for (y=0; y<h; y++)
- for (x=0; x<w; x++, cp+=4)
- cp[3]= 255;
+ for (y = 0; y < h; y++)
+ for (x = 0; x < w; x++, cp += 4)
+ cp[3] = 255;
}
else {
- cp= (char *)(rect);
-
- for (y=0; y<h; y++) {
- for (x=0; x<w; x++, cp+=4) {
- val= cp[3];
- cp[0]= (cp[0]*val)>>8;
- cp[1]= (cp[1]*val)>>8;
- cp[2]= (cp[2]*val)>>8;
+ cp = (char *)(rect);
+
+ for (y = 0; y < h; y++) {
+ for (x = 0; x < w; x++, cp += 4) {
+ val = cp[3];
+ cp[0] = (cp[0] * val) >> 8;
+ cp[1] = (cp[1] * val) >> 8;
+ cp[2] = (cp[2] * val) >> 8;
}
}
}
@@ -560,21 +561,21 @@ void IMB_premultiply_rect_float(float *rect_float, char planes, int w, int h)
float val, *cp;
int x, y;
- if (planes==24) { /* put alpha at 1.0 */
- cp= rect_float;
+ if (planes == 24) { /* put alpha at 1.0 */
+ cp = rect_float;
- for (y=0; y<h; y++)
- for (x=0; x<w; x++, cp+=4)
- cp[3]= 1.0;
+ for (y = 0; y < h; y++)
+ for (x = 0; x < w; x++, cp += 4)
+ cp[3] = 1.0;
}
else {
- cp= rect_float;
- for (y=0; y<h; y++) {
- for (x=0; x<w; x++, cp+=4) {
- val= cp[3];
- cp[0]= cp[0]*val;
- cp[1]= cp[1]*val;
- cp[2]= cp[2]*val;
+ cp = rect_float;
+ for (y = 0; y < h; y++) {
+ for (x = 0; x < w; x++, cp += 4) {
+ val = cp[3];
+ cp[0] = cp[0] * val;
+ cp[1] = cp[1] * val;
+ cp[2] = cp[2] * val;
}
}
}
@@ -583,7 +584,7 @@ void IMB_premultiply_rect_float(float *rect_float, char planes, int w, int h)
void IMB_premultiply_alpha(ImBuf *ibuf)
{
- if (ibuf==NULL)
+ if (ibuf == NULL)
return;
if (ibuf->rect)