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.c166
1 files changed, 86 insertions, 80 deletions
diff --git a/release/plugins/sequence/color-correction-hsv.c b/release/plugins/sequence/color-correction-hsv.c
index b9ffd88b26c..f77acd2ce93 100644
--- a/release/plugins/sequence/color-correction-hsv.c
+++ b/release/plugins/sequence/color-correction-hsv.c
@@ -19,24 +19,24 @@
#include "plugin.h"
#include <stdio.h>
-char name[]= "Color Correction";
+char name[] = "Color Correction";
-VarStruct varstr[]= {
- { NUMSLI|FLO, "St Y:", 0.0, -1.0, 1.0, "Setup Y"},
- { NUMSLI|FLO, "Gn Y:", 1.0, 0.0, 10.0,"Gain Y"},
- { NUMSLI|FLO, "Ga Y:", 1.0, 0.0, 10.0, "Gamma Y"},
+VarStruct varstr[] = {
+ { NUMSLI | FLO, "St Y:", 0.0, -1.0, 1.0, "Setup Y"},
+ { NUMSLI | FLO, "Gn Y:", 1.0, 0.0, 10.0, "Gain Y"},
+ { NUMSLI | FLO, "Ga Y:", 1.0, 0.0, 10.0, "Gamma Y"},
- { NUMSLI|FLO, "Lo S:", 1.0, 0.0, 10.0,"Saturation Shadows"},
- { NUMSLI|FLO, "Md S:", 1.0, 0.0, 10.0,"Saturation Midtones"},
- { NUMSLI|FLO, "Hi S:", 1.0, 0.0, 10.0,"Saturation Highlights"},
+ { NUMSLI | FLO, "Lo S:", 1.0, 0.0, 10.0, "Saturation Shadows"},
+ { NUMSLI | FLO, "Md S:", 1.0, 0.0, 10.0, "Saturation Midtones"},
+ { NUMSLI | FLO, "Hi S:", 1.0, 0.0, 10.0, "Saturation Highlights"},
- { NUMSLI|FLO, "MA S:", 1.0, 0.0, 10.0,"Master Saturation"},
+ { NUMSLI | FLO, "MA S:", 1.0, 0.0, 10.0, "Master Saturation"},
- { NUMSLI|FLO, "Lo T:", 0.25, 0.0, 1.0,
+ { NUMSLI | FLO, "Lo T:", 0.25, 0.0, 1.0,
"Saturation Shadow Thres"},
- { NUMSLI|FLO, "Hi T:", 0.75, 0.0, 1.0,
+ { NUMSLI | FLO, "Hi T:", 0.75, 0.0, 1.0,
"Saturation Highlights Thres"},
- { TOG|INT, "Debug", 0.0, 0.0, 1.0,
+ { TOG | INT, "Debug", 0.0, 0.0, 1.0,
"Show curves as overlay"},
};
@@ -58,25 +58,28 @@ float cfra;
void plugin_seq_doit(Cast *, float, float, int, int, ImBuf *, ImBuf *, ImBuf *, ImBuf *);
-int plugin_seq_getversion(void) { return B_PLUGIN_VERSION;}
+int plugin_seq_getversion(void)
+{
+ return B_PLUGIN_VERSION;
+}
void plugin_but_changed(int but) {}
void plugin_init() {}
void plugin_getinfo(PluginInfo *info)
{
- info->name= name;
- info->nvars= sizeof(varstr)/sizeof(VarStruct);
- info->cfra= &cfra;
+ info->name = name;
+ info->nvars = sizeof(varstr) / sizeof(VarStruct);
+ info->cfra = &cfra;
- info->varstr= varstr;
+ info->varstr = varstr;
- info->init= plugin_init;
- info->seq_doit= (SeqDoit) plugin_seq_doit;
- info->callback= plugin_but_changed;
+ info->init = plugin_init;
+ info->seq_doit = (SeqDoit) plugin_seq_doit;
+ info->callback = plugin_but_changed;
}
-static void hsv_to_rgb (double h, double s, double v,
- double *r, double *g, double *b)
+static void hsv_to_rgb(double h, double s, double v,
+ double *r, double *g, double *b)
{
int i;
double f, w, q, t;
@@ -90,8 +93,7 @@ static void hsv_to_rgb (double h, double s, double v,
*g = v;
*b = v;
}
- else
- {
+ else {
if (h == 360.0)
h = 0.0;
h = h / 60.0;
@@ -103,42 +105,42 @@ static void hsv_to_rgb (double h, double s, double v,
switch (i)
{
- case 0:
- *r = v;
- *g = t;
- *b = w;
- break;
- case 1:
- *r = q;
- *g = v;
- *b = w;
- break;
- case 2:
- *r = w;
- *g = v;
- *b = t;
- break;
- case 3:
- *r = w;
- *g = q;
- *b = v;
- break;
- case 4:
- *r = t;
- *g = w;
- *b = v;
- break;
- case 5:
- *r = v;
- *g = w;
- *b = q;
- break;
+ case 0:
+ *r = v;
+ *g = t;
+ *b = w;
+ break;
+ case 1:
+ *r = q;
+ *g = v;
+ *b = w;
+ break;
+ case 2:
+ *r = w;
+ *g = v;
+ *b = t;
+ break;
+ case 3:
+ *r = w;
+ *g = q;
+ *b = v;
+ break;
+ case 4:
+ *r = t;
+ *g = w;
+ *b = v;
+ break;
+ case 5:
+ *r = v;
+ *g = w;
+ *b = q;
+ break;
}
}
}
-static void rgb_to_hsv (double r, double g, double b,
- double *h, double *s, double *v)
+static void rgb_to_hsv(double r, double g, double b,
+ double *h, double *s, double *v)
{
double max, min, delta;
@@ -163,8 +165,7 @@ static void rgb_to_hsv (double r, double g, double b,
if (*s == 0.0)
*h = -1.0;
- else
- {
+ else {
delta = max - min;
if (r == max)
@@ -182,7 +183,8 @@ 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) {
+ int height, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *out, ImBuf *use)
+{
char *dest, *src1;
int x, y, c;
double gamma_table[256];
@@ -192,18 +194,19 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
if (!ibuf1) return;
- dest= (char *) out->rect;
- src1= (char *) ibuf1->rect;
- src1f= ibuf1->rect_float;
+ dest = (char *) out->rect;
+ src1 = (char *) ibuf1->rect;
+ src1f = ibuf1->rect_float;
for (y = 0; y < 256; y++) {
float v = 1.0 * y / 255;
v += cast->setup_y;
v *= cast->gain_y;
v = pow(v, cast->gamma_y);
- if ( v > 1.0) {
+ if (v > 1.0) {
v = 1.0;
- } else if (v < 0.0) {
+ }
+ else if (v < 0.0) {
v = 0.0;
}
gamma_table[y] = v * 255;
@@ -214,9 +217,11 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
v *= cast->master_sat;
if (y < cast->lo_thres * 255) {
v *= cast->sat_shadows;
- } else if (y > cast->hi_thres * 255) {
+ }
+ else if (y > cast->hi_thres * 255) {
v *= cast->sat_highlights;
- } else {
+ }
+ else {
v *= cast->sat_midtones;
}
uv_table[y] = v;
@@ -225,15 +230,15 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
- double h,s,v,r,g,b;
+ double h, s, v, r, g, b;
double fac;
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);
+ 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);
v = gamma_table[(int) (v * 255.0)] / 255.0;
fac = uv_table[(int) (255.0 * v)];
@@ -242,18 +247,19 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
if (s >= 1.0) {
s = 1.0;
}
- hsv_to_rgb(h,s,v, &r, &g, &b);
+ hsv_to_rgb(h, s, v, &r, &g, &b);
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;
+ src1f += 4;
+ }
+ else {
+ dest[0] = r * 255.0;
+ dest[1] = g * 255.0;
+ dest[2] = b * 255.0;
dest += 4;
}
@@ -262,7 +268,7 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
}
if (cast->debug) {
- dest= (char *) out->rect;
+ dest = (char *) out->rect;
for (c = 0; c < 10; c++) {
x = 0;
for (y = 0; y < 256; y++) {
@@ -279,7 +285,7 @@ void plugin_seq_doit(Cast *cast, float facf0, float facf1, int width,
for (c = 0; c < 10; c++) {
x = 0;
for (y = 0; y < 256; y++) {
- char val = uv_table[y] * 255.0/10.0;
+ char val = uv_table[y] * 255.0 / 10.0;
while (x < y * width / 255) {
*dest++ = val;
*dest++ = val;