summaryrefslogtreecommitdiff
path: root/prbm.h
diff options
context:
space:
mode:
authorpryazha <pryadeiniv@mail.ru>2025-10-12 15:24:30 +0500
committerpryazha <pryadeiniv@mail.ru>2025-10-12 15:24:30 +0500
commit223b1056273f5d48d1c0bbfee75be7b82374d4eb (patch)
tree2b2003aad9c26af7006c5a5c7e2baf1a63ad89e7 /prbm.h
parent7e73843ac5873833c707687cd0ada0a3034e600c (diff)
change identation, maybe will change back, add own gl functions loading, and glx example
Diffstat (limited to 'prbm.h')
-rw-r--r--prbm.h181
1 files changed, 91 insertions, 90 deletions
diff --git a/prbm.h b/prbm.h
index f3932dd..a5432de 100644
--- a/prbm.h
+++ b/prbm.h
@@ -3,110 +3,111 @@
#include "types.h"
-struct v2 {
- f32 x;
- f32 y;
-};
+#define v2_zero (v2){ 0.0f, 0.0f}
+#define v2_one (v2){ 1.0f, 1.0f}
+#define v2_right (v2){ 1.0f, 0.0f}
+#define v2_up (v2){ 0.0f, 1.0f}
+#define v2_left (v2){-1.0f, 0.0f}
+#define v2_down (v2){ 0.0f, -1.0f}
-struct v3 {
- f32 x;
- f32 y;
- f32 z;
-};
+#define v3_zero (v3){ 0.0f, 0.0f, 0.0f}
+#define v3_one (v3){ 1.0f, 1.0f, 1.0f}
+#define v3_right (v3){ 1.0f, 0.0f, 0.0f}
+#define v3_up (v3){ 0.0f, 1.0f, 0.0f}
+#define v3_left (v3){-1.0f, 0.0f, 0.0f}
+#define v3_down (v3){ 0.0f, -1.0f, 0.0f}
+#define v3_forward (v3){ 0.0f, 0.0f, 1.0f}
+#define v3_backward (v3){ 0.0f, 0.0f, -1.0f}
-struct v4 {
- f32 x;
- f32 y;
- f32 z;
- f32 w;
-};
+#define v4_zero (v4){0.0f, 0.0f, 0.0f, 0.0f}
+#define v4_one (v4){1.0f, 1.0f, 1.0f, 1.0f}
-// column-major
-struct mat {
- struct v4 c0;
- struct v4 c1;
- struct v4 c2;
- struct v4 c3;
-};
+#define mat_identity (mat){ \
+ {1.0f, 0.0f, 0.0f, 0.0f}, \
+ {0.0f, 1.0f, 0.0f, 0.0f}, \
+ {0.0f, 0.0f, 1.0f, 0.0f}, \
+ {0.0f, 0.0f, 0.0f, 1.0f}}
-struct rect {
- struct v2 start;
- struct v2 end;
-};
+#define f32pi 3.14159265359f
-#define v2_zero (struct v2){ 0.0f, 0.0f}
-#define v2_one (struct v2){ 1.0f, 1.0f}
-#define v2_right (struct v2){ 1.0f, 0.0f}
-#define v2_up (struct v2){ 0.0f, 1.0f}
-#define v2_left (struct v2){-1.0f, 0.0f}
-#define v2_down (struct v2){ 0.0f, -1.0f}
+#define deg2rad(angle) (f32pi/180.0f*(angle))
-#define v3_zero (struct v3){ 0.0f, 0.0f, 0.0f}
-#define v3_one (struct v3){ 1.0f, 1.0f, 1.0f}
-#define v3_right (struct v3){ 1.0f, 0.0f, 0.0f}
-#define v3_up (struct v3){ 0.0f, 1.0f, 0.0f}
-#define v3_left (struct v3){-1.0f, 0.0f, 0.0f}
-#define v3_down (struct v3){ 0.0f, -1.0f, 0.0f}
-#define v3_forward (struct v3){ 0.0f, 0.0f, 1.0f}
-#define v3_backward (struct v3){ 0.0f, 0.0f, -1.0f}
+typedef struct {
+ f32 x;
+ f32 y;
+} v2;
-#define v4_zero (struct v4){0.0f, 0.0f, 0.0f, 0.0f}
-#define v4_one (struct v4){1.0f, 1.0f, 1.0f, 1.0f}
+typedef struct {
+ f32 x;
+ f32 y;
+ f32 z;
+} v3;
-#define mat_identity (struct mat){ \
- {1.0f, 0.0f, 0.0f, 0.0f}, \
- {0.0f, 1.0f, 0.0f, 0.0f}, \
- {0.0f, 0.0f, 1.0f, 0.0f}, \
- {0.0f, 0.0f, 0.0f, 1.0f}}
+typedef struct {
+ f32 x;
+ f32 y;
+ f32 z;
+ f32 w;
+} v4;
-#define f32pi 3.14159265359f
+// column-major
+typedef struct {
+ v4 c0;
+ v4 c1;
+ v4 c2;
+ v4 c3;
+} mat;
-#define deg2rad(angle) (f32pi/180.0f*(angle))
+typedef struct {
+ v2 start;
+ v2 end;
+} rect;
-struct v2 fillv2(f32 a);
-struct v2 invv2(struct v2 a);
-struct v2 addv2(struct v2 a, struct v2 b);
-struct v2 subv2(struct v2 a, struct v2 b);
-struct v2 scalev2(struct v2 a, f32 s);
-struct v2 scalevv2(struct v2 a, struct v2 s);
-f32 dotv2(struct v2 a, struct v2 b);
-f32 len2v2(struct v2 a);
-f32 lenv2(struct v2 a);
-struct v2 normv2(struct v2 a);
+v2 fillv2(f32 a);
+v2 invv2(v2 a);
+v2 addv2(v2 a, v2 b);
+v2 subv2(v2 a, v2 b);
+v2 scalev2(v2 a, f32 s);
+v2 scalevv2(v2 a, v2 s);
+f32 dotv2(v2 a, v2 b);
+f32 len2v2(v2 a);
+f32 lenv2(v2 a);
+v2 normv2(v2 a);
-struct v3 fillv3(f32 a);
-struct v3 invv3(struct v3 a);
-struct v3 addv3(struct v3 a, struct v3 b);
-struct v3 subv3(struct v3 a, struct v3 b);
-struct v3 scalev3(struct v3 a, f32 s);
-struct v3 scalevv3(struct v3 a, struct v3 s);
-f32 dotv3(struct v3 a, struct v3 b);
-struct v3 crossv3(struct v3 l, struct v3 r);
-f32 len2v3(struct v3 a);
-f32 lenv3(struct v3 a);
-struct v3 normv3(struct v3 a);
+v3 fillv3(f32 a);
+v3 invv3(v3 a);
+v3 addv3(v3 a, v3 b);
+v3 subv3(v3 a, v3 b);
+v3 scalev3(v3 a, f32 s);
+v3 scalevv3(v3 a, v3 s);
+f32 dotv3(v3 a, v3 b);
+v3 crossv3(v3 l, v3 r);
+f32 len2v3(v3 a);
+f32 lenv3(v3 a);
+v3 normv3(v3 a);
+v3 maxv3(v3 a, v3 b);
-struct v4 fillv4(f32 a);
-struct v4 invv4(struct v4 a);
-struct v4 addv4(struct v4 a, struct v4 b);
-struct v4 subv4(struct v4 a, struct v4 b);
-struct v4 scalev4(struct v4 a, f32 s);
-struct v4 scalevv4(struct v4 a, struct v4 s);
-f32 dotv4(struct v4 a, struct v4 b);
-f32 len2v4(struct v4 a);
-f32 lenv4(struct v4 a);
-struct v4 normv4(struct v4 a);
+v4 fillv4(f32 a);
+v4 invv4(v4 a);
+v4 addv4(v4 a, v4 b);
+v4 subv4(v4 a, v4 b);
+v4 scalev4(v4 a, f32 s);
+v4 scalevv4(v4 a, v4 s);
+f32 dotv4(v4 a, v4 b);
+f32 len2v4(v4 a);
+f32 lenv4(v4 a);
+v4 normv4(v4 a);
-struct mat transpmat(struct mat m);
-struct mat mulmat(struct mat left, struct mat right);
-struct mat make_translate(struct v3 v);
-struct mat make_scale(struct v3 v);
-struct mat make_rotate(struct v3 x, struct v3 y, struct v3 z);
-struct mat translate_mat(struct mat m, struct v3 v);
-struct mat scale_mat(struct mat m, struct v3 v);
-struct mat rotate_mat(struct mat m, struct v3 angles);
-struct v4 mulmatv4(struct mat m, struct v4 v);
+mat transpose_mat(mat m);
+mat mulmat(mat left, mat right);
+mat make_translate(v3 v);
+mat make_scale(v3 v);
+mat make_rotate(v3 x, v3 y, v3 z);
+mat translate_mat(mat m, v3 v);
+mat scale_mat(mat m, v3 v);
+mat rotate_mat(mat m, v3 angles);
+v4 mulmatv4(mat m, v4 v);
-i32 in_rect(struct v2 pos, struct rect rect);
+i32 in_rect(v2 pos, rect r);
#endif