solstice-solver

Solver library of the solstice app
git clone git://git.meso-star.com/solstice-solver.git
Log | Files | Refs | README | LICENSE

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:
Mcmake/CMakeLists.txt | 6++++--
Msrc/ssol_device.c | 7+++++++
Msrc/ssol_device_c.h | 4+++-
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; };