summaryrefslogtreecommitdiff
path: root/src/shaders/common/core.c
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-07-12 13:31:28 +0800
committerchai <chaifix@163.com>2020-07-12 13:31:28 +0800
commita0439c8d387579a1727ad00c2e105e7602aedbb6 (patch)
tree8ea09b13e179a7d8cd9ac6518410cd10035f48f4 /src/shaders/common/core.c
parentec7aa42781a9108901fbde7210d8285bbbeaf5fc (diff)
+mathlib
Diffstat (limited to 'src/shaders/common/core.c')
-rw-r--r--src/shaders/common/core.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/shaders/common/core.c b/src/shaders/common/core.c
new file mode 100644
index 0000000..703458c
--- /dev/null
+++ b/src/shaders/common/core.c
@@ -0,0 +1,30 @@
+#include "core.h"
+
+Vec4 _proj_params;
+Vec2 _time;
+Vec4 _screen_params;
+
+Vec3 unpacknormal(Color32 c32) {
+ Vec3 normal = {
+ c32.r * 2 - 1,
+ c32.g * 2 - 1,
+ c32.b * 2 - 1,
+ };
+ return normal;
+}
+
+Mat4 mat4(Vec4* c1, Vec4* c2, Vec4* c3, Vec4* c4);
+
+Vec2 texsize(Texture* texture) {
+ Vec2 size = {texture->width, texture->height};
+ return size;
+}
+
+float linear01depth(float depth) {
+ float n = _proj_params.x, f = _proj_params.y;
+ return n / ((n-f)*depth + f);
+}
+
+float lineareyedepth(float depth) {
+ return _proj_params.y * linear01depth(depth);
+} \ No newline at end of file