[Bf-blender-cvs] [4a10eb3] blender2.8: immediate mode: convert render border code and move to new drawing routine

Dalai Felinto noreply at git.blender.org
Fri Oct 14 23:54:18 CEST 2016


Commit: 4a10eb38a3fa8bd0db91e87cf0b2ac0f5495a6af
Author: Dalai Felinto
Date:   Fri Oct 14 01:24:27 2016 +0000
Branches: blender2.8
https://developer.blender.org/rB4a10eb38a3fa8bd0db91e87cf0b2ac0f5495a6af

immediate mode: convert render border code and move to new drawing
routine

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

M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/editors/space_view3d/view3d_draw_legacy.c
M	source/blender/editors/space_view3d/view3d_intern.h

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

diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index f2fc143..6fceb70 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -31,6 +31,7 @@
 #include <math.h>
 
 #include "BIF_gl.h"
+#include "BIF_glutil.h"
 
 #include "BKE_camera.h"
 #include "BKE_context.h"
@@ -262,6 +263,26 @@ static void view3d_stereo3d_setup(Scene *scene, View3D *v3d, ARegion *ar)
 	}
 }
 
+void drawrenderborder(ARegion *ar, View3D *v3d)
+{
+	/* use the same program for everything */
+	VertexFormat *format = immVertexFormat();
+	unsigned pos = add_attrib(format, "pos", GL_FLOAT, 2, KEEP_FLOAT);
+	immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
+
+	glLineWidth(1.0f);
+	setlinestyle(3);
+	imm_cpack(0x4040FF);
+
+	imm_draw_line_box(
+	    pos, v3d->render_border.xmin * ar->winx, v3d->render_border.ymin * ar->winy,
+	    v3d->render_border.xmax * ar->winx, v3d->render_border.ymax * ar->winy);
+
+	setlinestyle(0);
+
+	immUnbindProgram();
+}
+
 /* ******************** offline engine ***************** */
 
 static bool view3d_draw_render_draw(const bContext *C, Scene *scene,
@@ -1144,3 +1165,8 @@ bool VP_legacy_use_depth(Scene *scene, View3D *v3d)
 {
 	return use_depth_doit(scene, v3d);
 }
+
+void VP_drawrenderborder(ARegion *ar, View3D *v3d)
+{
+	drawrenderborder(ar, v3d);
+}
diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c
index 4d9e414..108a518 100644
--- a/source/blender/editors/space_view3d/view3d_draw_legacy.c
+++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c
@@ -3396,14 +3396,7 @@ static void view3d_main_region_draw_info(const bContext *C, Scene *scene,
 		drawviewborder(scene, ar, v3d);
 	}
 	else if (v3d->flag2 & V3D_RENDER_BORDER) {
-		glLineWidth(1.0f);
-		setlinestyle(3);
-		cpack(0x4040FF);
-
-		sdrawbox(v3d->render_border.xmin * ar->winx, v3d->render_border.ymin * ar->winy,
-		         v3d->render_border.xmax * ar->winx, v3d->render_border.ymax * ar->winy);
-
-		setlinestyle(0);
+		VP_drawrenderborder(ar, v3d);
 	}
 
 	if (v3d->flag2 & V3D_SHOW_GPENCIL) {
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index ae9b028..a50976e 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -328,5 +328,6 @@ bool VP_legacy_view3d_stereo3d_active(const struct bContext *C, Scene *scene, Vi
 void VP_legacy_view3d_stereo3d_setup(Scene *scene, View3D *v3d, ARegion *ar);
 void draw_dupli_objects(Scene *scene, ARegion *ar, View3D *v3d, Base *base);
 bool VP_legacy_use_depth(Scene *scene, View3D *v3d);
+void VP_drawrenderborder(ARegion *ar, View3D *v3d);
 
 #endif /* __VIEW3D_INTERN_H__ */




More information about the Bf-blender-cvs mailing list