[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24408] trunk/blender: Sequencer: ( small Durian wish)

Andrea Weikert elubie at gmx.net
Sun Nov 8 16:03:10 CET 2009


Revision: 24408
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24408
Author:   elubie
Date:     2009-11-08 16:03:10 +0100 (Sun, 08 Nov 2009)

Log Message:
-----------
Sequencer: (small Durian wish)
* new operator: set rendersize (SEQUENCE_OT_rendersize) sets the render output size in the current scene to the size of the active sequence strip
* works for movies and images right now
* TODO: currently only works if image or movie strip has been loaded (as in showing the preview for example) - reason is that otherwise the size is not initialized in the strip

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_sequencer.py
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
    trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===================================================================
--- trunk/blender/release/scripts/ui/space_sequencer.py	2009-11-08 12:35:37 UTC (rev 24407)
+++ trunk/blender/release/scripts/ui/space_sequencer.py	2009-11-08 15:03:10 UTC (rev 24408)
@@ -245,12 +245,14 @@
             elif stype == 'IMAGE':
                 layout.itemS()
                 layout.itemO("sequencer.image_change")
+                layout.itemO("sequencer.rendersize")
             elif stype == 'SCENE':
                 layout.itemS()
                 layout.itemO("sequencer.scene_change", text="Change Scene")
             elif stype == 'MOVIE':
                 layout.itemS()
                 layout.itemO("sequencer.movie_change")
+                layout.itemO("sequencer.rendersize")
 
         layout.itemS()
 

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2009-11-08 12:35:37 UTC (rev 24407)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2009-11-08 15:03:10 UTC (rev 24408)
@@ -2669,3 +2669,52 @@
 	
 	/* properties */
 }
+
+static int sequencer_rendersize_exec(bContext *C, wmOperator *op)
+{
+	int retval = OPERATOR_CANCELLED;
+	Scene *scene= CTX_data_scene(C);
+	Sequence *active_seq = get_last_seq(scene);
+
+	if(active_seq==NULL) return OPERATOR_CANCELLED;
+
+	printf("got active sequence\n");
+	switch (active_seq->type) {
+		case SEQ_IMAGE:
+		case SEQ_MOVIE:
+			if (active_seq->strip) {
+				// prevent setting the render size if sequence values aren't initialized
+				if ( (active_seq->strip->orx>0) && (active_seq->strip->ory>0) ) {
+					scene->r.xsch= active_seq->strip->orx;
+					scene->r.ysch= active_seq->strip->ory;
+					WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene);
+					retval = OPERATOR_FINISHED;
+				}
+			}
+			break;
+		case SEQ_SCENE:
+		case SEQ_META:
+		case SEQ_RAM_SOUND:
+		case SEQ_HD_SOUND:
+		default:
+			break;
+	}
+	return retval;
+}
+
+void SEQUENCER_OT_rendersize(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Set Render Size";
+	ot->idname= "SEQUENCER_OT_rendersize";
+	ot->description="Set render size and aspect from active sequence.";
+	
+	/* api callbacks */
+	ot->exec= sequencer_rendersize_exec;
+	ot->poll= ED_operator_sequencer_active;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	
+	/* properties */
+}
\ No newline at end of file

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h	2009-11-08 12:35:37 UTC (rev 24407)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h	2009-11-08 15:03:10 UTC (rev 24408)
@@ -95,6 +95,7 @@
 void SEQUENCER_OT_next_edit(struct wmOperatorType *ot);
 void SEQUENCER_OT_swap_right(struct wmOperatorType *ot);
 void SEQUENCER_OT_swap_left(struct wmOperatorType *ot);
+void SEQUENCER_OT_rendersize(struct wmOperatorType *ot);
 
 void SEQUENCER_OT_view_all(struct wmOperatorType *ot);
 void SEQUENCER_OT_view_selected(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c	2009-11-08 12:35:37 UTC (rev 24407)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c	2009-11-08 15:03:10 UTC (rev 24408)
@@ -81,6 +81,7 @@
 	WM_operatortype_append(SEQUENCER_OT_previous_edit);
 	WM_operatortype_append(SEQUENCER_OT_swap_right);
 	WM_operatortype_append(SEQUENCER_OT_swap_left);
+	WM_operatortype_append(SEQUENCER_OT_rendersize);
 
 	WM_operatortype_append(SEQUENCER_OT_view_all);
 	WM_operatortype_append(SEQUENCER_OT_view_selected);





More information about the Bf-blender-cvs mailing list