summaryrefslogtreecommitdiff
path: root/src/light
diff options
context:
space:
mode:
Diffstat (limited to 'src/light')
-rw-r--r--src/light/light.c20
-rw-r--r--src/light/light.h33
2 files changed, 53 insertions, 0 deletions
diff --git a/src/light/light.c b/src/light/light.c
new file mode 100644
index 0000000..839d747
--- /dev/null
+++ b/src/light/light.c
@@ -0,0 +1,20 @@
+#include "light.h"
+
+void honey_point_light_new(honey_point_light* light,
+ float x, float y, float z,
+ float r, float g, float b,
+ float constant,
+ float linear,
+ float quadratic) {
+ light->position[0] = x;
+ light->position[1] = y;
+ light->position[2] = z;
+
+ light->color[0] = r;
+ light->color[1] = g;
+ light->color[2] = b;
+
+ light->constant = constant;
+ light->linear = linear;
+ light->quadratic = quadratic;
+}
diff --git a/src/light/light.h b/src/light/light.h
new file mode 100644
index 0000000..dfb6979
--- /dev/null
+++ b/src/light/light.h
@@ -0,0 +1,33 @@
+#ifndef HONEY_LIGHT_H
+#define HONEY_LIGHT_H
+
+#include "../common.h"
+
+#define HONEY_MAX_LIGHT_NAME_LENGTH 64
+
+typedef struct {
+ vec3 position;
+ vec3 color;
+
+ float constant;
+ float linear;
+ float quadratic;
+} honey_point_light;
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+typedef struct {
+ vec3 direction;
+ vec3 color;
+} honey_directional_light;
+
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+void honey_point_light_new(honey_point_light* light,
+ float x, float y, float z,
+ float r, float g, float b,
+ float constant,
+ float linear,
+ float quadratic);
+
+#endif