[Bf-blender-cvs] [3e6b7d0] master: Fix white balance, was doing unnecessary linear conversions

Campbell Barton noreply at git.blender.org
Mon Feb 15 14:14:55 CET 2016


Commit: 3e6b7d0fd874789c13aa53a62932d94cbb36163b
Author: Campbell Barton
Date:   Tue Feb 16 00:05:44 2016 +1100
Branches: master
https://developer.blender.org/rB3e6b7d0fd874789c13aa53a62932d94cbb36163b

Fix white balance, was doing unnecessary linear conversions

This made byte & float images behave differently, where other modifiers remain the same.
Also remove scene from the modifier (should have been passed as arg but no longer needed).

===================================================================

M	source/blender/blenkernel/BKE_sequencer.h
M	source/blender/blenkernel/intern/seqmodifier.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_260.c
M	source/blender/editors/space_sequencer/sequencer_modifier.c
M	source/blender/makesdna/DNA_sequence_types.h
M	source/blender/makesrna/intern/rna_sequencer.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h
index f3212e5..30bb695 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -460,7 +460,7 @@ typedef struct SequenceModifierTypeInfo {
 
 const struct SequenceModifierTypeInfo *BKE_sequence_modifier_type_info_get(int type);
 
-struct SequenceModifierData *BKE_sequence_modifier_new(struct Sequence *seq, const char *name, int type, struct Scene *scene);
+struct SequenceModifierData *BKE_sequence_modifier_new(struct Sequence *seq, const char *name, int type);
 bool BKE_sequence_modifier_remove(struct Sequence *seq, struct SequenceModifierData *smd);
 void BKE_sequence_modifier_clear(struct Sequence *seq);
 void BKE_sequence_modifier_free(struct SequenceModifierData *smd);
diff --git a/source/blender/blenkernel/intern/seqmodifier.c b/source/blender/blenkernel/intern/seqmodifier.c
index 2c46cf1..94eb797 100644
--- a/source/blender/blenkernel/intern/seqmodifier.c
+++ b/source/blender/blenkernel/intern/seqmodifier.c
@@ -184,7 +184,6 @@ static void whiteBalance_init_data(SequenceModifierData *smd)
 }
 
 typedef struct WhiteBalanceThreadData {
-	struct ColorSpace *colorspace;
 	float white[3];
 } WhiteBalanceThreadData;
 
@@ -210,7 +209,6 @@ static void whiteBalance_apply_threaded(int width, int height, unsigned char *re
 			}
 			else {
 				straight_uchar_to_premul_float(result, rect + pixel_index);
-				IMB_colormanagement_colorspace_to_scene_linear_v3(result, data->colorspace);
 			}
 
 			mul_v3_v3(result, multiplier);
@@ -230,7 +228,6 @@ static void whiteBalance_apply_threaded(int width, int height, unsigned char *re
 				copy_v3_v3(rect_float + pixel_index, result);
 			}
 			else {
-				IMB_colormanagement_scene_linear_to_colorspace_v3(result, data->colorspace);
 				premul_float_to_straight_uchar(rect + pixel_index, result);
 			}
 		}
@@ -243,9 +240,6 @@ static void whiteBalance_apply(SequenceModifierData *smd, ImBuf *ibuf, ImBuf *ma
 	WhiteBalanceModifierData *wbmd = (WhiteBalanceModifierData *) smd;
 
 	copy_v3_v3(data.white, wbmd->white_value);
-	IMB_colormanagement_display_to_scene_linear_v3(data.white,
-	                                               IMB_colormanagement_display_get_named(wbmd->modifier.scene->display_settings.display_device));
-	data.colorspace = ibuf->rect_colorspace;
 
 	modifier_apply_threaded(ibuf, mask, whiteBalance_apply_threaded, &data);
 }
@@ -883,7 +877,7 @@ const SequenceModifierTypeInfo *BKE_sequence_modifier_type_info_get(int type)
 	return modifiersTypes[type];
 }
 
