diff options
author | Vito Caputo <vcaputo@gnugeneration.com> | 2017-01-18 17:14:52 -0800 |
---|---|---|
committer | Vito Caputo <vcaputo@gnugeneration.com> | 2017-01-18 17:31:44 -0800 |
commit | 524db0cf19648e3c7c78d3e73103b7a0bdcd6bfc (patch) | |
tree | 6fd682629904a210927797c92d956c208666b03a /src/modules/ray/ray_threads.h | |
parent | ee2073d4e411555aba878277131b56f7eb562c84 (diff) |
*: move source into src/ subdir
Restoring some organizational sanity since adopting autotools.
Diffstat (limited to 'src/modules/ray/ray_threads.h')
-rw-r--r-- | src/modules/ray/ray_threads.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/modules/ray/ray_threads.h b/src/modules/ray/ray_threads.h new file mode 100644 index 0000000..b4c601d --- /dev/null +++ b/src/modules/ray/ray_threads.h @@ -0,0 +1,30 @@ +#ifndef _RAY_THREADS_H +#define _RAY_THREADS_H + +#include <pthread.h> + +typedef struct ray_scene_t ray_scene_t; +typedef struct ray_camera_t ray_camera_t; +typedef struct fb_fragment_t fb_fragment_t; + +typedef struct ray_thread_t { + pthread_t thread; + pthread_mutex_t mutex; + pthread_cond_t cond; + ray_scene_t *scene; + ray_camera_t *camera; + fb_fragment_t *fragment; +} ray_thread_t; + +typedef struct ray_threads_t { + unsigned n_threads; + ray_thread_t threads[]; +} ray_threads_t; + + +ray_threads_t * ray_threads_create(unsigned num); +void ray_threads_destroy(ray_threads_t *threads); + +void ray_thread_fragment_submit(ray_thread_t *thread, ray_scene_t *scene, ray_camera_t *camera, fb_fragment_t *fragment); +void ray_thread_wait_idle(ray_thread_t *thread); +#endif |