1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "shader.h"
#include "vert.h"
#include "device.h"
void ssrS_bcpcolor(Vec3* bc, Color A, Color B, Color C, Color* out) {
ssr_assert(bc && out);
*out = ssr_color(
bc->A * COLOR_R(A) + bc->B * COLOR_R(B) + bc->C * COLOR_R(C),
bc->A * COLOR_G(A) + bc->B * COLOR_G(B) + bc->C * COLOR_G(C),
bc->A * COLOR_B(A) + bc->B * COLOR_B(B) + bc->C * COLOR_B(C),
bc->A * COLOR_A(A) + bc->B * COLOR_A(B) + bc->C * COLOR_A(C)
);
}
void ssrS_bcpvec2(Vec3* bc, Vec2* A, Vec2* B, Vec2* C, Vec2* out) {
ssr_assert(bc && A && B && C && out);
out->x = bc->A * A->x + bc->B * B->x + bc->C * C->x;
out->y = bc->A * A->y + bc->B * B->y + bc->C * C->y;
}
void ssrS_bcpvec3(Vec3* bc, Vec3* A, Vec3* B, Vec3* C, Vec3* out) {
ssr_assert(bc && A && B && C && out);
out->x = bc->A * A->x + bc->B * B->x + bc->C * C->x;
out->y = bc->A * A->y + bc->B * B->y + bc->C * C->y;
out->z = bc->A * A->z + bc->B * B->z + bc->C * C->z;
}
void ssrS_bcpvec4(Vec3* bc, Vec4* A, Vec4* B, Vec4* C, Vec4* out) {
ssr_assert(bc && A && B && C && out);
out->x = bc->A * A->x + bc->B * B->x + bc->C * C->x;
out->y = bc->A * A->y + bc->B * B->y + bc->C * C->y;
out->z = bc->A * A->z + bc->B * B->z + bc->C * C->z;
out->w = bc->A * A->w + bc->B * B->w + bc->C * C->w;
}
|