[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21012] branches/soc-2009-yukishiro/source /blender/editors: move lightpaint display to solid mode and add hand cursor

Jingyuan Huang jingyuan.huang at gmail.com
Fri Jun 19 18:10:28 CEST 2009


Revision: 21012
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21012
Author:   yukishiro
Date:     2009-06-19 18:10:28 +0200 (Fri, 19 Jun 2009)

Log Message:
-----------
move lightpaint display to solid mode and add hand cursor

Modified Paths:
--------------
    branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c
    branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c

Modified: branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c
===================================================================
--- branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c	2009-06-19 15:14:24 UTC (rev 21011)
+++ branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c	2009-06-19 16:10:28 UTC (rev 21012)
@@ -280,13 +280,7 @@
 		ScrArea *sa= CTX_wm_area(C);
 		if(sa->spacetype==SPACE_VIEW3D) {
 			ARegion *ar= CTX_wm_region(C);
-                        Object *ob = CTX_data_active_object(C);
-                        View3D *v3d= CTX_wm_view3d(C);
-                        short dt;
 
-                        dt = v3d->drawtype < ob->dt ? v3d->drawtype : ob->dt;
-                        if (dt != OB_SHADED) return 0;
-
 			if(ar->regiontype==RGN_TYPE_WINDOW)
 				return 1;
 		}
@@ -702,6 +696,9 @@
 	RotateOperation *rop = op->customdata;
 	MEM_freeN(rop);
 	op->customdata = NULL;
+
+	toggle_paint_cursor(C);
+	WM_cursor_restore(CTX_wm_window(C));
 }
 
 static int light_paint_rotate_modal(bContext *C, wmOperator *op, wmEvent *event)
@@ -758,7 +755,8 @@
 
 	calctrackballvec(&rop->ar->winrct, event->x, event->y, rop->trackvec);
 
-	/* add temp handler */
+	toggle_paint_cursor(C);
+	WM_cursor_modal(CTX_wm_window(C), BC_HANDCURSOR);
 	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
 
 	return OPERATOR_RUNNING_MODAL;

Modified: branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c	2009-06-19 15:14:24 UTC (rev 21011)
+++ branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c	2009-06-19 16:10:28 UTC (rev 21012)
@@ -2422,16 +2422,40 @@
 		if((v3d->flag&V3D_SELECT_OUTLINE) && (base->flag&SELECT) && !draw_wire)
 			draw_mesh_object_outline(v3d, ob, dm);
 
-		glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, me->flag & ME_TWOSIDED );
+		if (G.f & G_LIGHTPAINT) {
+			if (rv3d->rflag & RV3D_SHRESULT) {
+				unsigned char *shcol= DM_get_face_data_layer(dm, CD_SH_MCOL);
+				if (shcol == NULL) shcol = add_sh_mcol_dm(scene, ob, dm);
+				
+				if (rv3d->rflag & RV3D_RECALCMCOL) {
+				        calc_sh_color(scene, ob, dm, shcol);
+				}
+				
+				glDisable(GL_LIGHTING);
+				
+				glColorMaterial(GL_FRONT,GL_DIFFUSE);
+				glEnable(GL_COLOR_MATERIAL); 
+				
+				dm->drawFacesColored(dm, me->flag, shcol, NULL);
+				glDisable(GL_COLOR_MATERIAL);
+				GPU_disable_material();
+			} 
+			else {
+				printf("in progress\n"); // TODO: progess bar
+			}
+		}
+		else {
+			glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, me->flag & ME_TWOSIDED );
 
-		glEnable(GL_LIGHTING);
-		glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW);
+			glEnable(GL_LIGHTING);
+			glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW);
 
-		dm->drawFacesSolid(dm, GPU_enable_material);
-		GPU_disable_material();
+			dm->drawFacesSolid(dm, GPU_enable_material);
+			GPU_disable_material();
 
-		glFrontFace(GL_CCW);
-		glDisable(GL_LIGHTING);
+			glFrontFace(GL_CCW);
+			glDisable(GL_LIGHTING);
+		}
 
 		if(base->flag & SELECT) {
 			UI_ThemeColor((ob==OBACT)?TH_ACTIVE:TH_SELECT);
@@ -2489,31 +2513,7 @@
 				draw_mesh_object_outline(v3d, ob, dm);
 			}
 
-                        if(G.f & G_LIGHTPAINT) {
-
-                                if (rv3d->rflag & RV3D_SHRESULT) { 
-                                        unsigned char *shcol= DM_get_face_data_layer(dm, CD_SH_MCOL);
-                                        if (shcol == NULL) shcol = add_sh_mcol_dm(scene, ob, dm);
-
-                                        if (rv3d->rflag & RV3D_RECALCMCOL) {
-                                                calc_sh_color(scene, ob, dm, shcol);
-                                        }
-
-                                        glDisable(GL_LIGHTING);
-
-                                        glColorMaterial(GL_FRONT,GL_DIFFUSE);
-                                        glEnable(GL_COLOR_MATERIAL); 
-
-                                        dm->drawFacesColored(dm, me->flag, shcol, NULL);
-				        glDisable(GL_COLOR_MATERIAL);
-				        GPU_disable_material();
-                                }
-                                else {
-					printf("in progress\n");
-                                        // progress bar
-                                }
-                        }
-                        else if (dl) { /* False for dupliframe objects */
+                        if (dl) { /* False for dupliframe objects */
 				unsigned int *obCol1 = dl->col1;
 				unsigned int *obCol2 = dl->col2;
 





More information about the Bf-blender-cvs mailing list