fix polygon rendering bug
This commit is contained in:
parent
ed7d65523a
commit
39cbd92bfb
|
@ -96,6 +96,30 @@ Resources.replstrs = function replstrs(path) {
|
||||||
return script;
|
return script;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Resources.is_sound = function(path) {
|
||||||
|
var ext = path.ext();
|
||||||
|
return Resources.sounds.any(x => x === ext);
|
||||||
|
}
|
||||||
|
|
||||||
|
Resources.is_image = function(path) {
|
||||||
|
var ext = path.ext();
|
||||||
|
return Resources.images.any(x => x === ext);
|
||||||
|
}
|
||||||
|
|
||||||
|
Resources.is_animation = function(path)
|
||||||
|
{
|
||||||
|
if (path.ext() === 'gif' && Resources.gif.frames(path) > 1) return true;
|
||||||
|
if (path.ext() === 'ase') return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Resources.is_path = function(str)
|
||||||
|
{
|
||||||
|
return !/[\\\/:*?"<>|]/.test(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
globalThis.json = {};
|
globalThis.json = {};
|
||||||
json.encode = function (value, replacer, space = 1) {
|
json.encode = function (value, replacer, space = 1) {
|
||||||
return JSON.stringify(value, replacer, space);
|
return JSON.stringify(value, replacer, space);
|
||||||
|
@ -127,11 +151,13 @@ Resources.images = ["png", "gif", "jpg", "jpeg"];
|
||||||
Resources.sounds = ["wav", "flac", "mp3", "qoa"];
|
Resources.sounds = ["wav", "flac", "mp3", "qoa"];
|
||||||
Resources.is_image = function (path) {
|
Resources.is_image = function (path) {
|
||||||
var ext = path.ext();
|
var ext = path.ext();
|
||||||
return Resources.images.any((x) => x === ext);
|
return Resources.images.some(x => x === ext);
|
||||||
};
|
};
|
||||||
|
|
||||||
function find_ext(file, ext) {
|
function find_ext(file, ext) {
|
||||||
if (io.exists(file)) return file;
|
if (!file) return;
|
||||||
|
var file_ext = file.ext();
|
||||||
|
if (ext.some(x => x === file_ext)) return file;
|
||||||
for (var e of ext) {
|
for (var e of ext) {
|
||||||
var nf = `${file}.${e}`;
|
var nf = `${file}.${e}`;
|
||||||
if (io.exists(nf)) return nf;
|
if (io.exists(nf)) return nf;
|
||||||
|
|
|
@ -197,9 +197,8 @@ game.tex_hotreload = function()
|
||||||
}
|
}
|
||||||
|
|
||||||
game.texture = function (path) {
|
game.texture = function (path) {
|
||||||
if (!io.exists(path))
|
path = Resources.find_image(path);
|
||||||
path = Resources.find_image(path);
|
|
||||||
|
|
||||||
if (!io.exists(path)) {
|
if (!io.exists(path)) {
|
||||||
console.warn(`Missing texture: ${path}`);
|
console.warn(`Missing texture: ${path}`);
|
||||||
game.texture.cache[path] = game.texture("icons/no_tex.gif");
|
game.texture.cache[path] = game.texture("icons/no_tex.gif");
|
||||||
|
|
|
@ -673,7 +673,7 @@ function flush_poly()
|
||||||
render.use_shader(polyssboshader);
|
render.use_shader(polyssboshader);
|
||||||
render.use_mat({});
|
render.use_mat({});
|
||||||
render.make_particle_ssbo(poly_cache.slice(0,poly_idx), poly_ssbo);
|
render.make_particle_ssbo(poly_cache.slice(0,poly_idx), poly_ssbo);
|
||||||
render.draw(shape.centered_quad, poly_ssbo, poly_cache.length);
|
render.draw(shape.centered_quad, poly_ssbo, poly_idx);
|
||||||
poly_idx = 0;
|
poly_idx = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ audio.dsp = dspsound;
|
||||||
|
|
||||||
audio.cry = function(file)
|
audio.cry = function(file)
|
||||||
{
|
{
|
||||||
if (!io.exists(file)) file = Resources.find_sound(file);
|
file = Resources.find_sound(file);
|
||||||
var player = audio.play(file);
|
var player = audio.play(file);
|
||||||
if (!player) return;
|
if (!player) return;
|
||||||
|
|
||||||
|
@ -46,20 +46,29 @@ var killer = Register.appupdate.register(function() {
|
||||||
|
|
||||||
var song;
|
var song;
|
||||||
|
|
||||||
audio.music = function(file, fade = 0) {
|
// Play 'file' for new song, cross fade for seconds
|
||||||
|
audio.music = function(file, fade = 0.5) {
|
||||||
|
file = Resources.find_sound(file);
|
||||||
if (!fade) {
|
if (!fade) {
|
||||||
song = audio.play(file);
|
song = audio.play(file);
|
||||||
song.loop = true;
|
song.loop = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!song) {
|
||||||
|
song = audio.play(file);
|
||||||
|
song.volume = 1;
|
||||||
|
// tween(song,'volume', 1, fade);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var temp = audio.play(file);
|
var temp = audio.play(file);
|
||||||
if (!temp) return;
|
if (!temp) return;
|
||||||
|
|
||||||
temp.volume = 0;
|
temp.volume = 1;
|
||||||
var temp2 = song;
|
var temp2 = song;
|
||||||
tween(temp, 'volume', 1, fade);
|
// tween(temp, 'volume', 1, fade);
|
||||||
tween(temp2, 'volume', 0, fade);
|
// tween(temp2, 'volume', 0, fade);
|
||||||
song = temp;
|
song = temp;
|
||||||
song.loop = true;
|
song.loop = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,24 +66,6 @@ os.openurl = function(url) {
|
||||||
var projectfile = "project.prosperon";
|
var projectfile = "project.prosperon";
|
||||||
io.dumpfolder = '.prosperon';
|
io.dumpfolder = '.prosperon';
|
||||||
|
|
||||||
Resources.is_sound = function(path) {
|
|
||||||
var ext = path.ext();
|
|
||||||
return Resources.sounds.any(x => x === ext);
|
|
||||||
}
|
|
||||||
|
|
||||||
Resources.is_animation = function(path)
|
|
||||||
{
|
|
||||||
if (path.ext() === 'gif' && Resources.gif.frames(path) > 1) return true;
|
|
||||||
if (path.ext() === 'ase') return true;
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Resources.is_path = function(str)
|
|
||||||
{
|
|
||||||
return !/[\\\/:*?"<>|]/.test(str);
|
|
||||||
}
|
|
||||||
|
|
||||||
Resources.texture = {};
|
Resources.texture = {};
|
||||||
Resources.texture.dimensions = function(path) { texture.dimensions(path); }
|
Resources.texture.dimensions = function(path) { texture.dimensions(path); }
|
||||||
|
|
||||||
|
|
|
@ -101,9 +101,18 @@ JSC_CCALL(imgui_sokol_gfx,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
JSC_SCALL(imgui_slider,
|
||||||
|
float val = js2number(argv[1]);
|
||||||
|
float low = JS_IsUndefined(argv[2]) ? 0.0 : js2number(argv[2]);
|
||||||
|
float high = JS_IsUndefined(argv[3]) ? 1.0 : js2number(argv[3]);
|
||||||
|
ImGui::SliderFloat(str, &val, low, high, "%.3f");
|
||||||
|
ret = number2js(val);
|
||||||
|
)
|
||||||
|
|
||||||
static const JSCFunctionListEntry js_imgui_funcs[] = {
|
static const JSCFunctionListEntry js_imgui_funcs[] = {
|
||||||
MIST_FUNC_DEF(imgui, window, 2),
|
MIST_FUNC_DEF(imgui, window, 2),
|
||||||
MIST_FUNC_DEF(imgui, menu, 2),
|
MIST_FUNC_DEF(imgui, menu, 2),
|
||||||
|
MIST_FUNC_DEF(imgui, slider, 4),
|
||||||
MIST_FUNC_DEF(imgui, menubar, 1),
|
MIST_FUNC_DEF(imgui, menubar, 1),
|
||||||
MIST_FUNC_DEF(imgui, mainmenubar, 1),
|
MIST_FUNC_DEF(imgui, mainmenubar, 1),
|
||||||
MIST_FUNC_DEF(imgui, menuitem, 3),
|
MIST_FUNC_DEF(imgui, menuitem, 3),
|
||||||
|
|
Loading…
Reference in a new issue