Revision: 22489
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22489
Author:   nicholasbishop
Date:     2009-08-16 03:25:53 +0200 (Sun, 16 Aug 2009)

Log Message:
-----------
2.5/Texture paint

* Made texture paint object-localized too.

Note for Brecht: gpu_draw.c had three uses of G_TEXTUREPAINT that I was not 
able to cleanly fix, so commented out for now. Can you take a look and see what 
should be done here?

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
    
branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_image.c
    
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_view.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_manipulator.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
    branches/blender2.5/blender/source/blender/editors/util/undo.c
    branches/blender2.5/blender/source/blender/gpu/intern/gpu_draw.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_object_types.h

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h  
2009-08-15 23:42:16 UTC (rev 22488)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h  
2009-08-16 01:25:53 UTC (rev 22489)
@@ -115,7 +115,6 @@
 #define G_DEBUG                        (1 << 12)
 #define G_DOSCRIPTLINKS (1 << 13)
 
-#define G_TEXTUREPAINT (1 << 16)
 /* #define G_NOFROZEN  (1 << 17) also removed */
 #define G_GREASEPENCIL         (1 << 17)
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c        
2009-08-15 23:42:16 UTC (rev 22488)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c        
2009-08-16 01:25:53 UTC (rev 22489)
@@ -197,9 +197,9 @@
                        return &sce->toolsettings->vpaint->brush;
                else if(ob->mode & OB_MODE_WEIGHT_PAINT)
                        return &sce->toolsettings->wpaint->brush;
+               else if(ob->mode & OB_MODE_TEXTURE_PAINT)
+                       return &sce->toolsettings->imapaint.brush;
        }
-       else if(G.f & G_TEXTUREPAINT)
-               return &sce->toolsettings->imapaint.brush;
        return NULL;
 }
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/context.c      
2009-08-15 23:42:16 UTC (rev 22488)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/context.c      
2009-08-16 01:25:53 UTC (rev 22489)
@@ -686,11 +686,13 @@
        else {
                Object *ob = CTX_data_active_object(C);
                
-               if(ob && (ob->flag & OB_POSEMODE)) return "posemode";
-               else if (ob && ob->mode & OB_MODE_SCULPT)  return "sculpt_mode";
-               else if (ob && ob->mode & OB_MODE_WEIGHT_PAINT) return 
"weightpaint";
-               else if (ob && ob->mode & OB_MODE_VERTEX_PAINT) return 
"vertexpaint";
-               else if (G.f & G_TEXTUREPAINT) return "texturepaint";
+               if(ob) {
+                       if(ob->flag & OB_POSEMODE) return "posemode";
+                       else if(ob->mode & OB_MODE_SCULPT)  return 
"sculpt_mode";
+                       else if(ob->mode & OB_MODE_WEIGHT_PAINT) return 
"weightpaint";
+                       else if(ob->mode & OB_MODE_VERTEX_PAINT) return 
"vertexpaint";
+                       else if(ob->mode & OB_MODE_TEXTURE_PAINT) return 
"texturepaint";
+               }
                else if(G.f & G_PARTICLEEDIT) return "particlemode";
        }
        

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c        
2009-08-15 23:42:16 UTC (rev 22488)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c        
2009-08-16 01:25:53 UTC (rev 22489)
@@ -32,6 +32,6 @@
 
 int paint_facesel_test(Object *ob)
 {
-       return (G.f&G_FACESELECT) && ((G.f & G_TEXTUREPAINT) || (ob && 
(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT))));
+       return (G.f&G_FACESELECT) && (ob && (ob->mode & 
(OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)));
 
 }

