[Bf-blender-cvs] [5c747e7] master: Fix T43681: VSE draw glitch with no-display

Campbell Barton noreply at git.blender.org
Mon Feb 16 03:09:50 CET 2015


Commit: 5c747e71963bc497df5d907144929bbe580ae85a
Author: Campbell Barton
Date:   Mon Feb 16 12:57:29 2015 +1100
Branches: master
https://developer.blender.org/rB5c747e71963bc497df5d907144929bbe580ae85a

Fix T43681: VSE draw glitch with no-display

Missed clearning the backdrop

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

M	source/blender/editors/space_sequencer/sequencer_draw.c
M	source/blender/makesdna/DNA_space_types.h

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

diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 3be6cd7..93eb5a1 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -960,8 +960,8 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
 	struct View2D *v2d = &ar->v2d;
 	/* int rectx, recty; */ /* UNUSED */
 	float viewrectx, viewrecty;
-	float render_size = 0.0;
-	float proxy_size = 100.0;
+	float render_size;
+	float proxy_size;
 	float col[3];
 	GLuint texid;
 	GLuint last_texid;
@@ -985,16 +985,37 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
 		}
 	}
 
-	render_size = sseq->render_size;
-	if (render_size == 0) {
+	if ((!draw_overlay || sseq->overlay_type == SEQ_DRAW_OVERLAY_REFERENCE) && !draw_backdrop) {
+		UI_GetThemeColor3fv(TH_SEQ_PREVIEW, col);
+		glClearColor(col[0], col[1], col[2], 0.0);
+		glClear(GL_COLOR_BUFFER_BIT);
+	}
+
+	/* only initialize the preview if a render is in progress */
+	if (G.is_rendering)
+		return;
+
+	if (sseq->render_size == SEQ_PROXY_RENDER_SIZE_NONE) {
+		return;
+	}
+
+	ibuf = sequencer_ibuf_get(bmain, scene, sseq, cfra, frame_ofs);
+	
+	if (ibuf == NULL)
+		return;
+
+	if (ibuf->rect == NULL && ibuf->rect_float == NULL)
+		return;
+
+
+	if (sseq->render_size == SEQ_PROXY_RENDER_SIZE_SCENE) {
 		render_size = scene->r.size;
+		proxy_size = 100.0f;
 	}
 	else {
+		render_size = sseq->render_size;
 		proxy_size = render_size;
 	}
-	if (render_size < 0) {
-		return;
-	}
 
 	viewrectx = (render_size * (float)scene->r.xsch) / 100.0f;
 	viewrecty = (render_size * (float)scene->r.ysch) / 100.0f;
@@ -1008,23 +1029,6 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq
 		viewrecty /= proxy_size / 100.0f;
 	}
 
-	if ((!draw_overlay || sseq->overlay_type == SEQ_DRAW_OVERLAY_REFERENCE) && !draw_backdrop) {
-		UI_GetThemeColor3fv(TH_SEQ_PREVIEW, col);
-		glClearColor(col[0], col[1], col[2], 0.0);
-		glClear(GL_COLOR_BUFFER_BIT);
-	}
-
-	/* only initialize the preview if a render is in progress */
-	if (G.is_rendering)
-		return;
-
-	ibuf = sequencer_ibuf_get(bmain, scene, sseq, cfra, frame_ofs);
-	
-	if (ibuf == NULL)
-		return;
-
-	if (ibuf->rect == NULL && ibuf->rect_float == NULL)
-		return;
 
 	if (sseq->mainb != SEQ_DRAW_IMG_IMBUF || sseq->zebra != 0) {
 		SequencerScopes *scopes = &sseq->scopes;
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index 41fbb26..9a495fb 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -494,7 +494,7 @@ typedef struct SpaceSeq {
 	
 	float xof DNA_DEPRECATED, yof DNA_DEPRECATED;   /* deprecated: offset for drawing the image preview */
 	short mainb;    /* weird name for the sequencer subtype (seq, image, luma... etc) */
-	short render_size;
+	short render_size;  /* eSpaceSeq_Proxy_RenderSize */
 	short chanshown;
 	short zebra;
 	int flag;




More information about the Bf-blender-cvs mailing list