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:
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);