diff options
author | Vito Caputo <vcaputo@gnugeneration.com> | 2017-01-18 19:12:41 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-18 19:12:41 -0800 |
commit | 467137113c8b3d6bcb73ecff8c76f23793f25cb7 (patch) | |
tree | ecf3064d6587ec875d5c021d46d44855dc814212 /src/modules/ray/ray_color.h | |
parent | ee2073d4e411555aba878277131b56f7eb562c84 (diff) | |
parent | 404a356b2b22a134aea151145d1baabf253ee491 (diff) |
Merge build system cleanups
- Move source to src/ subdir
- Use $(top_srcdir)/src instead of ../../
Diffstat (limited to 'src/modules/ray/ray_color.h')
-rw-r--r-- | src/modules/ray/ray_color.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/modules/ray/ray_color.h b/src/modules/ray/ray_color.h new file mode 100644 index 0000000..9fe62c1 --- /dev/null +++ b/src/modules/ray/ray_color.h @@ -0,0 +1,29 @@ +#ifndef _RAY_COLOR_H +#define _RAY_COLOR_H + +#include <stdint.h> + +#include "ray_3f.h" + +typedef ray_3f_t ray_color_t; + +/* convert a vector into a packed, 32-bit rgb pixel value */ +static inline uint32_t ray_color_to_uint32_rgb(ray_color_t color) { + uint32_t pixel; + + /* doing this all per-pixel, ugh. */ + + if (color.x > 1.0f) color.x = 1.0f; + if (color.y > 1.0f) color.y = 1.0f; + if (color.z > 1.0f) color.z = 1.0f; + + pixel = (uint32_t)(color.x * 255.0f); + pixel <<= 8; + pixel |= (uint32_t)(color.y * 255.0f); + pixel <<= 8; + pixel |= (uint32_t)(color.z * 255.0f); + + return pixel; +} + +#endif |