proper CPU timing; ur type extensions
This commit is contained in:
@@ -51,8 +51,8 @@ void mYughLog(int category, int priority, int line, const char *file, const char
|
||||
snprintf(buffer, ERROR_BUFFER, "%s:%d: %s, %s: %s\n", file, line, logstr[priority], catstr[category], msgbuffer);
|
||||
|
||||
log_print(buffer);
|
||||
if (category == LOG_SCRIPT && priority >= 2)
|
||||
js_stacktrace();
|
||||
// if (category == LOG_SCRIPT && priority >= 2)
|
||||
// js_stacktrace();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
#include "yugine.h"
|
||||
#include <assert.h>
|
||||
#include "resources.h"
|
||||
#include <sokol/sokol_time.h>
|
||||
|
||||
#include <glob.h>
|
||||
|
||||
#include "render.h"
|
||||
|
||||
@@ -56,6 +59,14 @@ JSValue js_getpropidx(JSValue v, uint32_t i)
|
||||
return p;
|
||||
}
|
||||
|
||||
uint64_t js2uint64(JSValue v)
|
||||
{
|
||||
int64_t i;
|
||||
JS_ToInt64(js, &i, v);
|
||||
uint64_t n = i;
|
||||
return n;
|
||||
}
|
||||
|
||||
int js2int(JSValue v) {
|
||||
int32_t i;
|
||||
JS_ToInt32(js, &i, v);
|
||||
@@ -70,6 +81,24 @@ JSValue str2js(const char *c) {
|
||||
return JS_NewString(js, c);
|
||||
}
|
||||
|
||||
JSValue strarr2js(const char **c, int len)
|
||||
{
|
||||
JSValue arr = JS_NewArray(js);
|
||||
for (int i = 0; i < len; i++)
|
||||
JS_SetPropertyUint32(js, arr, i, JS_NewString(js, c[i]));
|
||||
|
||||
return arr;
|
||||
}
|
||||
|
||||
JSValue glob2js(char *pat)
|
||||
{
|
||||
glob_t mglob;
|
||||
glob(pat, GLOB_NOSORT, NULL, &mglob);
|
||||
JSValue arr = strarr2js(mglob.gl_pathv, mglob.gl_pathc);
|
||||
globfree(&mglob);
|
||||
return arr;
|
||||
}
|
||||
|
||||
double js2number(JSValue v) {
|
||||
double g;
|
||||
JS_ToFloat64(js, &g, v);
|
||||
@@ -1050,6 +1079,9 @@ JSValue duk_cmd(JSContext *js, JSValueConst this, int argc, JSValueConst *argv)
|
||||
return num2js(get_timescale());
|
||||
break;
|
||||
case 122:
|
||||
str = JS_ToCString(js, argv[1]);
|
||||
ret = glob2js(str);
|
||||
|
||||
break;
|
||||
|
||||
case 123:
|
||||
@@ -1070,6 +1102,23 @@ JSValue duk_cmd(JSContext *js, JSValueConst this, int argc, JSValueConst *argv)
|
||||
case 126:
|
||||
mainwin.height = js2int(argv[2]);
|
||||
break;
|
||||
|
||||
case 127:
|
||||
ret = JS_NewInt64(js, stm_now());
|
||||
break;
|
||||
|
||||
case 128:
|
||||
YughWarn("%g",stm_ms(9737310));
|
||||
ret = JS_NewFloat64(js, stm_ns(js2uint64(argv[1])));
|
||||
break;
|
||||
|
||||
case 129:
|
||||
ret = JS_NewFloat64(js, stm_us(js2uint64(argv[1])));
|
||||
break;
|
||||
|
||||
case 130:
|
||||
ret = JS_NewFloat64(js, stm_ms(js2uint64(argv[1])));
|
||||
break;
|
||||
}
|
||||
|
||||
if (str)
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
#include <unistd.h>
|
||||
#include "font.h"
|
||||
|
||||
#include <glob.h>
|
||||
|
||||
#include <fcntl.h>
|
||||
#include "cdb.h"
|
||||
|
||||
@@ -155,7 +157,7 @@ unsigned char *slurp_file(const char *filename, size_t *size)
|
||||
char *data = malloc(vlen);
|
||||
cdb_read(&game_cdb, data, vlen, vpos);
|
||||
if (size) *size = vlen;
|
||||
return strdup(data);
|
||||
return data;
|
||||
}
|
||||
|
||||
FILE *f;
|
||||
@@ -183,7 +185,7 @@ char *slurp_text(const char *filename, size_t *size)
|
||||
char *str = slurp_file(filename, &len);
|
||||
char *retstr = malloc(len+1);
|
||||
memcpy(retstr, str, len);
|
||||
retstr[len] = 0;
|
||||
retstr[len] = '\0';
|
||||
free(str);
|
||||
if (size) *size = len;
|
||||
return retstr;
|
||||
@@ -198,23 +200,26 @@ int slurp_write(const char *txt, const char *filename) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int glob_err(const char *epath, int errno)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef __EMSCRIPTEN__
|
||||
static struct cdb_make cdbm;
|
||||
|
||||
static const char *pack_ext[] = {".qoi", ".qoa", ".js", ".wav", ".mp3", ".png", ".sf2", ".midi", ".lvl", ".glsl"};
|
||||
static const char *pack_ext[] = {".qoi", ".qoa", ".js", ".wav", ".mp3", ".png", ".sf2", ".midi", ".lvl", ".glsl", ".ttf"};
|
||||
|
||||
static int ftw_pack(const char *path, const struct stat *sb, int flag)
|
||||
{
|
||||
if (flag != FTW_F) return 0;
|
||||
|
||||
int pack = 0;
|
||||
|
||||
char *ext = strrchr(path, '.');
|
||||
|
||||
if (!ext)
|
||||
return 0;
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
for (int i = 0; i < 11; i++) {
|
||||
if (!strcmp(ext, pack_ext[i])) {
|
||||
pack = 1;
|
||||
break;
|
||||
|
||||
@@ -169,17 +169,11 @@ struct wav *make_sound(const char *wav) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
YughWarn("%s opened with %d ch, %d samplerate, %d frames", ext, mwav.ch, mwav.samplerate, mwav.frames);
|
||||
|
||||
if (mwav.samplerate != SAMPLERATE) {
|
||||
YughWarn("Changing samplerate of %s from %d to %d.", wav, mwav.samplerate, SAMPLERATE);
|
||||
if (mwav.samplerate != SAMPLERATE)
|
||||
mwav = change_samplerate(mwav, SAMPLERATE);
|
||||
}
|
||||
|
||||
if (mwav.ch != CHANNELS) {
|
||||
YughWarn("Changing channels of %s from %d to %d.", wav, mwav.ch, CHANNELS);
|
||||
if (mwav.ch != CHANNELS)
|
||||
mwav = change_channels(mwav, CHANNELS);
|
||||
}
|
||||
|
||||
mwav.gain = 1.f;
|
||||
struct wav *newwav = malloc(sizeof(*newwav));
|
||||
@@ -187,8 +181,6 @@ struct wav *make_sound(const char *wav) {
|
||||
if (shlen(wavhash) == 0) sh_new_arena(wavhash);
|
||||
shput(wavhash, wav, newwav);
|
||||
|
||||
YughWarn("Channels %d, sr %d", newwav->ch,newwav->samplerate);
|
||||
|
||||
return newwav;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user