Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/mesh.cpp
| Show First 20 Lines • Show All 997 Lines • ▼ Show 20 Lines | void MeshManager::device_update_bvh(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) | ||||
| if(pack.nodes.size()) { | if(pack.nodes.size()) { | ||||
| dscene->bvh_nodes.reference((float4*)&pack.nodes[0], pack.nodes.size()); | dscene->bvh_nodes.reference((float4*)&pack.nodes[0], pack.nodes.size()); | ||||
| device->tex_alloc("__bvh_nodes", dscene->bvh_nodes); | device->tex_alloc("__bvh_nodes", dscene->bvh_nodes); | ||||
| } | } | ||||
| if(pack.object_node.size()) { | if(pack.object_node.size()) { | ||||
| dscene->object_node.reference((uint*)&pack.object_node[0], pack.object_node.size()); | dscene->object_node.reference((uint*)&pack.object_node[0], pack.object_node.size()); | ||||
| device->tex_alloc("__object_node", dscene->object_node); | device->tex_alloc("__object_node", dscene->object_node); | ||||
| } | } | ||||
| if(pack.tri_woop.size()) { | |||||
| dscene->tri_woop.reference(&pack.tri_woop[0], pack.tri_woop.size()); | |||||
| device->tex_alloc("__tri_woop", dscene->tri_woop); | |||||
| } | |||||
| if(pack.prim_type.size()) { | if(pack.prim_type.size()) { | ||||
| dscene->prim_type.reference((uint*)&pack.prim_type[0], pack.prim_type.size()); | dscene->prim_type.reference((uint*)&pack.prim_type[0], pack.prim_type.size()); | ||||
| device->tex_alloc("__prim_type", dscene->prim_type); | device->tex_alloc("__prim_type", dscene->prim_type); | ||||
| } | } | ||||
| if(pack.prim_visibility.size()) { | if(pack.prim_visibility.size()) { | ||||
| dscene->prim_visibility.reference((uint*)&pack.prim_visibility[0], pack.prim_visibility.size()); | dscene->prim_visibility.reference((uint*)&pack.prim_visibility[0], pack.prim_visibility.size()); | ||||
| device->tex_alloc("__prim_visibility", dscene->prim_visibility); | device->tex_alloc("__prim_visibility", dscene->prim_visibility); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | #endif | ||||
| need_update = false; | need_update = false; | ||||
| } | } | ||||
| void MeshManager::device_free(Device *device, DeviceScene *dscene) | void MeshManager::device_free(Device *device, DeviceScene *dscene) | ||||
| { | { | ||||
| device->tex_free(dscene->bvh_nodes); | device->tex_free(dscene->bvh_nodes); | ||||
| device->tex_free(dscene->object_node); | device->tex_free(dscene->object_node); | ||||
| device->tex_free(dscene->tri_woop); | |||||
| device->tex_free(dscene->prim_type); | device->tex_free(dscene->prim_type); | ||||
| device->tex_free(dscene->prim_visibility); | device->tex_free(dscene->prim_visibility); | ||||
| device->tex_free(dscene->prim_index); | device->tex_free(dscene->prim_index); | ||||
| device->tex_free(dscene->prim_object); | device->tex_free(dscene->prim_object); | ||||
| device->tex_free(dscene->tri_shader); | device->tex_free(dscene->tri_shader); | ||||
| device->tex_free(dscene->tri_vnormal); | device->tex_free(dscene->tri_vnormal); | ||||
| device->tex_free(dscene->tri_vindex); | device->tex_free(dscene->tri_vindex); | ||||
| device->tex_free(dscene->tri_verts); | device->tex_free(dscene->tri_verts); | ||||
| device->tex_free(dscene->curves); | device->tex_free(dscene->curves); | ||||
| device->tex_free(dscene->curve_keys); | device->tex_free(dscene->curve_keys); | ||||
| device->tex_free(dscene->attributes_map); | device->tex_free(dscene->attributes_map); | ||||
| device->tex_free(dscene->attributes_float); | device->tex_free(dscene->attributes_float); | ||||
| device->tex_free(dscene->attributes_float3); | device->tex_free(dscene->attributes_float3); | ||||
| device->tex_free(dscene->attributes_uchar4); | device->tex_free(dscene->attributes_uchar4); | ||||
| dscene->bvh_nodes.clear(); | dscene->bvh_nodes.clear(); | ||||
| dscene->object_node.clear(); | dscene->object_node.clear(); | ||||
| dscene->tri_woop.clear(); | |||||
| dscene->prim_type.clear(); | dscene->prim_type.clear(); | ||||
| dscene->prim_visibility.clear(); | dscene->prim_visibility.clear(); | ||||
| dscene->prim_index.clear(); | dscene->prim_index.clear(); | ||||
| dscene->prim_object.clear(); | dscene->prim_object.clear(); | ||||
| dscene->tri_shader.clear(); | dscene->tri_shader.clear(); | ||||
| dscene->tri_vnormal.clear(); | dscene->tri_vnormal.clear(); | ||||
| dscene->tri_vindex.clear(); | dscene->tri_vindex.clear(); | ||||
| dscene->tri_verts.clear(); | dscene->tri_verts.clear(); | ||||
| ▲ Show 20 Lines • Show All 53 Lines • Show Last 20 Lines | |||||