star-3d

Surface structuring for efficient 3D geometric queries
git clone git://git.meso-star.fr/star-3d.git
Log | Files | Refs | README | LICENSE

commit c98d1050318978bc18cfd2e67fb7d98abe57b800
parent f5fc8331ac52720b2f8ee1921dbad58aceccb7b3
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Tue, 12 May 2015 11:57:08 +0200

Make the library compliant with the CL compiler

Diffstat:
Mcmake/CMakeLists.txt | 11++++++++++-
Msrc/s3d_buffer.h | 2+-
Msrc/s3d_device.c | 4++--
Msrc/s3d_instance.c | 2+-
Msrc/s3d_mesh.c | 4++--
Msrc/s3d_sampler.c | 2+-
Msrc/s3d_scene.c | 2+-
Msrc/s3d_shape.c | 2+-
Msrc/test_s3d_trace_ray.c | 2+-
9 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -47,9 +47,12 @@ find_package(RCMake 0.1 REQUIRED) find_package(RSys 0.1.1 REQUIRED) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${RCMAKE_SOURCE_DIR}) include(rcmake) +include(rcmake_runtime) include_directories(${Embree_INCLUDE_DIR} ${RSys_INCLUDE_DIR}) +rcmake_append_runtime_dirs(_runtime_dirs RSys Embree) + ################################################################################ # Configure and define targets ################################################################################ @@ -84,7 +87,12 @@ rcmake_prepend_path(S3D_FILES_INC_API ${S3D_SOURCE_DIR}) set_source_files_properties(${S3D_FILES_SRC} PROPERTIES LANGUAGE CXX) add_library(s3d SHARED ${S3D_FILES_SRC} ${S3D_FILES_INC} ${S3D_FILES_INC_API}) -target_link_libraries(s3d RSys Embree m) +target_link_libraries(s3d RSys Embree) + +if(CMAKE_COMPILER_IS_GNUCXX) + target_link_libraries(s3d m) +endif() + set_target_properties(s3d PROPERTIES DEFINE_SYMBOL S3D_SHARED_BUILD LINKER_LANGUAGE CXX @@ -114,6 +122,7 @@ if(NOT NO_TEST) target_link_libraries(${_name} ${_lib}) endforeach(_lib) add_test(${_name} ${_name}) + rcmake_set_test_runtime_dirs(${_name} _runtime_dirs) endfunction(new_test) new_test(test_s3d_device) diff --git a/src/s3d_buffer.h b/src/s3d_buffer.h @@ -68,7 +68,7 @@ BUFFER_FUNC__(release__)(ref_T* ref) ASSERT(ref); buffer = CONTAINER_OF(ref, struct BUFFER_NAME, ref); BUFFER_DARRAY_FUNC__(release)(&buffer->data); - MEM_FREE(buffer->allocator, buffer); + MEM_RM(buffer->allocator, buffer); } /******************************************************************************* diff --git a/src/s3d_device.c b/src/s3d_device.c @@ -39,7 +39,7 @@ /* Only one instance of embree can be launched. This global variable register * whether an Embree instance is running or not */ -static int g_EmbreeIsInitialized = 0; +static ATOMIC g_EmbreeIsInitialized = 0; /******************************************************************************* * Helper functions @@ -50,7 +50,7 @@ device_release(ref_T* ref) struct s3d_device* dev; ASSERT(ref); dev = CONTAINER_OF(ref, struct s3d_device, ref); - MEM_FREE(dev->allocator, dev); + MEM_RM(dev->allocator, dev); rtcExit(); ATOMIC_SET(&g_EmbreeIsInitialized, 0); } diff --git a/src/s3d_instance.c b/src/s3d_instance.c @@ -50,7 +50,7 @@ instance_release(ref_T* ref) inst = CONTAINER_OF(ref, struct instance, ref); scn = inst->scene; ASSERT(inst->geom.irtc == RTC_INVALID_GEOMETRY_ID); - MEM_FREE(scn->dev->allocator, inst); + MEM_RM(scn->dev->allocator, inst); S3D(scene_ref_put(scn)); } diff --git a/src/s3d_mesh.c b/src/s3d_mesh.c @@ -112,7 +112,7 @@ mesh_setup_positions nverts_prev = (unsigned)mesh_get_nverts(mesh); if(nverts == nverts_prev) { - mesh->update_mask |= (VERTEX_BUFFER & !mesh->resize_mask); + mesh->update_mask |= (VERTEX_BUFFER & ~mesh->resize_mask); } else { mesh->resize_mask |= VERTEX_BUFFER; mesh->update_mask &= !VERTEX_BUFFER; @@ -216,7 +216,7 @@ mesh_release(ref_T* ref) mesh_clear(mesh); dev = mesh->dev; ASSERT(mesh->geom.irtc == RTC_INVALID_GEOMETRY_ID); - MEM_FREE(dev->allocator, mesh); + MEM_RM(dev->allocator, mesh); S3D(device_ref_put(dev)); } diff --git a/src/s3d_sampler.c b/src/s3d_sampler.c @@ -390,7 +390,7 @@ sampler_release(ref_T* ref) if(sampler->cached_instance) instance_ref_put(sampler->cached_instance); - MEM_FREE(shape->dev->allocator, sampler); + MEM_RM(shape->dev->allocator, sampler); S3D(shape_ref_put(shape)); } diff --git a/src/s3d_scene.c b/src/s3d_scene.c @@ -410,7 +410,7 @@ scene_release(ref_T* ref) htable_inst_release(&scn->cached_instances); darray_mesh_release(&scn->meshes); darray_inst_release(&scn->instances); - MEM_FREE(dev->allocator, scn); + MEM_RM(dev->allocator, scn); S3D(device_ref_put(dev)); } diff --git a/src/s3d_shape.c b/src/s3d_shape.c @@ -72,7 +72,7 @@ shape_release(ref_T* ref) /* The shape should not be attached */ ASSERT(is_list_empty(&shape->scene_attachment)); shape_release_data(shape); - MEM_FREE(dev->allocator, shape); + MEM_RM(dev->allocator, shape); S3D(device_ref_put(dev)); } diff --git a/src/test_s3d_trace_ray.c b/src/test_s3d_trace_ray.c @@ -276,7 +276,7 @@ main(int argc, char** argv) } if(img) - MEM_FREE(&allocator, img); + MEM_RM(&allocator, img); CHECK(s3d_device_ref_put(dev), RES_OK); CHECK(s3d_shape_ref_put(shape), RES_OK);