commit d98bf5ec2b9a1df8079b166e7a6840eff786ca2b
parent 4c65a6cd254520d086679c6fc9d98cda94434c4e
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Fri, 24 Jun 2016 11:56:55 +0200
Add a Star3D context into Solstice context.
Diffstat:
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
@@ -25,6 +25,7 @@ option(NO_TEST "Do not build tests" OFF)
################################################################################
find_package(RCMake 0.2.3 REQUIRED)
find_package(RSys 0.3 REQUIRED)
+find_package(Star3D 0.3 REQUIRED)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${RCMAKE_SOURCE_DIR})
include(rcmake)
@@ -32,6 +33,7 @@ include(rcmake_runtime)
include_directories(
${RSys_INCLUDE_DIR}
+ ${Star3D_INCLUDE_DIR}
)
rcmake_append_runtime_dirs(_runtime_dirs RSys)
@@ -62,7 +64,7 @@ rcmake_prepend_path(SSOL_FILES_INC_API ${SSOL_SOURCE_DIR})
rcmake_prepend_path(SSOL_FILES_DOC ${PROJECT_SOURCE_DIR}/../)
add_library(solstice-solver SHARED ${SSOL_FILES_SRC} ${SSOL_FILES_INC} ${SSOL_FILES_INC_API})
-target_link_libraries(solstice-solver RSys)
+target_link_libraries(solstice-solver RSys Star3D)
if(CMAKE_COMPILER_IS_GNUCC)
target_link_libraries(solstice-solver m)
@@ -83,7 +85,7 @@ if(NOT NO_TEST)
add_executable(${_name}
${SSOL_SOURCE_DIR}/test_ssol_utils.h
${SSOL_SOURCE_DIR}/${_name}.c)
- target_link_libraries(${_name} solstice-solver RSys)
+ target_link_libraries(${_name} solstice-solver RSys Star3D)
set(_libraries ${ARGN})
foreach(_lib ${_libraries})
target_link_libraries(${_name} ${_lib})
diff --git a/src/ssol_device.c b/src/ssol_device.c
@@ -29,6 +29,9 @@ device_release(ref_T* ref)
ASSERT(ref);
dev = CONTAINER_OF(ref, struct ssol_device, ref);
+ if (dev->s3d)
+ S3D(device_ref_put(dev->s3d));
+
MEM_RM(dev->allocator, dev);
}
@@ -62,6 +65,10 @@ ssol_device_create
dev->allocator = allocator;
dev->verbose = verbose;
+ res = s3d_device_create(logger, mem_allocator, verbose, &dev->s3d);
+ if (RES_OK != res)
+ goto error;
+
ref_init(&dev->ref);
exit:
diff --git a/src/ssol_device_c.h b/src/ssol_device_c.h
@@ -17,7 +17,7 @@
#define SSOL_DEVICE_C_H
#include <rsys/ref_count.h>
-#include <rsys/free_list.h>
+#include <star/s3d.h>
struct ssol_device {
struct logger* logger;
@@ -25,6 +25,8 @@ struct ssol_device {
const unsigned nthreads_hint;
int verbose;
+ struct s3d_device* s3d;
+
ref_T ref;
};