Modified: 
branches/blender2.5/blender/source/blender/editors/object/object_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_edit.c     
2009-08-15 23:42:16 UTC (rev 22488)
+++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c     
2009-08-16 01:25:53 UTC (rev 22489)
@@ -7046,4 +7046,6 @@
                WM_operator_name_call(C, "PAINT_OT_vertex_paint_toggle", 
WM_OP_EXEC_REGION_WIN, NULL);
        if(mode & OB_MODE_WEIGHT_PAINT)
                WM_operator_name_call(C, "PAINT_OT_weight_paint_toggle", 
WM_OP_EXEC_REGION_WIN, NULL);
+       if(mode & OB_MODE_TEXTURE_PAINT)
+               WM_operator_name_call(C, "PAINT_OT_texture_paint_toggle", 
WM_OP_EXEC_REGION_WIN, NULL);
 }

Modified: 
branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_context.c  
2009-08-15 23:42:16 UTC (rev 22488)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_context.c  
2009-08-16 01:25:53 UTC (rev 22489)
@@ -129,13 +129,13 @@
        }
        else if(CTX_data_equals(member, "weight_paint_object")) {
                if(ob && (ob->mode & OB_MODE_WEIGHT_PAINT))
-                       CTX_data_id_pointer_set(result, 
&scene->basact->object->id);
+                       CTX_data_id_pointer_set(result, &ob->id);
 
                return 1;
        }
        else if(CTX_data_equals(member, "texture_paint_object")) {
-               if(G.f & G_TEXTUREPAINT && scene->basact)
-                       CTX_data_id_pointer_set(result, 
&scene->basact->object->id);
+               if(ob && (ob->mode & OB_MODE_TEXTURE_PAINT))
+                       CTX_data_id_pointer_set(result, &ob->id);
 
                return 1;
        }

Modified: 
branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_image.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_image.c   
    2009-08-15 23:42:16 UTC (rev 22488)
+++ 
branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_image.c   
    2009-08-16 01:25:53 UTC (rev 22489)
