Fix Object.merge; add many color palettes, normalize color fns
This commit is contained in:
@@ -559,8 +559,8 @@ void draw_grid(float width, float span, struct rgba color)
|
||||
|
||||
sg_apply_pipeline(grid_pipe);
|
||||
sg_apply_bindings(&grid_bind);
|
||||
|
||||
float col[4] = { color.r/255.0 ,color.g/255.0 ,color.b/255.0 ,color.a/255.0 };
|
||||
float col[4];
|
||||
rgba2floats(col,color);
|
||||
|
||||
fs_params_t pt;
|
||||
pt.thickness = (float)width;
|
||||
|
||||
@@ -161,12 +161,12 @@ struct rgba js2color(JSValue v) {
|
||||
JSValue c[4];
|
||||
for (int i = 0; i < 4; i++)
|
||||
c[i] = js_arridx(v,i);
|
||||
unsigned char a = JS_IsUndefined(c[3]) ? 255 : js2int(c[3]);
|
||||
float a = JS_IsUndefined(c[3]) ? 1.0 : js2number(c[3]);
|
||||
struct rgba color = {
|
||||
.r = js2int(c[0]),
|
||||
.g = js2int(c[1]),
|
||||
.b = js2int(c[2]),
|
||||
.a = a,
|
||||
.r = js2number(c[0])*RGBA_MAX,
|
||||
.g = js2number(c[1])*RGBA_MAX,
|
||||
.b = js2number(c[2])*RGBA_MAX,
|
||||
.a = a*RGBA_MAX,
|
||||
};
|
||||
|
||||
return color;
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
#include "sokol/sokol_gfx.h"
|
||||
#include "HandmadeMath.h"
|
||||
|
||||
#define RGBA_MAX 255
|
||||
|
||||
struct mCamera;
|
||||
struct window;
|
||||
|
||||
@@ -126,10 +128,10 @@ static struct boundingbox cwh2bb(HMM_Vec2 c, HMM_Vec2 wh) {
|
||||
|
||||
static float *rgba2floats(float *r, struct rgba c)
|
||||
{
|
||||
r[0] = c.r / 255.0;
|
||||
r[1] = c.g / 255.0;
|
||||
r[2] = c.b / 255.0;
|
||||
r[3] = c.a / 255.0;
|
||||
r[0] = (float)c.r / RGBA_MAX;
|
||||
r[1] = (float)c.g / RGBA_MAX;
|
||||
r[2] = (float)c.b / RGBA_MAX;
|
||||
r[3] = (float)c.a / RGBA_MAX;
|
||||
return r;
|
||||
}
|
||||
|
||||
|
||||
@@ -202,17 +202,12 @@ int fexists(char *path)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *slurp_file(const char *filename, size_t *size)
|
||||
void *os_slurp(const char *file, size_t *size)
|
||||
{
|
||||
if (cdb_find(&game_cdb, filename, strlen(filename)))
|
||||
return cdb_slurp(&game_cdb, filename, size);
|
||||
else if (cdb_find(&corecdb, filename, strlen(filename)))
|
||||
return cdb_slurp(&corecdb, filename, size);
|
||||
|
||||
FILE *f;
|
||||
|
||||
jump:
|
||||
f = fopen(filename, "rb");
|
||||
f = fopen(file, "rb");
|
||||
|
||||
if (!f) return NULL;
|
||||
|
||||
@@ -228,6 +223,18 @@ void *slurp_file(const char *filename, size_t *size)
|
||||
return slurp;
|
||||
}
|
||||
|
||||
void *slurp_file(const char *filename, size_t *size)
|
||||
{
|
||||
if (!access(filename, R_OK))
|
||||
return os_slurp(filename, size);
|
||||
else if (cdb_find(&game_cdb, filename, strlen(filename)))
|
||||
return cdb_slurp(&game_cdb, filename, size);
|
||||
else if (cdb_find(&corecdb, filename, strlen(filename)))
|
||||
return cdb_slurp(&corecdb, filename, size);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *slurp_text(const char *filename, size_t *size)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
@@ -98,7 +98,7 @@ void script_evalf(const char *format, ...)
|
||||
}
|
||||
|
||||
uint8_t *compile_script(const char *file, size_t *len) {
|
||||
const char *script = slurp_text(file, len);
|
||||
char *script = slurp_text(file, len);
|
||||
JSValue obj = JS_Eval(js, script, *len, file, JS_EVAL_FLAG_COMPILE_ONLY | JS_EVAL_TYPE_GLOBAL | JS_EVAL_FLAGS);
|
||||
free(script);
|
||||
size_t out_len;
|
||||
|
||||
Reference in New Issue
Block a user