summaryrefslogtreecommitdiff
path: root/src/libs/ray/ray_gamma.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/ray/ray_gamma.c')
-rw-r--r--src/libs/ray/ray_gamma.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libs/ray/ray_gamma.c b/src/libs/ray/ray_gamma.c
new file mode 100644
index 0000000..21a9afc
--- /dev/null
+++ b/src/libs/ray/ray_gamma.c
@@ -0,0 +1,15 @@
+#include <math.h>
+
+#include "ray_gamma.h"
+
+void ray_gamma_prepare(float gamma, ray_gamma_t *res_gamma)
+{
+ if (res_gamma->gamma == gamma)
+ return;
+
+ /* This is from graphics gems 2 "REAL PIXELS" */
+ for (unsigned i = 0; i < 1024; i++)
+ res_gamma->table[i] = 256.0f * powf((((float)i + .5f) / 1024.0f), 1.0f/gamma);
+
+ res_gamma->gamma = gamma;
+}
© All Rights Reserved