@@ -4380,10 +4380,12 @@
 
 static int image_paint_poll(bContext *C)
 {
+       Object *obact = CTX_data_active_object(C);
+
        if(!image_paint_brush(C))
                return 0;
 
-       if((G.f & G_TEXTUREPAINT) && CTX_wm_region_view3d(C)) {
+       if((obact && obact->mode & OB_MODE_TEXTURE_PAINT) && 
CTX_wm_region_view3d(C)) {
                return 1;
        }
        else {
@@ -5144,13 +5146,13 @@
 
        me= get_mesh(ob);
 
-       if(!(G.f & G_TEXTUREPAINT) && !me) {
+       if(!(ob->mode & OB_MODE_TEXTURE_PAINT) && !me) {
                BKE_report(op->reports, RPT_ERROR, "Can only enter texture 
paint mode for mesh objects.");
                return OPERATOR_CANCELLED;
        }
 
-       if(G.f & G_TEXTUREPAINT) {
-               G.f &= ~G_TEXTUREPAINT;
+       if(ob->mode & OB_MODE_TEXTURE_PAINT) {
+               ob->mode &= ~OB_MODE_TEXTURE_PAINT;
 
                if(U.glreslimit != 0)
                        GPU_free_images();
@@ -5159,7 +5161,7 @@
                toggle_paint_cursor(C, 0);
        }
        else {
-               G.f |= G_TEXTUREPAINT;
+               ob->mode |= OB_MODE_TEXTURE_PAINT;
 
                if(me->mtface==NULL)
                        me->mtface= CustomData_add_layer(&me->fdata, CD_MTFACE, 
CD_DEFAULT,
@@ -5216,7 +5218,7 @@
 static int texture_paint_poll(bContext *C)
 {
        if(texture_paint_toggle_poll(C))
-               if(G.f & G_TEXTUREPAINT)
+               if(CTX_data_active_object(C)->mode & OB_MODE_TEXTURE_PAINT)
                        return 1;
        
        return 0;

Modified: 
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
  2009-08-15 23:42:16 UTC (rev 22488)
+++ 
branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
  2009-08-16 01:25:53 UTC (rev 22489)
@@ -321,14 +321,16 @@
                scene= path->ptr[path->len-1].data;
                ts= scene->toolsettings;
 
-               if(obact && obact->mode & OB_MODE_SCULPT)
-                       br= ts->sculpt->brush;
-               else if(obact && obact->mode & OB_MODE_VERTEX_PAINT)
-                       br= ts->vpaint->brush;
-               else if(obact && obact->mode & OB_MODE_WEIGHT_PAINT)
-                       br= ts->wpaint->brush;
-               else if(G.f & G_TEXTUREPAINT)
-                       br= ts->imapaint.brush;
+               if(obact) {
+                       if(obact->mode & OB_MODE_SCULPT)
+                               br= ts->sculpt->brush;
+                       else if(obact->mode & OB_MODE_VERTEX_PAINT)
+                               br= ts->vpaint->brush;
+                       else if(obact->mode & OB_MODE_WEIGHT_PAINT)
+                               br= ts->wpaint->brush;
+                       else if(obact->mode & OB_MODE_TEXTURE_PAINT)
+                               br= ts->imapaint.brush;
+               }
 
                if(br) {
                        RNA_id_pointer_create(&br->id, &path->ptr[path->len]);

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c    
    2009-08-15 23:42:16 UTC (rev 22488)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c    
    2009-08-16 01:25:53 UTC (rev 22489)
@@ -2269,7 +2269,7 @@
        else if(dt==OB_WIRE || totface==0) {
                draw_wire = 1; /* draw wire only, no depth buffer stuff  */
        }
-       else if(        (ob==OBACT && (G.f & G_TEXTUREPAINT || 
paint_facesel_test(ob))) ||
+       else if(        (ob==OBACT && (ob->mode & OB_MODE_TEXTURE_PAINT || 
paint_facesel_test(ob))) ||
                                CHECK_OB_DRAWTEXTURE(v3d, dt))
        {
                int faceselect= (ob==OBACT && paint_facesel_test(ob));
@@ -2348,7 +2348,7 @@
 
                                GPU_disable_material();
                        }
-                       else if((G.f & G_TEXTUREPAINT || ob->mode & 
OB_MODE_VERTEX_PAINT)) {
+                       else if(ob->mode & 
(OB_MODE_VERTEX_PAINT|OB_MODE_TEXTURE_PAINT)) {
                                if(me->mcol)
                                        dm->drawMappedFaces(dm, 
wpaint__setSolidDrawOptions, NULL, 1);
                                else {
@@ -5073,7 +5073,7 @@
        dtx= 0;
 
        /* faceselect exception: also draw solid when dt==wire, except in 
editmode */
-       if(ob==OBACT && (G.f & G_TEXTUREPAINT || ob->mode & 
(OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT))) {
+       if(ob==OBACT && (ob->mode & 
(OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
                if(ob->type==OB_MESH) {
 
                        if(ob==scene->obedit);
@@ -5711,7 +5711,7 @@
        if(G.f & G_RENDER_SHADOW) return;
 
        /* object centers, need to be drawn in viewmat space for speed, but OK 
for picking select */
-       if(ob!=OBACT || ((G.f & G_TEXTUREPAINT)==0) || !(ob->mode & 
(OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT))) {
+       if(ob!=OBACT || !(ob->mode & 
(OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
                int do_draw_center= -1; /* defines below are zero or 
positive... */
 
                if((scene->basact)==base) 

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c
    2009-08-15 23:42:16 UTC (rev 22488)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c
    2009-08-16 01:25:53 UTC (rev 22489)
@@ -1058,7 +1058,7 @@
 
 // XXX uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
        
-       if(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT) || G.f & 
G_TEXTUREPAINT) {
+       if(ob->mode & 
(OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)) {
        }
        else {
                //bt= uiDefBut(block, TEX, B_IDNAME, "OB: ",    10,180,140,20, 
ob->id.name+2, 0.0, 21.0, 0, 0, "");

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to