[Bf-blender-cvs] [fd309ff] soc-2013-paint: More review points taken care of.
Antony Riakiotakis
noreply at git.blender.org
Fri Jul 4 20:47:23 CEST 2014
Commit: fd309ffbe00cc6e0c127575ac35704d16860e468
Author: Antony Riakiotakis
Date: Fri Jul 4 21:46:37 2014 +0300
https://developer.blender.org/rBfd309ffbe00cc6e0c127575ac35704d16860e468
More review points taken care of.
===================================================================
M source/blender/blenkernel/BKE_DerivedMesh.h
M source/blender/blenkernel/intern/DerivedMesh.c
M source/blender/blenkernel/intern/cdderivedmesh.c
M source/blender/blenkernel/intern/subsurf_ccg.c
M source/blender/editors/sculpt_paint/paint_curve.c
M source/blender/editors/sculpt_paint/paint_intern.h
M source/blender/editors/sculpt_paint/paint_ops.c
M source/blender/editors/transform/transform_conversions.c
M source/blender/gpu/intern/gpu_buffers.c
M source/blender/makesdna/DNA_material_types.h
M source/blender/makesdna/DNA_scene_types.h
===================================================================
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 6f4352d..2e7e14d 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -595,6 +595,8 @@ void DM_ensure_tessface(DerivedMesh *dm);
void DM_update_tessface_data(DerivedMesh *dm);
void DM_update_materials(DerivedMesh *dm, struct Object *ob);
+struct MTFace *DM_active_paint_uvlayer(DerivedMesh *dm, int mat_nr);
+
/** interpolates vertex data from the vertices indexed by src_indices in the
* source mesh using the given weights and stores the result in the vertex
* indexed by dest_index in the dest mesh
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 25cd1a8..3b24acc 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -37,6 +37,7 @@
#include "DNA_cloth_types.h"
#include "DNA_key_types.h"
+#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -509,6 +510,28 @@ void DM_update_materials(DerivedMesh *dm, Object *ob)
}
}
+MTFace *DM_active_paint_uvlayer(DerivedMesh *dm, int mat_nr)
+{
+ MTFace *tf_base;
+
+ BLI_assert(mat_nr < dm->totmat);
+
+ if (dm->mat[mat_nr] && dm->mat[mat_nr]->texpaintslot &&
+ dm->mat[mat_nr]->texpaintslot[dm->mat[mat_nr]->paint_active_slot].uvname[0])
+ {
+ tf_base = CustomData_get_layer_named(&dm->faceData, CD_MTFACE,
+ dm->mat[mat_nr]->texpaintslot[dm->mat[mat_nr]->paint_active_slot].uvname);
+ /* This can fail if we have changed the name in the UV layer list and have assigned the old name in the material
+ * texture slot.*/
+ if (!tf_base)
+ tf_base = CustomData_get_layer(&dm->faceData, CD_MTFACE);
+ }
+ else {
+ tf_base = CustomData_get_layer(&dm->faceData, CD_MTFACE);
+ }
+
+ return tf_base;
+}
void DM_to_mesh(DerivedMesh *dm, Mesh *me, Object *ob, CustomDataMask mask)
{
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index b921dd1..3340422 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -737,19 +737,7 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
if (uvflag & DM_DRAW_USE_TEXPAINT_UV) {
if (mf->mat_nr != mat_nr_cache) {
- if (dm->totmat > 1) {
- int mat_i = mf->mat_nr;
- if (dm->mat[mat_i] && dm->mat[mat_i]->texpaintslot &&
- dm->mat[mat_i]->texpaintslot[dm->mat[mat_i]->paint_active_slot].uvname[0])
- {
- tf_base = CustomData_get_layer_named(&dm->faceData, CD_MTFACE,
- dm->mat[mat_i]->texpaintslot[dm->mat[mat_i]->paint_active_slot].uvname);
- }
- else
- tf_base = CustomData_get_layer(&dm->faceData, CD_MTFACE);
- }
- else
- tf_base = CustomData_get_layer(&dm->faceData, CD_MTFACE);
+ tf_base = DM_active_paint_uvlayer(dm, mf->mat_nr);
mat_nr_cache = mf->mat_nr;
}
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 9f74809..0247e59 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -2349,20 +2349,7 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
/* texture painting, handle the correct uv layer here */
if (flag & DM_DRAW_USE_TEXPAINT_UV) {
if (mat_nr != mat_nr_cache) {
- if (dm->totmat > 1) {
- if (dm->mat[mat_nr] && dm->mat[mat_nr]->texpaintslot &&
- dm->mat[mat_nr]->texpaintslot[dm->mat[mat_nr]->paint_active_slot].uvname[0])
- {
- tf_base = CustomData_get_layer_named(&dm->faceData, CD_MTFACE,
- dm->mat[mat_nr]->texpaintslot[dm->mat[mat_nr]->paint_active_slot].uvname);
- }
- else {
- tf_base = CustomData_get_layer(&dm->faceData, CD_MTFACE);
- }
- }
- else {
- tf_base = CustomData_get_layer(&dm->faceData, CD_MTFACE);
- }
+ tf_base = DM_active_paint_uvlayer(dm, mat_nr);
mat_nr_cache = mat_nr;
}
diff --git a/source/blender/editors/sculpt_paint/paint_curve.c b/source/blender/editors/sculpt_paint/paint_curve.c
index b3748d5..99d7463 100644
--- a/source/blender/editors/sculpt_paint/paint_curve.c
+++ b/source/blender/editors/sculpt_paint/paint_curve.c
@@ -51,14 +51,14 @@
#include "paint_intern.h"
-int paintcurve_poll(bContext *C)
+int paint_curve_poll(bContext *C)
{
Object *ob = CTX_data_active_object(C);
Paint *p;
RegionView3D *rv3d = CTX_wm_region_view3d(C);
SpaceImage *sima;
- if (rv3d && !(ob && (ob->mode & OB_MODE_ALL_PAINT)))
+ if (rv3d && !(ob && ((ob->mode & OB_MODE_ALL_PAINT) != 0)))
return false;
sima = CTX_wm_space_image(C);
@@ -185,7 +185,7 @@ void PAINTCURVE_OT_new(wmOperatorType *ot)
/* api callbacks */
ot->exec = paintcurve_new_exec;
- ot->poll = paintcurve_poll;
+ ot->poll = paint_curve_poll;
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
@@ -275,7 +275,7 @@ void PAINTCURVE_OT_add_point(wmOperatorType *ot)
/* api callbacks */
ot->invoke = paintcurve_add_point_invoke;
ot->exec = paintcurve_add_point_exec;
- ot->poll = paintcurve_poll;
+ ot->poll = paint_curve_poll;
/* flags */
ot->flag = OPTYPE_UNDO;
@@ -356,7 +356,7 @@ void PAINTCURVE_OT_delete_point(wmOperatorType *ot)
/* api callbacks */
ot->exec = paintcurve_delete_point_exec;
- ot->poll = paintcurve_poll;
+ ot->poll = paint_curve_poll;
/* flags */
ot->flag = OPTYPE_UNDO;
@@ -478,7 +478,7 @@ void PAINTCURVE_OT_select(wmOperatorType *ot)
/* api callbacks */
ot->invoke = paintcurve_select_point_invoke;
ot->exec = paintcurve_select_point_exec;
- ot->poll = paintcurve_poll;
+ ot->poll = paint_curve_poll;
/* flags */
ot->flag = OPTYPE_UNDO;
@@ -530,7 +530,7 @@ void PAINTCURVE_OT_draw(wmOperatorType *ot)
/* api callbacks */
ot->exec = paintcurve_draw_exec;
- ot->poll = paintcurve_poll;
+ ot->poll = paint_curve_poll;
/* flags */
ot->flag = OPTYPE_UNDO;
diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h
index d1d0282..97ed1c8 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.h
+++ b/source/blender/editors/sculpt_paint/paint_intern.h
@@ -223,8 +223,10 @@ void PAINT_OT_face_select_reveal(struct wmOperatorType *ot);
void PAINT_OT_vert_select_all(struct wmOperatorType *ot);
void PAINT_OT_vert_select_ungrouped(struct wmOperatorType *ot);
+
int vert_paint_poll(struct bContext *C);
int mask_paint_poll(struct bContext *C);
+int paint_curve_poll(struct bContext *C);
int facemask_paint_poll(struct bContext *C);
void flip_v3_v3(float out[3], const float in[3], const char symm);
@@ -267,7 +269,6 @@ void PAINT_OT_mask_flood_fill(struct wmOperatorType *ot);
void PAINT_OT_mask_lasso_gesture(struct wmOperatorType *ot);
/* paint_curve.c */
-int paintcurve_poll(struct bContext *C);
void PAINTCURVE_OT_new(struct wmOperatorType *ot);
void PAINTCURVE_OT_add_point(struct wmOperatorType *ot);
void PAINTCURVE_OT_delete_point(struct wmOperatorType *ot);
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c
index a1f958a..b829f3b 100644
--- a/source/blender/editors/sculpt_paint/paint_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_ops.c
@@ -1258,7 +1258,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
int i;
keymap = WM_keymap_find(keyconf, "Curve", 0, 0);
- keymap->poll = paintcurve_poll;
+ keymap->poll = paint_curve_poll;
paint_keymap_curve(keymap);
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index d9e3b4f..702b290 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -6802,7 +6802,6 @@ static void MaskPointToTransData(Scene *scene, MaskSplinePoint *point,
}
}
-
static void createTransMaskingData(bContext *C, TransInfo *t)
{
Scene *scene = CTX_data_scene(C);
diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c
index 6a71397..d660b32 100644
--- a/source/blender/gpu/intern/gpu_buffers.c
+++ b/source/blender/gpu/intern/gpu_buffers.c
@@ -859,18 +859,7 @@ static void GPU_buffer_copy_uv_texpaint(DerivedMesh *dm, float *varray, int *ind
mtface_base = MEM_mallocN(totmaterial * sizeof(*mtface_base), "texslots");
for (i = 0; i < totmaterial; i++) {
- if (dm->mat[i] && dm->mat[i]->texpaintslot &&
- dm->mat[i]->texpaintslot[dm->mat[i]->paint_active_slot].uvname[0])
- {
- mtface_base[i] = CustomData_get_layer_named(&dm->faceData, CD_MTFACE,
- dm->mat[i]->texpaintslot[dm->mat[i]->paint_active_slot].uvname);
- /* This can fail if we have changed the name in the UV layer list and have assigned the old name in the material
- * texture slot.*/
- if (!mtface_base[i])
- mtface_base[i] = CustomData_get_layer(&dm->faceData, CD_MTFACE);
- }
- else
- mtface_base[i] = CustomData_get_layer(&dm->faceData, CD_MTFACE);
+ mtface_base[i] = DM_active_paint_uvlayer(dm, i);
}
stencil = CustomData_get_stencil_layer(&dm->faceData, CD_MTFACE);
diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h
index 0d53a86..4c0903d 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -85,7 +85,7 @@ typedef struct GameSettings {
typedef struct TexPaintSlot {
struct Image *ima; /* image to be painted on */
- char uvname[64]; /* customdata index for uv layer */
+ char uvname[64]; /* customdata index for uv layer, MAX_NAME*/
} TexPaintSlot;
typedef struct Material {
@@ -142,13 +142,6 @@ typedef struct Material {
/* mapping */
char mapflag, pad;
- /* texture painting */
- short paint_active_slot;
- short paint_clone_slot;
- int tot_slots;
- struct TexPaintSlot *texpaintslot; /* cached slot for painting. Make sure to r
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list