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/editors/render')
-rw-r--r--source/blender/editors/render/render_intern.h1
-rw-r--r--source/blender/editors/render/render_internal.c42
-rw-r--r--source/blender/editors/render/render_ops.c1
3 files changed, 44 insertions, 0 deletions
diff --git a/source/blender/editors/render/render_intern.h b/source/blender/editors/render/render_intern.h
index 26f313cb3fe..fb07b03c286 100644
--- a/source/blender/editors/render/render_intern.h
+++ b/source/blender/editors/render/render_intern.h
@@ -89,6 +89,7 @@ void TEXTURE_OT_envmap_clear_all(struct wmOperatorType *ot);
/* render_internal.c */
void RENDER_OT_render(struct wmOperatorType *ot);
+void RENDER_OT_shutter_curve_preset(struct wmOperatorType *ot);
void render_view3d_update(struct RenderEngine *engine, const struct bContext *C);
void render_view3d_draw(struct RenderEngine *engine, const struct bContext *C);
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 57aafb549ac..f44374b1d7b 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -1640,3 +1640,45 @@ Scene *ED_render_job_get_current_scene(const bContext *C)
}
return NULL;
}
+
+/* Motion blur curve preset */
+
+static int render_shutter_curve_preset_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene = CTX_data_scene(C);
+ CurveMapping *mblur_shutter_curve = &scene->r.mblur_shutter_curve;
+ CurveMap *cm = mblur_shutter_curve->cm;
+ int preset = RNA_enum_get(op->ptr, "shape");
+
+ cm->flag &= ~CUMA_EXTEND_EXTRAPOLATE;
+ mblur_shutter_curve->preset = preset;
+ curvemap_reset(cm,
+ &mblur_shutter_curve->clipr,
+ mblur_shutter_curve->preset,
+ CURVEMAP_SLOPE_POS_NEG);
+ curvemapping_changed(mblur_shutter_curve, false);
+
+ return OPERATOR_FINISHED;
+}
+
+void RENDER_OT_shutter_curve_preset(wmOperatorType *ot)
+{
+ PropertyRNA *prop;
+ static EnumPropertyItem prop_shape_items[] = {
+ {CURVE_PRESET_SHARP, "SHARP", 0, "Sharp", ""},
+ {CURVE_PRESET_SMOOTH, "SMOOTH", 0, "Smooth", ""},
+ {CURVE_PRESET_MAX, "MAX", 0, "Max", ""},
+ {CURVE_PRESET_LINE, "LINE", 0, "Line", ""},
+ {CURVE_PRESET_ROUND, "ROUND", 0, "Round", ""},
+ {CURVE_PRESET_ROOT, "ROOT", 0, "Root", ""},
+ {0, NULL, 0, NULL, NULL}};
+
+ ot->name = "Shutter Curve Preset";
+ ot->description = "Set shutter curve";
+ ot->idname = "RENDER_OT_shutter_curve_preset";
+
+ ot->exec = render_shutter_curve_preset_exec;
+
+ prop = RNA_def_enum(ot->srna, "shape", prop_shape_items, CURVE_PRESET_SMOOTH, "Mode", "");
+ RNA_def_property_translation_context(prop, BLT_I18NCONTEXT_ID_CURVE); /* Abusing id_curve :/ */
+}
diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c
index f98083f7e74..c09e8576dc2 100644
--- a/source/blender/editors/render/render_ops.c
+++ b/source/blender/editors/render/render_ops.c
@@ -93,6 +93,7 @@ void ED_operatortypes_render(void)
WM_operatortype_append(RENDER_OT_view_show);
WM_operatortype_append(RENDER_OT_render);
WM_operatortype_append(RENDER_OT_view_cancel);
+ WM_operatortype_append(RENDER_OT_shutter_curve_preset);
/* render_opengl.c */
WM_operatortype_append(RENDER_OT_opengl);