[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30255] trunk/blender: - saturation option for sequencer strips, runs before multiply and color balance.
Campbell Barton
ideasman42 at gmail.com
Tue Jul 13 11:28:01 CEST 2010
Revision: 30255
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30255
Author: campbellbarton
Date: 2010-07-13 11:28:01 +0200 (Tue, 13 Jul 2010)
Log Message:
-----------
- saturation option for sequencer strips, runs before multiply and color balance.
- multiply of 0.0 wasnt being applied.
Modified Paths:
--------------
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/blenloader/intern/readfile.c
trunk/blender/source/blender/makesdna/DNA_sequence_types.h
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
trunk/blender/source/blender/makesrna/rna_cleanup/rna_properties.txt
Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===================================================================
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-07-13 08:31:28 UTC (rev 30254)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-07-13 09:28:01 UTC (rev 30255)
@@ -745,6 +745,7 @@
col = layout.column()
col.label(text="Colors:")
+ col.prop(strip, "color_saturation", text="Saturation")
col.prop(strip, "multiply_colors", text="Multiply")
col.prop(strip, "premultiply")
col.prop(strip, "convert_float")
Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c 2010-07-13 08:31:28 UTC (rev 30254)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c 2010-07-13 09:28:01 UTC (rev 30255)
@@ -1769,12 +1769,31 @@
if(seq->flag & SEQ_FLIPX) {
IMB_flipx(se->ibuf);
}
- if(seq->flag & SEQ_FLIPY) {
- IMB_flipy(se->ibuf);
- }
- if(seq->mul == 0.0) {
- seq->mul = 1.0;
+ if(seq->sat != 1.0f) {
+ /* inline for now, could become an imbuf function */
+ int i;
+ char *rct= (char *)se->ibuf->rect;
+ float *rctf= se->ibuf->rect_float;
+ const float sat= seq->sat;
+ float hsv[3];
+
+ if(rct) {
+ float rgb[3];
+ for (i = se->ibuf->x * se->ibuf->y; i > 0; i--, rct+=4) {
+ rgb_byte_to_float(rct, rgb);
+ rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+ hsv_to_rgb(hsv[0], hsv[1] * sat, hsv[2], rgb, rgb+1, rgb+2);
+ rgb_float_to_byte(rgb, rct);
+ }
+ }
+
+ if(rctf) {
+ for (i = se->ibuf->x * se->ibuf->y; i > 0; i--, rctf+=4) {
+ rgb_to_hsv(rctf[0], rctf[1], rctf[2], hsv, hsv+1, hsv+2);
+ hsv_to_rgb(hsv[0], hsv[1] * sat, hsv[2], rctf, rctf+1, rctf+2);
+ }
+ }
}
mul = seq->mul;
Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c 2010-07-13 08:31:28 UTC (rev 30254)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c 2010-07-13 09:28:01 UTC (rev 30255)
@@ -10953,6 +10953,15 @@
tex->saturation= 1.0f;
}
+ for (scene= main->scene.first; scene; scene=scene->id.next) {
+ if(scene) {
+ Sequence *seq;
+ SEQ_BEGIN(scene->ed, seq) {
+ seq->sat= 1.0f;
+ }
+ SEQ_END
+ }
+ }
}
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
Modified: trunk/blender/source/blender/makesdna/DNA_sequence_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_sequence_types.h 2010-07-13 08:31:28 UTC (rev 30254)
+++ trunk/blender/source/blender/makesdna/DNA_sequence_types.h 2010-07-13 09:28:01 UTC (rev 30255)
@@ -140,6 +140,7 @@
int startstill, endstill;
int machine, depth; /*machine - the strip channel, depth - the depth in the sequence when dealing with metastrips */
int startdisp, enddisp; /*starting and ending points in the sequence*/
+ float sat, pad;
float mul, handsize;
/* is sfra needed anymore? - it looks like its only used in one place */
int sfra; /* starting frame according to the timeline of the scene. */
Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c 2010-07-13 08:31:28 UTC (rev 30254)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c 2010-07-13 09:28:01 UTC (rev 30255)
@@ -992,6 +992,13 @@
RNA_def_property_ui_text(prop, "Multiply Colors", "");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
+ prop= RNA_def_property(srna, "color_saturation", PROP_FLOAT, PROP_UNSIGNED);
+ RNA_def_property_float_sdna(prop, NULL, "sat");
+ RNA_def_property_range(prop, 0.0f, 20.0f);
+ RNA_def_property_ui_range(prop, 0.0f, 2.0f, 3, 3);
+ RNA_def_property_ui_text(prop, "Saturation", "");
+ RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
+
prop= RNA_def_property(srna, "strobe", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 1.0f, 30.0f);
RNA_def_property_ui_text(prop, "Strobe", "Only display every nth frame");
Modified: trunk/blender/source/blender/makesrna/rna_cleanup/rna_properties.txt
===================================================================
--- trunk/blender/source/blender/makesrna/rna_cleanup/rna_properties.txt 2010-07-13 08:31:28 UTC (rev 30254)
+++ trunk/blender/source/blender/makesrna/rna_cleanup/rna_properties.txt 2010-07-13 09:28:01 UTC (rev 30255)
@@ -599,7 +599,7 @@
EditObjectActuator.track_object -> track_object: pointer Track to this Object
EffectSequence.color_balance -> color_balance: pointer, (read-only)
EffectSequence.crop -> crop: pointer, (read-only)
-EffectSequence.multiply_colors -> multiply_colors: float
+EffectSequence.multiply_colors -> color_multiply: float
EffectSequence.proxy -> proxy: pointer, (read-only)
EffectSequence.strobe -> strobe: float Only display every nth frame
EffectSequence.transform -> transform: pointer, (read-only)
More information about the Bf-blender-cvs
mailing list