[Bf-blender-cvs] [3b17d6c6192] master: Sequencer: Made subsampling a transform option.

Jeroen Bakker noreply at git.blender.org
Thu Jan 26 15:03:42 CET 2023


Commit: 3b17d6c6192fa0c2a3d7f2fff9fe8584f857a926
Author: Jeroen Bakker
Date:   Thu Jan 26 15:03:19 2023 +0100
Branches: master
https://developer.blender.org/rB3b17d6c6192fa0c2a3d7f2fff9fe8584f857a926

Sequencer: Made subsampling a transform option.

There are cases where automatic selection of subsampling doesn't work
This patch move adds a filtering option that
can enable this.

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

M	release/scripts/addons
M	source/blender/makesdna/DNA_sequence_types.h
M	source/blender/makesrna/intern/rna_sequencer.c
M	source/blender/sequencer/intern/render.c

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

diff --git a/release/scripts/addons b/release/scripts/addons
index d887a4ea6b2..9958ddb8799 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit d887a4ea6b2a9d64b926034d4e78ecf7a48ca979
+Subproject commit 9958ddb879934718cc2b379b556f0bc3b861bee5
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h
index d8005b83383..47039c740c1 100644
--- a/source/blender/makesdna/DNA_sequence_types.h
+++ b/source/blender/makesdna/DNA_sequence_types.h
@@ -795,6 +795,7 @@ typedef enum SequenceColorTag {
 enum {
   SEQ_TRANSFORM_FILTER_NEAREST = 0,
   SEQ_TRANSFORM_FILTER_BILINEAR = 1,
+  SEQ_TRANSFORM_FILTER_NEAREST_3x3 = 2,
 };
 
 typedef enum eSeqChannelFlag {
diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c
index eab9f9c26da..7dd13324f88 100644
--- a/source/blender/makesrna/intern/rna_sequencer.c
+++ b/source/blender/makesrna/intern/rna_sequencer.c
@@ -1510,6 +1510,11 @@ static void rna_def_strip_crop(BlenderRNA *brna)
 static const EnumPropertyItem transform_filter_items[] = {
     {SEQ_TRANSFORM_FILTER_NEAREST, "NEAREST", 0, "Nearest", ""},
     {SEQ_TRANSFORM_FILTER_BILINEAR, "BILINEAR", 0, "Bilinear", ""},
+    {SEQ_TRANSFORM_FILTER_NEAREST_3x3,
+     "SUBSAMPLING_3x3",
+     0,
+     "Subsampling (3x3)",
+     "Use nearest with 3x3 subsamples during rendering"},
     {0, NULL, 0, NULL, NULL},
 };
 
diff --git a/source/blender/sequencer/intern/render.c b/source/blender/sequencer/intern/render.c
index daca02b4f79..7f73a32a9c3 100644
--- a/source/blender/sequencer/intern/render.c
+++ b/source/blender/sequencer/intern/render.c
@@ -515,16 +515,24 @@ static void sequencer_preprocess_transform_crop(
   const float crop_scale_factor = do_scale_to_render_size ? preview_scale_factor : 1.0f;
   sequencer_image_crop_init(seq, in, crop_scale_factor, &source_crop);
 
-  eIMBInterpolationFilterMode filter;
   const StripTransform *transform = seq->strip->transform;
-  if (transform->filter == SEQ_TRANSFORM_FILTER_NEAREST) {
-    filter = IMB_FILTER_NEAREST;
-  }
-  else {
-    filter = IMB_FILTER_BILINEAR;
+  eIMBInterpolationFilterMode filter;
+  int num_subsamples = 1;
+  switch (transform->filter) {
+    case SEQ_TRANSFORM_FILTER_NEAREST:
+      filter = IMB_FILTER_NEAREST;
+      num_subsamples = 1;
+      break;
+    case SEQ_TRANSFORM_FILTER_BILINEAR:
+      filter = IMB_FILTER_BILINEAR;
+      num_subsamples = 1;
+      break;
+    case SEQ_TRANSFORM_FILTER_NEAREST_3x3:
+      filter = IMB_FILTER_NEAREST;
+      num_subsamples = G.is_rendering ? 3 : 1;
+      break;
   }
 
-  const int num_subsamples = G.is_rendering ? 3 : 1;
   IMB_transform(in,
                 out,
                 IMB_TRANSFORM_MODE_CROP_SRC,



More information about the Bf-blender-cvs mailing list