diff options
Diffstat (limited to 'intern/cycles/render/object.cpp')
-rw-r--r-- | intern/cycles/render/object.cpp | 32 |
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) |