[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25654] trunk/blender/source/blender: grease pencil stroke depth option, rather then snapping to geometry you can draw over existing grease pencil lines .
Campbell Barton
ideasman42 at gmail.com
Fri Jan 1 17:46:27 CET 2010
Revision: 25654
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25654
Author: campbellbarton
Date: 2010-01-01 17:46:27 +0100 (Fri, 01 Jan 2010)
Log Message:
-----------
grease pencil stroke depth option, rather then snapping to geometry you can draw over existing grease pencil lines. makes it easuer to draw 3D shapes with grease pencil.
Modified Paths:
--------------
trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c
trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
trunk/blender/source/blender/editors/include/ED_view3d.h
trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
trunk/blender/source/blender/makesdna/DNA_gpencil_types.h
trunk/blender/source/blender/makesrna/intern/rna_gpencil.c
Modified: trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c 2010-01-01 16:46:27 UTC (rev 25654)
@@ -254,16 +254,18 @@
}
/* draw gpd drawing settings first ------------------------------------- */
- col= uiLayoutColumn(layout, 0);
+ col= uiLayoutColumn(layout, 1);
/* label */
uiItemL(col, "Drawing Settings:", 0);
/* 'stick to view' option */
//uiItemR(col, NULL, 0, &gpd_ptr, "draw_mode", 0);
- row= uiLayoutRow(layout, 1);
+ row= uiLayoutRow(col, 1);
uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "VIEW");
uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "CURSOR");
- uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "DEPTH");
+ row= uiLayoutRow(col, 1);
+ uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "SURFACE");
+ uiItemEnumR_string(row, NULL, 0, &gpd_ptr, "draw_mode", "STROKE");
}
Modified: trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_paint.c 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_paint.c 2010-01-01 16:46:27 UTC (rev 25654)
@@ -155,7 +155,7 @@
static int gpencil_project_check (tGPsdata *p)
{
bGPdata *gpd= p->gpd;
- return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & GP_DATA_VIEWDEPTH)) ? 1:0;
+ return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & (GP_DATA_DEPTH_VIEW | GP_DATA_DEPTH_STROKE))) ? 1:0;
}
/* ******************************************* */
@@ -1165,7 +1165,7 @@
/* need to restore the original projection settings before packing up */
view3d_operator_needs_opengl(C);
- view_autodist_init(p->scene, p->ar, v3d);
+ view_autodist_init(p->scene, p->ar, v3d, (p->gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0);
}
gp_paint_cleanup(p);
Modified: trunk/blender/source/blender/editors/include/ED_view3d.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_view3d.h 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/include/ED_view3d.h 2010-01-01 16:46:27 UTC (rev 25654)
@@ -127,7 +127,7 @@
int view_autodist(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, short *mval, float mouse_worldloc[3]);
/* only draw so view_autodist_simple can be called many times after */
-int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d);
+int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, int mode);
int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3], float *force_depth);
int view_autodist_depth(struct ARegion *ar, short *mval, float *depth);
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c 2010-01-01 16:46:27 UTC (rev 25654)
@@ -1643,6 +1643,29 @@
}
}
+void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d)
+{
+ RegionView3D *rv3d= ar->regiondata;
+ Scene *sce;
+
+ setwinmatrixview3d(ar, v3d, NULL); /* 0= no pick rect */
+ setviewmatrixview3d(scene, v3d, rv3d); /* note: calls where_is_object for camera... */
+
+ mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
+ invert_m4_m4(rv3d->persinv, rv3d->persmat);
+ invert_m4_m4(rv3d->viewinv, rv3d->viewmat);
+
+ glClear(GL_DEPTH_BUFFER_BIT);
+
+ wmLoadMatrix(rv3d->viewmat);
+
+ v3d->zbuf= TRUE;
+ glEnable(GL_DEPTH_TEST);
+
+ draw_gpencil_3dview_ext(scene, ar, 1);
+ return;
+}
+
void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *))
{
RegionView3D *rv3d= ar->regiondata;
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c 2010-01-01 16:46:27 UTC (rev 25654)
@@ -2265,12 +2265,19 @@
return 1;
}
-int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d) //, float *autodist )
+int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //, float *autodist )
{
RegionView3D *rv3d= ar->regiondata;
/* Get Z Depths, needed for perspective, nice for ortho */
- draw_depth(scene, ar, v3d, NULL);
+ switch(mode) {
+ case 0:
+ draw_depth(scene, ar, v3d, NULL);
+ break;
+ case 1:
+ draw_depth_gpencil(scene, ar, v3d);
+ break;
+ }
/* force updating */
if (rv3d->depths) {
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h 2010-01-01 16:46:27 UTC (rev 25654)
@@ -116,6 +116,7 @@
/* view3d_draw.c */
void view3d_main_area_draw(const struct bContext *C, struct ARegion *ar);
void draw_depth(Scene *scene, struct ARegion *ar, View3D *v3d, int (* func)(void *));
+void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d);
void view3d_clr_clipping(void);
void view3d_set_clipping(RegionView3D *rv3d);
void add_view3d_after(View3D *v3d, Base *base, int type, int flag);
Modified: trunk/blender/source/blender/makesdna/DNA_gpencil_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_gpencil_types.h 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/makesdna/DNA_gpencil_types.h 2010-01-01 16:46:27 UTC (rev 25654)
@@ -147,6 +147,7 @@
/* new strokes are added in viewport space */
#define GP_DATA_VIEWALIGN (1<<4)
/* Project into the screens Z values */
-#define GP_DATA_VIEWDEPTH (1<<5)
+#define GP_DATA_DEPTH_VIEW (1<<5)
+#define GP_DATA_DEPTH_STROKE (1<<6)
#endif /* DNA_GPENCIL_TYPES_H */
Modified: trunk/blender/source/blender/makesrna/intern/rna_gpencil.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_gpencil.c 2010-01-01 15:57:17 UTC (rev 25653)
+++ trunk/blender/source/blender/makesrna/intern/rna_gpencil.c 2010-01-01 16:46:27 UTC (rev 25654)
@@ -223,7 +223,8 @@
static EnumPropertyItem draw_mode_items[] = {
{GP_DATA_VIEWALIGN, "CURSOR", 0, "Cursor", ""},
{0, "VIEW", 0, "View", ""}, /* weired, GP_DATA_VIEWALIGN is inverted */
- {GP_DATA_VIEWALIGN|GP_DATA_VIEWDEPTH, "DEPTH", 0, "Depth", ""},
+ {GP_DATA_VIEWALIGN|GP_DATA_DEPTH_VIEW, "SURFACE", 0, "Surface", ""},
+ {GP_DATA_VIEWALIGN|GP_DATA_DEPTH_STROKE, "STROKE", 0, "Stroke", ""},
{0, NULL, 0, NULL, NULL}};
srna= RNA_def_struct(brna, "GreasePencil", "ID");
More information about the Bf-blender-cvs
mailing list