Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/dynamicpaint.c')
-rw-r--r--source/blender/blenkernel/intern/dynamicpaint.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c
index 3085876f592..f1ec5b4effa 100644
--- a/source/blender/blenkernel/intern/dynamicpaint.c
+++ b/source/blender/blenkernel/intern/dynamicpaint.c
@@ -543,6 +543,11 @@ static int surface_getBrushFlags(DynamicPaintSurface *surface, Scene *scene, Obj
return flags;
}
+static int brush_usesMaterial(DynamicPaintBrushSettings *brush, Scene *scene)
+{
+ return ((brush->flags & MOD_DPAINT_USE_MATERIAL) && (!strcmp(scene->r.engine, "BLENDER_RENDER")));
+}
+
/* check whether two bounds intersect */
static int boundsIntersect(Bounds3D *b1, Bounds3D *b2)
{
@@ -3375,7 +3380,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface, DynamicPaintBrus
sampleColor[2] = brush->b;
/* Get material+textures color on hit point if required */
- if (brush->flags & MOD_DPAINT_USE_MATERIAL)
+ if (brush_usesMaterial(brush, scene))
dynamicPaint_doMaterialTex(bMats, sampleColor, &alpha_factor, brushOb, bData->realCoord[bData->s_pos[index]+ss].v, hitCoord, hitFace, hitQuad, brush->dm);
/* Sample proximity colorband if required */
@@ -3716,7 +3721,7 @@ static int dynamicPaint_paintSinglePoint(DynamicPaintSurface *surface, float *po
float velocity_val = 0.0f;
/* material */
- if (brush->flags & MOD_DPAINT_USE_MATERIAL) {
+ if (brush_usesMaterial(brush, scene)) {
float alpha_factor = 1.0f;
float hit_coord[3];
MVert *mvert = brush->dm->getVertArray(brush->dm);
@@ -3759,7 +3764,7 @@ static int dynamicPaint_paintSinglePoint(DynamicPaintSurface *surface, float *po
paintColor[2] = colorband[2];
}
else {
- if (!(brush->flags & MOD_DPAINT_USE_MATERIAL)) {
+ if (!brush_usesMaterial(brush, scene)) {
paintColor[0] = brush->r;
paintColor[1] = brush->g;
paintColor[2] = brush->b;
@@ -4765,7 +4770,7 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su
subframe_updateObject(scene, brushObj, UPDATE_EVERYTHING, BKE_curframe(scene));
}
/* Prepare materials if required */
- if (brush->flags & MOD_DPAINT_USE_MATERIAL)
+ if (brush_usesMaterial(brush, scene))
dynamicPaint_updateBrushMaterials(brushObj, brush->mat, scene, &bMats);
/* Apply brush on the surface depending on it's collision type */
@@ -4789,7 +4794,7 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su
}
/* free temp material data */
- if (brush->flags & MOD_DPAINT_USE_MATERIAL)
+ if (brush_usesMaterial(brush, scene))
dynamicPaint_freeBrushMaterials(&bMats);
/* reset object to it's original state */
if (subframe) {