[Bf-blender-cvs] [49b2228] GPU_data_request: draw grid floor & objects in new viewport
Mike Erwin
noreply at git.blender.org
Fri Mar 20 23:35:35 CET 2015
Commit: 49b2228c0e2f264f1fa7635651cabfdf8b3646bb
Author: Mike Erwin
Date: Fri Mar 20 18:34:13 2015 -0400
Branches: GPU_data_request
https://developer.blender.org/rB49b2228c0e2f264f1fa7635651cabfdf8b3646bb
draw grid floor & objects in new viewport
Yanked verbatim from view3d_draw_objects, so there’s nothing “new”
about drawing method. But it does let us see objects positioned in
space which shows us transforms are working properly.
===================================================================
M source/blender/editors/space_view3d/view3d_draw.c
===================================================================
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 54e69a4..d003a70 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -3549,6 +3549,58 @@ static void view3d_main_area_draw_viewport_new(const bContext *C, Scene *scene,
UI_ThemeClearColor(TH_HIGH_GRAD);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
}
+
+ /* setup view matrices */
+ view3d_main_area_setup_view(scene, v3d, ar, NULL, NULL);
+
+ drawfloor(scene, v3d, grid_unit);
+
+#if 1
+ /* yanked verbatim from view3d_draw_objects
+ * not perfect but it does let us see objects positioned in space
+ * TODO: draw objects prettier/better/faster/stronger
+ */
+ unsigned int lay_used = 0;
+
+ /* then draw not selected and the duplis, but skip editmode object */
+ for (Base* base = scene->base.first; base; base = base->next) {
+ lay_used |= base->lay;
+
+ if (v3d->lay & base->lay) {
+
+ /* dupli drawing */
+ if (base->object->transflag & OB_DUPLI) {
+ draw_dupli_objects(scene, ar, v3d, base);
+ }
+ if ((base->flag & SELECT) == 0) {
+ if (base->object != scene->obedit)
+ draw_object(scene, ar, v3d, base, 0);
+ }
+ }
+ }
+
+ /* mask out localview */
+ v3d->lay_used = lay_used & ((1 << 20) - 1);
+
+ /* draw selected and editmode */
+ for (Base *base = scene->base.first; base; base = base->next) {
+ if (v3d->lay & base->lay) {
+ if (base->object == scene->obedit || (base->flag & SELECT)) {
+ draw_object(scene, ar, v3d, base, 0);
+ }
+ }
+ }
+#else
+ glLineWidth(3.0f);
+ glColor3f(1.0f, 1.0f, 0.0f);
+ glBegin(GL_LINES);
+ glVertex2f(-1.0f, -1.0f);
+ glVertex2f(1.0f, 1.0f);
+ glVertex2f(1.0f, -1.0f);
+ glVertex2f(-1.0f, 1.0f);
+ glEnd();
+ glLineWidth(1.0f);
+#endif
}
More information about the Bf-blender-cvs
mailing list