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:
Diffstat (limited to 'release/plugins/sequence/color-correction-hsv.c')
-rw-r--r--release/plugins/sequence/color-correction-hsv.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/release/plugins/sequence/color-correction-hsv.c b/release/plugins/sequence/color-correction-hsv.c
index 2e57c6f0f48..ec8478706f1 100644
--- a/release/plugins/sequence/color-correction-hsv.c
+++ b/release/plugins/sequence/color-correction-hsv.c
@@ -182,10 +182,12 @@ static void rgb_to_hsv (double r, double g, double b,
void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
int height, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *out, ImBuf *use) {
- char *dest, *src1, *src2;
+ char *dest, *src1;
int x, y, c;
double gamma_table[256];
double uv_table[256];
+ float *destf = out->rect_float;
+ float *src1f = ibuf1->rect_float;
if (!ibuf1) return;
@@ -224,7 +226,9 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
double h,s,v,r,g,b;
double fac;
- rgb_to_hsv((double) src1[0]/255.0,
+ if (ibuf1->rect_float) rgb_to_hsv(src1f[0], src1f[1],
+ src1f[2],&h,&s,&v);
+ else rgb_to_hsv((double) src1[0]/255.0,
(double) src1[1]/255.0,
(double) src1[2]/255.0,
&h, &s, &v);
@@ -238,10 +242,18 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
}
hsv_to_rgb(h,s,v, &r, &g, &b);
- *dest++ = r*255.0;
- *dest++ = g*255.0;
- *dest++ = b*255.0;
- dest++;
+ if (out->rect_float) {
+ destf[0] = r;
+ destf[1] = g;
+ destf[2] = b;
+ destf = destf + 4;
+ src1f +=4;
+ } else {
+ dest[0] = r*255.0;
+ dest[1] = g*255.0;
+ dest[2] = b*255.0;
+ dest += 4;
+ }
src1 += 4;
}