diff options
Diffstat (limited to 'src/shaders/common/core.c')
-rw-r--r-- | src/shaders/common/core.c | 30 |
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 |