Multires baker: noneed to tag display as invalid after every flushed pixel

This commit is contained in:
Sergey Sharybin
2012-12-18 17:46:48 +00:00
parent 6571713ddb
commit 9e2b1900a8

View File

@@ -400,6 +400,11 @@ static void do_multires_bake(MultiresBakeRender *bkr, Image *ima, int require_ta
data.i2 = verts[2][t];
bake_rasterize(&bake_rast, mtfate->uv[data.i0], mtfate->uv[data.i1], mtfate->uv[data.i2]);
if (ibuf->rect_float)
ibuf->userflags |= IB_RECT_INVALID;
ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
}
bkr->baked_faces++;
@@ -620,7 +625,10 @@ static void apply_heights_data(void *bake_data)
}
}
ibuf->userflags = IB_RECT_INVALID | IB_DISPLAY_BUFFER_INVALID;
if (ibuf->rect_float)
ibuf->userflags |= IB_RECT_INVALID;
ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
BKE_image_release_ibuf(height_data->ima, ibuf, NULL);
}
@@ -701,15 +709,11 @@ static void apply_heights_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm,
if (ibuf->rect_float) {
float *rrgbf = ibuf->rect_float + pixel * 4;
rrgbf[3] = 1.0f;
ibuf->userflags = IB_RECT_INVALID;
}
else {
char *rrgb = (char *)ibuf->rect + pixel * 4;
rrgb[3] = 255;
}
ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
}
/* **************** Normal Maps Baker **************** */
@@ -781,16 +785,12 @@ static void apply_tangmat_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm,
rrgbf[1] = vec[1];
rrgbf[2] = vec[2];
rrgbf[3] = 1.0f;
ibuf->userflags = IB_RECT_INVALID;
}
else {
unsigned char *rrgb = (unsigned char *)ibuf->rect + pixel * 4;
rgb_float_to_uchar(rrgb, vec);
rrgb[3] = 255;
}
ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
}
/* **************** Ambient Occlusion Baker **************** */
@@ -1073,16 +1073,12 @@ static void apply_ao_callback(DerivedMesh *lores_dm, DerivedMesh *hires_dm, cons
float *rrgbf = ibuf->rect_float + pixel * 4;
rrgbf[0] = rrgbf[1] = rrgbf[2] = value;
rrgbf[3] = 1.0f;
ibuf->userflags = IB_RECT_INVALID;
}
else {
unsigned char *rrgb = (unsigned char *) ibuf->rect + pixel * 4;
rrgb[0] = rrgb[1] = rrgb[2] = FTOCHAR(value);
rrgb[3] = 255;
}
ibuf->userflags |= IB_DISPLAY_BUFFER_INVALID;
}
/* **************** Common functions public API relates on **************** */