Sequencer: Add option to render OpenGL preview with DoF
[blender-staging.git] / source / blender / makesrna / intern / rna_camera.c
index 68cd2902acd99705e37e71d4b748c9bf4207b934..981ae75e7c5c059b9a6f983cb892c64d901968fe 100644 (file)
 #ifdef RNA_RUNTIME
 
 #include "BKE_camera.h"
 #ifdef RNA_RUNTIME
 
 #include "BKE_camera.h"
-#include "BKE_object.h"
 #include "BKE_depsgraph.h"
 #include "BKE_depsgraph.h"
+#include "BKE_object.h"
+#include "BKE_sequencer.h"
+
+#include "WM_api.h"
 
 static float rna_Camera_angle_get(PointerRNA *ptr)
 {
 
 static float rna_Camera_angle_get(PointerRNA *ptr)
 {
@@ -94,6 +97,14 @@ static void rna_Camera_dependency_update(Main *bmain, Scene *UNUSED(scene), Poin
        DAG_id_tag_update(&camera->id, 0);
 }
 
        DAG_id_tag_update(&camera->id, 0);
 }
 
+static void rna_Camera_dof_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr))
+{
+       /* TODO(sergey): Can be more selective here. */
+       BKE_sequencer_cache_cleanup();
+       BKE_sequencer_preprocessed_cache_cleanup();
+       WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
+}
+
 #else
 
 static void rna_def_camera_stereo_data(BlenderRNA *brna)
 #else
 
 static void rna_def_camera_stereo_data(BlenderRNA *brna)
@@ -323,7 +334,7 @@ void RNA_def_camera(BlenderRNA *brna)
        RNA_def_property_range(prop, 0.0f, FLT_MAX);
        RNA_def_property_ui_range(prop, 0.0f, 5000.0f, 1, 2);
        RNA_def_property_ui_text(prop, "DOF Distance", "Distance to the focus point for depth of field");
        RNA_def_property_range(prop, 0.0f, FLT_MAX);
        RNA_def_property_ui_range(prop, 0.0f, 5000.0f, 1, 2);
        RNA_def_property_ui_text(prop, "DOF Distance", "Distance to the focus point for depth of field");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
+       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Camera_dof_update");
 
        /* Stereo Settings */
        prop = RNA_def_property(srna, "stereo", PROP_POINTER, PROP_NONE);
 
        /* Stereo Settings */
        prop = RNA_def_property(srna, "stereo", PROP_POINTER, PROP_NONE);