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/object.cpp')
-rw-r--r--intern/cycles/render/object.cpp32
1 files changed, 13 insertions, 19 deletions
diff --git a/intern/cycles/render/object.cpp b/intern/cycles/render/object.cpp
index daa872239ce..57e44861e40 100644
--- a/intern/cycles/render/object.cpp
+++ b/intern/cycles/render/object.cpp
@@ -488,9 +488,9 @@ void ObjectManager::device_update_transforms(Device *device,
state.queue_start_object = 0;
state.object_flag = object_flag;
- state.objects = dscene->objects.resize(OBJECT_SIZE*scene->objects.size());
+ state.objects = dscene->objects.alloc(OBJECT_SIZE*scene->objects.size());
if(state.need_motion == Scene::MOTION_PASS) {
- state.objects_vector = dscene->objects_vector.resize(OBJECT_VECTOR_SIZE*scene->objects.size());
+ state.objects_vector = dscene->objects_vector.alloc(OBJECT_VECTOR_SIZE*scene->objects.size());
}
else {
state.objects_vector = NULL;
@@ -534,9 +534,9 @@ void ObjectManager::device_update_transforms(Device *device,
}
}
- device->tex_alloc(dscene->objects);
+ dscene->objects.copy_to_device();
if(state.need_motion == Scene::MOTION_PASS) {
- device->tex_alloc(dscene->objects_vector);
+ dscene->objects_vector.copy_to_device();
}
dscene->data.bvh.have_motion = state.have_motion;
@@ -557,7 +557,7 @@ void ObjectManager::device_update(Device *device, DeviceScene *dscene, Scene *sc
return;
/* object info flag */
- uint *object_flag = dscene->object_flag.resize(scene->objects.size());
+ uint *object_flag = dscene->object_flag.alloc(scene->objects.size());
/* set object transform matrices, before applying static transforms */
progress.set_status("Updating Objects", "Copying Transformations to device");
@@ -573,7 +573,7 @@ void ObjectManager::device_update(Device *device, DeviceScene *dscene, Scene *sc
}
}
-void ObjectManager::device_update_flags(Device *device,
+void ObjectManager::device_update_flags(Device *,
DeviceScene *dscene,
Scene *scene,
Progress& /*progress*/,
@@ -638,10 +638,10 @@ void ObjectManager::device_update_flags(Device *device,
}
/* allocate object flag */
- device->tex_alloc(dscene->object_flag);
+ dscene->object_flag.copy_to_device();
}
-void ObjectManager::device_update_patch_map_offsets(Device *device, DeviceScene *dscene, Scene *scene)
+void ObjectManager::device_update_patch_map_offsets(Device *, DeviceScene *dscene, Scene *scene)
{
if(scene->objects.size() == 0) {
return;
@@ -671,21 +671,15 @@ void ObjectManager::device_update_patch_map_offsets(Device *device, DeviceScene
}
if(update) {
- device->tex_free(dscene->objects);
- device->tex_alloc(dscene->objects);
+ dscene->objects.copy_to_device();
}
}
-void ObjectManager::device_free(Device *device, DeviceScene *dscene)
+void ObjectManager::device_free(Device *, DeviceScene *dscene)
{
- device->tex_free(dscene->objects);
- dscene->objects.clear();
-
- device->tex_free(dscene->objects_vector);
- dscene->objects_vector.clear();
-
- device->tex_free(dscene->object_flag);
- dscene->object_flag.clear();
+ dscene->objects.free();
+ dscene->objects_vector.free();
+ dscene->object_flag.free();
}
void ObjectManager::apply_static_transforms(DeviceScene *dscene, Scene *scene, uint *object_flag, Progress& progress)