mirror of
https://github.com/EmulatorJS/EmulatorJS.git
synced 2024-09-20 02:46:23 +00:00
Shaders
This commit is contained in:
parent
8ea6db2b47
commit
ebe647b141
4 changed files with 53 additions and 1 deletions
|
@ -13,7 +13,8 @@ class EJS_GameManager {
|
||||||
getCoreOptions: this.Module.cwrap('get_core_options', 'string', []),
|
getCoreOptions: this.Module.cwrap('get_core_options', 'string', []),
|
||||||
setVariable: this.Module.cwrap('set_variable', 'null', ['string', 'string']),
|
setVariable: this.Module.cwrap('set_variable', 'null', ['string', 'string']),
|
||||||
setCheat: this.Module.cwrap('set_cheat', 'null', ['number', 'number', 'string']),
|
setCheat: this.Module.cwrap('set_cheat', 'null', ['number', 'number', 'string']),
|
||||||
resetCheat: this.Module.cwrap('reset_cheat', 'null', [])
|
resetCheat: this.Module.cwrap('reset_cheat', 'null', []),
|
||||||
|
toggleShader: this.Module.cwrap('shader_enable', 'null', ['number'])
|
||||||
}
|
}
|
||||||
this.mkdir("/home");
|
this.mkdir("/home");
|
||||||
this.mkdir("/home/web_user");
|
this.mkdir("/home/web_user");
|
||||||
|
@ -21,6 +22,8 @@ class EJS_GameManager {
|
||||||
this.mkdir("/home/web_user/retroarch/userdata");
|
this.mkdir("/home/web_user/retroarch/userdata");
|
||||||
|
|
||||||
this.FS.writeFile("/home/web_user/retroarch/userdata/retroarch.cfg", this.getRetroArchCfg());
|
this.FS.writeFile("/home/web_user/retroarch/userdata/retroarch.cfg", this.getRetroArchCfg());
|
||||||
|
|
||||||
|
this.initShaders();
|
||||||
}
|
}
|
||||||
mkdir(path) {
|
mkdir(path) {
|
||||||
try {
|
try {
|
||||||
|
@ -30,6 +33,13 @@ class EJS_GameManager {
|
||||||
getRetroArchCfg() {
|
getRetroArchCfg() {
|
||||||
return "\naudio_latency: 256\n";
|
return "\naudio_latency: 256\n";
|
||||||
}
|
}
|
||||||
|
initShaders() {
|
||||||
|
if (!window.EJS_SHADERS) return;
|
||||||
|
this.mkdir("/shader");
|
||||||
|
for (const shader in window.EJS_SHADERS) {
|
||||||
|
this.FS.writeFile('/shader/'+shader, window.EJS_SHADERS[shader]);
|
||||||
|
}
|
||||||
|
}
|
||||||
restart() {
|
restart() {
|
||||||
this.functions.restart();
|
this.functions.restart();
|
||||||
}
|
}
|
||||||
|
@ -109,6 +119,9 @@ class EJS_GameManager {
|
||||||
resetCheat() {
|
resetCheat() {
|
||||||
this.functions.resetCheat();
|
this.functions.resetCheat();
|
||||||
}
|
}
|
||||||
|
toggleShader(active) {
|
||||||
|
this.functions.toggleShader(active);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.EJS_GameManager = EJS_GameManager;
|
window.EJS_GameManager = EJS_GameManager;
|
||||||
|
|
|
@ -1523,6 +1523,18 @@ class EmulatorJS {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
menuOptionChanged(option, value) {
|
menuOptionChanged(option, value) {
|
||||||
|
if (option === "shader") {
|
||||||
|
try {
|
||||||
|
this.Module.FS.unlink("/shader/shader.glslp");
|
||||||
|
} catch(e) {}
|
||||||
|
if (value === "disabled") {
|
||||||
|
this.gameManager.toggleShader(0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.Module.FS.writeFile("/shader/shader.glslp", window.EJS_SHADERS[value]);
|
||||||
|
this.gameManager.toggleShader(1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
//console.log(option, value);
|
//console.log(option, value);
|
||||||
this.gameManager.setVariable(option, value);
|
this.gameManager.setVariable(option, value);
|
||||||
}
|
}
|
||||||
|
@ -1659,6 +1671,18 @@ class EmulatorJS {
|
||||||
'hide': this.localization("hide")
|
'hide': this.localization("hide")
|
||||||
}, 'hide');
|
}, 'hide');
|
||||||
|
|
||||||
|
if (window.EJS_SHADERS) {
|
||||||
|
addToMenu(this.localization('Shaders'), 'shader', {
|
||||||
|
'disabled': "Disabled",
|
||||||
|
'2xScaleHQ.glslp': "2xScaleHQ",
|
||||||
|
'4xScaleHQ.glslp': "4xScaleHQ",
|
||||||
|
'crt-easymode.glslp': 'CRT easymode',
|
||||||
|
'crt-aperture.glslp': 'CRT aperture',
|
||||||
|
'crt-geom.glslp': 'CRT geom',
|
||||||
|
'crt-mattias.glslp': 'CRT mattias'
|
||||||
|
}, 'disabled');
|
||||||
|
}
|
||||||
|
|
||||||
this.settingsMenu.appendChild(nested);
|
this.settingsMenu.appendChild(nested);
|
||||||
|
|
||||||
this.settingParent.appendChild(this.settingsMenu);
|
this.settingParent.appendChild(this.settingsMenu);
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
if (('undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) || true) {
|
if (('undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) || true) {
|
||||||
await loadScript('emulator.js');
|
await loadScript('emulator.js');
|
||||||
await loadScript('nipplejs.js');
|
await loadScript('nipplejs.js');
|
||||||
|
await loadScript('shaders.js');
|
||||||
await loadScript('gamepad.js');
|
await loadScript('gamepad.js');
|
||||||
await loadScript('GameManager.js');
|
await loadScript('GameManager.js');
|
||||||
await loadStyle('css/main.css');
|
await loadStyle('css/main.css');
|
||||||
|
|
14
src/shaders.js
Normal file
14
src/shaders.js
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue