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', []),
|
||||
setVariable: this.Module.cwrap('set_variable', 'null', ['string', '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/web_user");
|
||||
|
@ -21,6 +22,8 @@ class EJS_GameManager {
|
|||
this.mkdir("/home/web_user/retroarch/userdata");
|
||||
|
||||
this.FS.writeFile("/home/web_user/retroarch/userdata/retroarch.cfg", this.getRetroArchCfg());
|
||||
|
||||
this.initShaders();
|
||||
}
|
||||
mkdir(path) {
|
||||
try {
|
||||
|
@ -30,6 +33,13 @@ class EJS_GameManager {
|
|||
getRetroArchCfg() {
|
||||
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() {
|
||||
this.functions.restart();
|
||||
}
|
||||
|
@ -109,6 +119,9 @@ class EJS_GameManager {
|
|||
resetCheat() {
|
||||
this.functions.resetCheat();
|
||||
}
|
||||
toggleShader(active) {
|
||||
this.functions.toggleShader(active);
|
||||
}
|
||||
}
|
||||
|
||||
window.EJS_GameManager = EJS_GameManager;
|
||||
|
|
|
@ -1523,6 +1523,18 @@ class EmulatorJS {
|
|||
};
|
||||
}
|
||||
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);
|
||||
this.gameManager.setVariable(option, value);
|
||||
}
|
||||
|
@ -1659,6 +1671,18 @@ class EmulatorJS {
|
|||
'hide': this.localization("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.settingParent.appendChild(this.settingsMenu);
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
if (('undefined' != typeof EJS_DEBUG_XX && true === EJS_DEBUG_XX) || true) {
|
||||
await loadScript('emulator.js');
|
||||
await loadScript('nipplejs.js');
|
||||
await loadScript('shaders.js');
|
||||
await loadScript('gamepad.js');
|
||||
await loadScript('GameManager.js');
|
||||
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