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 'intern/cycles/blender/blender_session.h')
-rw-r--r--intern/cycles/blender/blender_session.h33
1 files changed, 22 insertions, 11 deletions
diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h
index 2c0a83cf6e7..2bfb9e56c37 100644
--- a/intern/cycles/blender/blender_session.h
+++ b/intern/cycles/blender/blender_session.h
@@ -35,14 +35,13 @@ class RenderTile;
class BlenderSession {
public:
BlenderSession(BL::RenderEngine& b_engine,
- BL::UserPreferences& b_userpref,
+ BL::Preferences& b_userpref,
BL::BlendData& b_data,
- BL::Scene& b_scene);
+ bool preview_osl);
BlenderSession(BL::RenderEngine& b_engine,
- BL::UserPreferences& b_userpref,
+ BL::Preferences& b_userpref,
BL::BlendData& b_data,
- BL::Scene& b_scene,
BL::SpaceView3D& b_v3d,
BL::RegionView3D& b_rv3d,
int width, int height);
@@ -56,12 +55,13 @@ public:
void free_session();
void reset_session(BL::BlendData& b_data,
- BL::Scene& b_scene);
+ BL::Depsgraph& b_depsgraph);
/* offline render */
- void render();
+ void render(BL::Depsgraph& b_depsgraph);
- void bake(BL::Object& b_object,
+ void bake(BL::Depsgraph& b_depsgrah,
+ BL::Object& b_object,
const string& pass_type,
const int custom_flag,
const int object_id,
@@ -83,7 +83,7 @@ public:
void update_render_tile(RenderTile& rtile, bool highlight);
/* interactive updates */
- void synchronize();
+ void synchronize(BL::Depsgraph& b_depsgraph);
/* drawing */
bool draw(int w, int h);
@@ -103,9 +103,13 @@ public:
double last_redraw_time;
BL::RenderEngine b_engine;
- BL::UserPreferences b_userpref;
+ BL::Preferences b_userpref;
BL::BlendData b_data;
BL::RenderSettings b_render;
+ BL::Depsgraph b_depsgraph;
+ /* NOTE: Blender's scene might become invalid after call
+ * free_blender_memory_if_possible().
+ */
BL::Scene b_scene;
BL::SpaceView3D b_v3d;
BL::RegionView3D b_rv3d;
@@ -118,6 +122,7 @@ public:
double last_status_time;
int width, height;
+ bool preview_osl;
double start_resize_time;
void *python_thread_state;
@@ -147,8 +152,7 @@ public:
static bool print_render_stats;
protected:
- void stamp_view_layer_metadata(const string& view_layer_name);
- void stamp_view_layer_metadata_do(const string& prefix);
+ void stamp_view_layer_metadata(Scene *scene, const string& view_layer_name);
void do_write_update_render_result(BL::RenderResult& b_rr,
BL::RenderLayer& b_rlay,
@@ -170,9 +174,16 @@ protected:
float *pixels,
const size_t pixels_size,
const bool free_cache);
+ void builtin_images_load();
/* Update tile manager to reflect resumable render settings. */
void update_resumable_tile_manager(int num_samples);
+
+ /* Is used after each render layer synchronization is done with the goal
+ * of freeing render engine data which is held from Blender side (for
+ * example, dependency graph).
+ */
+ void free_blender_memory_if_possible();
};
CCL_NAMESPACE_END