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/render/camera.cpp')
-rw-r--r--intern/cycles/render/camera.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/intern/cycles/render/camera.cpp b/intern/cycles/render/camera.cpp
index 9d03a9e360e..ea9b853d454 100644
--- a/intern/cycles/render/camera.cpp
+++ b/intern/cycles/render/camera.cpp
@@ -278,11 +278,20 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
kcam->nearclip = nearclip;
kcam->cliplength = (farclip == FLT_MAX)? FLT_MAX: farclip - nearclip;
- need_device_update = false;
- previous_need_motion = need_motion;
-
/* Camera in volume. */
kcam->is_inside_volume = 0;
+
+ previous_need_motion = need_motion;
+}
+
+void Camera::device_update_volume(Device *device,
+ DeviceScene *dscene,
+ Scene *scene)
+{
+ if(!need_device_update) {
+ return;
+ }
+ KernelCamera *kcam = &dscene->data.cam;
BoundBox viewplane_boundbox = viewplane_bounds_get();
for(size_t i = 0; i < scene->objects.size(); ++i) {
Object *object = scene->objects[i];
@@ -294,6 +303,7 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
break;
}
}
+ need_device_update = false;
}
void Camera::device_free(Device *device, DeviceScene *dscene)