ui colors
This commit is contained in:
@@ -46,7 +46,7 @@ https://gitlab.com/nakst/essence/-/blob/master/shared/math.cpp
|
||||
*/
|
||||
|
||||
fn f64 f64_exp2(f64 x) {
|
||||
f64 a = f64_floor(x * 8);
|
||||
f64 a = f64_floor(x * 8);
|
||||
int64_t ai = (i64)a;
|
||||
|
||||
if (ai < -1024) {
|
||||
@@ -56,13 +56,13 @@ fn f64 f64_exp2(f64 x) {
|
||||
f64 b = x - a / 8;
|
||||
|
||||
f64 y = U64_TO_F64(0x3FF0000000000000) +
|
||||
b * (U64_TO_F64(0x3FE62E42FEFA3A00) +
|
||||
b * (U64_TO_F64(0x3FCEBFBDFF829140) +
|
||||
b * (U64_TO_F64(0x3FAC6B08D73C4A40) +
|
||||
b * (U64_TO_F64(0x3F83B2AB53873280) +
|
||||
b * (U64_TO_F64(0x3F55D88F363C6C00) +
|
||||
b * (U64_TO_F64(0x3F242C003E4A2000) +
|
||||
b * U64_TO_F64(0x3EF0B291F6C00000)))))));
|
||||
b * (U64_TO_F64(0x3FE62E42FEFA3A00) +
|
||||
b * (U64_TO_F64(0x3FCEBFBDFF829140) +
|
||||
b * (U64_TO_F64(0x3FAC6B08D73C4A40) +
|
||||
b * (U64_TO_F64(0x3F83B2AB53873280) +
|
||||
b * (U64_TO_F64(0x3F55D88F363C6C00) +
|
||||
b * (U64_TO_F64(0x3F242C003E4A2000) +
|
||||
b * U64_TO_F64(0x3EF0B291F6C00000)))))));
|
||||
|
||||
const f64 m[8] = {
|
||||
U64_TO_F64(0x3FF0000000000000),
|
||||
@@ -84,7 +84,7 @@ fn f64 f64_exp2(f64 x) {
|
||||
}
|
||||
|
||||
fn f32 f32_exp2(f32 x) {
|
||||
f32 a = f32_floor(x);
|
||||
f32 a = f32_floor(x);
|
||||
i32 ai = (i32)a;
|
||||
|
||||
if (ai < -128) {
|
||||
@@ -93,8 +93,7 @@ fn f32 f32_exp2(f32 x) {
|
||||
|
||||
f32 b = x - a;
|
||||
|
||||
f32 y = U32_TO_F32(0x3F7FFFFE) + b * (U32_TO_F32(0x3F31729A) + b * (U32_TO_F32(0x3E75E700)
|
||||
+ b * (U32_TO_F32(0x3D64D520) + b * (U32_TO_F32(0x3C128280) + b * U32_TO_F32(0x3AF89400)))));
|
||||
f32 y = U32_TO_F32(0x3F7FFFFE) + b * (U32_TO_F32(0x3F31729A) + b * (U32_TO_F32(0x3E75E700) + b * (U32_TO_F32(0x3D64D520) + b * (U32_TO_F32(0x3C128280) + b * U32_TO_F32(0x3AF89400)))));
|
||||
|
||||
convert_f32_u32_t c;
|
||||
c.f = y;
|
||||
@@ -104,10 +103,10 @@ fn f32 f32_exp2(f32 x) {
|
||||
|
||||
fn f64 f64_log2(f64 x) {
|
||||
convert_f64_u64_t c;
|
||||
c.f = x;
|
||||
c.f = x;
|
||||
int64_t e = ((c.i >> 52) & 2047) - 0x3FF;
|
||||
c.i = (c.i & ~((uint64_t) 0x7FF << 52)) + ((uint64_t) 0x3FF << 52);
|
||||
x = c.f;
|
||||
c.i = (c.i & ~((uint64_t)0x7FF << 52)) + ((uint64_t)0x3FF << 52);
|
||||
x = c.f;
|
||||
|
||||
f64 a;
|
||||
|
||||
@@ -136,10 +135,7 @@ fn f64 f64_log2(f64 x) {
|
||||
a = U64_TO_F64(0xBFEA8FF971810A5E);
|
||||
}
|
||||
|
||||
f64 y = U64_TO_F64(0xC00FF8445026AD97) + x * (U64_TO_F64(0x40287A7A02D9353F) + x * (U64_TO_F64(0xC03711C58D55CEE2)
|
||||
+ x * (U64_TO_F64(0x4040E8263C321A26) + x * (U64_TO_F64(0xC041EB22EA691BB3) + x * (U64_TO_F64(0x403B00FB376D1F10)
|
||||
+ x * (U64_TO_F64(0xC02C416ABE857241) + x * (U64_TO_F64(0x40138BA7FAA3523A) + x * (U64_TO_F64(0xBFF019731AF80316)
|
||||
+ x * U64_TO_F64(0x3FB7F1CD3852C200)))))))));
|
||||
f64 y = U64_TO_F64(0xC00FF8445026AD97) + x * (U64_TO_F64(0x40287A7A02D9353F) + x * (U64_TO_F64(0xC03711C58D55CEE2) + x * (U64_TO_F64(0x4040E8263C321A26) + x * (U64_TO_F64(0xC041EB22EA691BB3) + x * (U64_TO_F64(0x403B00FB376D1F10) + x * (U64_TO_F64(0xC02C416ABE857241) + x * (U64_TO_F64(0x40138BA7FAA3523A) + x * (U64_TO_F64(0xBFF019731AF80316) + x * U64_TO_F64(0x3FB7F1CD3852C200)))))))));
|
||||
|
||||
return y - a + e;
|
||||
}
|
||||
@@ -148,14 +144,12 @@ fn f32 f32_log2(f32 x) {
|
||||
// TODO f32_log2(0.9999971379999999f) gives 0.00000143051147460938 (should be negative!!).
|
||||
|
||||
convert_f32_u32_t c;
|
||||
c.f = x;
|
||||
c.f = x;
|
||||
i32 e = ((c.i >> 23) & 255) - 0x7F;
|
||||
c.i = (c.i & ~(0xFF << 23)) + (0x7F << 23);
|
||||
x = c.f;
|
||||
c.i = (c.i & ~(0xFF << 23)) + (0x7F << 23);
|
||||
x = c.f;
|
||||
|
||||
f32 y = U32_TO_F32(0xC05B5154) + x * (U32_TO_F32(0x410297C6) + x * (U32_TO_F32(0xC1205CEB)
|
||||
+ x * (U32_TO_F32(0x4114DF63) + x * (U32_TO_F32(0xC0C0DBBB) + x * (U32_TO_F32(0x402942C6)
|
||||
+ x * (U32_TO_F32(0xBF3FF98A) + x * (U32_TO_F32(0x3DFE1050) + x * U32_TO_F32(0xBC151480))))))));
|
||||
f32 y = U32_TO_F32(0xC05B5154) + x * (U32_TO_F32(0x410297C6) + x * (U32_TO_F32(0xC1205CEB) + x * (U32_TO_F32(0x4114DF63) + x * (U32_TO_F32(0xC0C0DBBB) + x * (U32_TO_F32(0x402942C6) + x * (U32_TO_F32(0xBF3FF98A) + x * (U32_TO_F32(0x3DFE1050) + x * U32_TO_F32(0xBC151480))))))));
|
||||
|
||||
return y + e;
|
||||
}
|
||||
|
||||
@@ -96,11 +96,11 @@ fn f32 f32_ease_in_cubic(f32 x) { return x * x * x; }
|
||||
fn f32 f32_ping_pong(f32 x) { return 1.0f - f32_abs(1.0f - f32_mod(x,2)); }
|
||||
|
||||
fn v4f32_t v4f32_lerp(v4f32_t a, v4f32_t b, f32 t) {
|
||||
return (v4f32_t){f32_lerp(a.x, a.y, t), f32_lerp(a.y, b.y, t), f32_lerp(a.z, b.z, t), f32_lerp(a.w, b.w, t)};
|
||||
return (v4f32_t){f32_lerp(a.x, b.x, t), f32_lerp(a.y, b.y, t), f32_lerp(a.z, b.z, t), f32_lerp(a.w, b.w, t)};
|
||||
}
|
||||
|
||||
fn v4f32_t v4f32_lerp_noa(v4f32_t a, v4f32_t b, f32 t) {
|
||||
return (v4f32_t){f32_lerp(a.x, a.y, t), f32_lerp(a.y, b.y, t), f32_lerp(a.z, b.z, t), a.w};
|
||||
return (v4f32_t){f32_lerp(a.x, b.x, t), f32_lerp(a.y, b.y, t), f32_lerp(a.z, b.z, t), a.w};
|
||||
}
|
||||
|
||||
fn f64 _Sine(f64 x) {
|
||||
@@ -538,3 +538,10 @@ fn f32 f32_ease_out_elastic(f32 x) {
|
||||
: f32_pow(2.f, -10.f * x) * f32_sin((x * 10.f - 0.75f) * c4) + 1.f;
|
||||
}
|
||||
|
||||
fn f32 f32_ease_out_cubic(f32 x) {
|
||||
return 1.f - f32_pow(1.f - x, 3.f);
|
||||
}
|
||||
|
||||
fn f32 f32_ease_out_n(f32 x, f32 n) {
|
||||
return 1.f - f32_pow(1.f - x, n);
|
||||
}
|
||||
@@ -203,11 +203,11 @@ union r3i64_t {
|
||||
#define F64_RAD2DEG (180.0 / F64_PI);
|
||||
#define F32_PI ((f32)F64_PI)
|
||||
|
||||
#define rgba_macro_const(r, g, b, a) { r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f }
|
||||
#define v4f32_const_rgba255(r, g, b, a) { (f32)(r) / 255.0f, (f32)(g) / 255.0f, (f32)(b) / 255.0f, (f32)(a) / 255.0f }
|
||||
#define v4f32_rgba255(r, g, b, a) (v4f32_t){ (f32)(r) / 255.0f, (f32)(g) / 255.0f, (f32)(b) / 255.0f, (f32)(a) / 255.0f }
|
||||
|
||||
gb v4f32_t primary_color_global = rgba_macro_const(245, 238, 230, 255);
|
||||
gb v4f32_t secondary_color_global = rgba_macro_const(255, 248, 227, 255);
|
||||
gb v4f32_t accent1_color_global = rgba_macro_const(243, 215, 202, 255);
|
||||
gb v4f32_t accent2_color_global = rgba_macro_const(230, 164, 180, 255);
|
||||
gb v4f32_t white_color_global = rgba_macro_const(255, 255, 255, 255);
|
||||
gb v4f32_t black_color_global = rgba_macro_const(0, 0, 0, 255);
|
||||
gb_read_only v4f32_t white_color = v4f32_const_rgba255(255, 255, 255, 255);
|
||||
gb_read_only v4f32_t black_color = v4f32_const_rgba255(0, 0, 0, 255);
|
||||
gb_read_only v4f32_t magenta_color = v4f32_const_rgba255(255, 0, 255, 255);
|
||||
gb_read_only v4f32_t red_color = v4f32_const_rgba255(255, 0, 0, 255);
|
||||
gb_read_only v4f32_t blue_color = v4f32_const_rgba255(0, 0, 255, 255);
|
||||
|
||||
@@ -165,7 +165,6 @@ int main(int argc, char **argv) {
|
||||
test_s8();
|
||||
test_hash_table();
|
||||
test_intern_table();
|
||||
debugf("%f %f", f64_pow(2, 10.4f), powf(2, 10.4f));
|
||||
|
||||
printf("all done!\n");
|
||||
}
|
||||
Reference in New Issue
Block a user