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:
authorCampbell Barton <ideasman42@gmail.com>2018-03-27 08:08:58 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-03-27 08:08:58 +0300
commitddecf23711ec8a3a4247f78c01e3f1a0c36eaaea (patch)
tree8362fb30ff72e766c06aafe887e6bc52dc15a55b /source/blender/editors/sculpt_paint/paint_curve.c
parent17a4a5a5530fed7f7fcd9d4870d9f8c24a315680 (diff)
parent3bca1ef26bcbd65f1a9063f2d073c92f83c79b70 (diff)
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors/sculpt_paint/paint_curve.c')
-rw-r--r--source/blender/editors/sculpt_paint/paint_curve.c96
1 files changed, 4 insertions, 92 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_curve.c b/source/blender/editors/sculpt_paint/paint_curve.c
index c9ad4a46a13..fb8dea2af0e 100644
--- a/source/blender/editors/sculpt_paint/paint_curve.c
+++ b/source/blender/editors/sculpt_paint/paint_curve.c
@@ -35,7 +35,6 @@
#include "DNA_workspace_types.h"
#include "BLI_math_vector.h"
-#include "BLI_string.h"
#include "BKE_context.h"
#include "BKE_main.h"
@@ -43,7 +42,6 @@
#include "DEG_depsgraph.h"
-#include "ED_paint.h"
#include "ED_view3d.h"
#include "WM_api.h"
@@ -59,7 +57,6 @@
#define PAINT_CURVE_SELECT_THRESHOLD 40.0f
#define PAINT_CURVE_POINT_SELECT(pcp, i) (*(&pcp->bez.f1 + i) = SELECT)
-
int paint_curve_poll(bContext *C)
{
const WorkSpace *workspace = CTX_wm_workspace(C);
@@ -85,91 +82,6 @@ int paint_curve_poll(bContext *C)
return false;
}
-/* Paint Curve Undo*/
-
-typedef struct UndoCurve {
- struct UndoImageTile *next, *prev;
-
- PaintCurvePoint *points; /* points of curve */
- int tot_points;
- int active_point;
-
- char idname[MAX_ID_NAME]; /* name instead of pointer*/
-} UndoCurve;
-
-static void paintcurve_undo_restore(bContext *C, ListBase *lb)
-{
- Paint *p = BKE_paint_get_active_from_context(C);
- UndoCurve *uc;
- PaintCurve *pc = NULL;
-
- if (p->brush) {
- pc = p->brush->paint_curve;
- }
-
- if (!pc)
- return;
-
- uc = (UndoCurve *)lb->first;
-
- if (STREQLEN(uc->idname, pc->id.name, BLI_strnlen(uc->idname, sizeof(uc->idname)))) {
- SWAP(PaintCurvePoint *, pc->points, uc->points);
- SWAP(int, pc->tot_points, uc->tot_points);
- SWAP(int, pc->add_index, uc->active_point);
- }
-}
-
-static void paintcurve_undo_delete(ListBase *lb)
-{
- UndoCurve *uc;
- uc = (UndoCurve *)lb->first;
-
- if (uc->points)
- MEM_freeN(uc->points);
- uc->points = NULL;
-}
-
-
-static void paintcurve_undo_begin(bContext *C, wmOperator *op, PaintCurve *pc)
-{
- ePaintMode mode = BKE_paintmode_get_active_from_context(C);
- ListBase *lb = NULL;
- int undo_stack_id;
- UndoCurve *uc;
-
- switch (mode) {
- case ePaintTexture2D:
- case ePaintTextureProjective:
- undo_stack_id = UNDO_PAINT_IMAGE;
- break;
-
- case ePaintSculpt:
- undo_stack_id = UNDO_PAINT_MESH;
- break;
-
- default:
- /* do nothing, undo is handled by global */
- return;
- }
-
-
- ED_undo_paint_push_begin(undo_stack_id, op->type->name,
- paintcurve_undo_restore, paintcurve_undo_delete, NULL);
- lb = undo_paint_push_get_list(undo_stack_id);
-
- uc = MEM_callocN(sizeof(*uc), "Undo_curve");
-
- lb->first = uc;
-
- BLI_strncpy(uc->idname, pc->id.name, sizeof(uc->idname));
- uc->tot_points = pc->tot_points;
- uc->active_point = pc->add_index;
- uc->points = MEM_dupallocN(pc->points);
-
- undo_paint_push_count_alloc(undo_stack_id, sizeof(*uc) + sizeof(*pc->points) * pc->tot_points);
-
- ED_undo_paint_push_end(undo_stack_id);
-}
#define SEL_F1 (1 << 0)
#define SEL_F2 (1 << 1)
#define SEL_F3 (1 << 2)
@@ -295,7 +207,7 @@ static void paintcurve_point_add(bContext *C, wmOperator *op, const int loc[2])
br->paint_curve = pc = BKE_paint_curve_add(bmain, "PaintCurve");
}
- paintcurve_undo_begin(C, op, pc);
+ ED_paintcurve_undo_push(C, op, pc);
pcp = MEM_mallocN((pc->tot_points + 1) * sizeof(PaintCurvePoint), "PaintCurvePoint");
add_index = pc->add_index;
@@ -394,7 +306,7 @@ static int paintcurve_delete_point_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- paintcurve_undo_begin(C, op, pc);
+ ED_paintcurve_undo_push(C, op, pc);
#define DELETE_TAG 2
@@ -471,7 +383,7 @@ static bool paintcurve_point_select(bContext *C, wmOperator *op, const int loc[2
if (!pc)
return false;
- paintcurve_undo_begin(C, op, pc);
+ ED_paintcurve_undo_push(C, op, pc);
if (toggle) {
PaintCurvePoint *pcp;
@@ -655,7 +567,7 @@ static int paintcurve_slide_invoke(bContext *C, wmOperator *op, const wmEvent *e
op->customdata = psd;
if (do_select)
- paintcurve_undo_begin(C, op, pc);
+ ED_paintcurve_undo_push(C, op, pc);
/* first, clear all selection from points */
for (i = 0; i < pc->tot_points; i++)