-SequenceModifierData *BKE_sequence_modifier_new(Sequence *seq, const char *name, int type, struct Scene *scene)
+SequenceModifierData *BKE_sequence_modifier_new(Sequence *seq, const char *name, int type)
 {
 	SequenceModifierData *smd;
 	const SequenceModifierTypeInfo *smti = BKE_sequence_modifier_type_info_get(type);
@@ -892,7 +886,6 @@ SequenceModifierData *BKE_sequence_modifier_new(Sequence *seq, const char *name,
 
 	smd->type = type;
 	smd->flag |= SEQUENCE_MODIFIER_EXPANDED;
-	smd->scene = scene;
 
 	if (!name || !name[0])
 		BLI_strncpy(smd->name, smti->name, sizeof(smd->name));
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 17567ae..cf4f183 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5503,7 +5503,6 @@ static void lib_link_sequence_modifiers(FileData *fd, Scene *scene, ListBase *lb
 	for (smd = lb->first; smd; smd = smd->next) {
 		if (smd->mask_id)
 			smd->mask_id = newlibadr_us(fd, scene->id.lib, smd->mask_id);
-		smd->scene = scene;
 	}
 }
 
diff --git a/source/blender/blenloader/intern/versioning_260.c b/source/blender/blenloader/intern/versioning_260.c
index 6dd2d99..907baab 100644
--- a/source/blender/blenloader/intern/versioning_260.c
+++ b/source/blender/blenloader/intern/versioning_260.c
@@ -1503,7 +1503,7 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *main)
 						SequenceModifierData *smd;
 						ColorBalanceModifierData *cbmd;
 
-						smd = BKE_sequence_modifier_new(seq, NULL, seqModifierType_ColorBalance, scene);
+						smd = BKE_sequence_modifier_new(seq, NULL, seqModifierType_ColorBalance);
 						cbmd = (ColorBalanceModifierData *) smd;
 
 						cbmd->color_balance = *strip->color_balance;
diff --git a/source/blender/editors/space_sequencer/sequencer_modifier.c b/source/blender/editors/space_sequencer/sequencer_modifier.c
index f7999ee..1b3d458 100644
--- a/source/blender/editors/space_sequencer/sequencer_modifier.c
+++ b/source/blender/editors/space_sequencer/sequencer_modifier.c
@@ -71,7 +71,7 @@ static int strip_modifier_add_exec(bContext *C, wmOperator *op)
 	Sequence *seq = BKE_sequencer_active_get(scene);
 	int type = RNA_enum_get(op->ptr, "type");
 
-	BKE_sequence_modifier_new(seq, NULL, type, scene);
+	BKE_sequence_modifier_new(seq, NULL, type);
 
 	BKE_sequence_invalidate_cache(scene, seq);
 	WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER, scene);
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index 56112d2..3a64890 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -313,7 +313,6 @@ typedef struct SequenceModifierData {
 
 	struct Sequence *mask_sequence;
 	struct Mask     *mask_id;
-	struct Scene    *scene;
 } SequenceModifierData;
 
 typedef struct ColorBalanceModifierData {
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c
index 2c66b73..fae0d1c 100644
--- a/source/blender/makesrna/intern/rna_sequencer.c
+++ b/source/blender/makesrna/intern/rna_sequencer.c
@@ -1044,7 +1044,7 @@ static SequenceModifierData *rna_Sequence_modifier_new(Sequence *seq, bContext *
 		Scene *scene = CTX_data_scene(C);
 		SequenceModifierData *smd;
 
-		smd = BKE_sequence_modifier_new(seq, name, type, scene);
+		smd = BKE_sequence_modifier_new(seq, name, type);
 
 		BKE_sequence_invalidate_cache_for_modifier(scene, seq);




More information about the Bf-blender-cvs mailing list