Ticket #2137: renderer_global_functions_v1.1.diff
File renderer_global_functions_v1.1.diff, 27.6 KB (added by , 11 years ago) |
---|
-
binaries/data/mods/public/gui/pregame/mainmenu.js
162 162 Engine.PushGuiPage("page_splashscreen.xml", { "page": "splashscreen" } ); 163 163 164 164 // Warn about removing fixed render path 165 if ( renderer.renderpath== "fixed")165 if (Engine.Renderer_GetRenderPath() == "fixed") 166 166 messageBox( 167 167 600, 168 168 300, -
binaries/data/mods/public/gui/session/session.xml
64 64 <!-- Unit silhouettes --> 65 65 <object hotkey="silhouettes"> 66 66 <action on="Press"> 67 renderer.silhouettes = !renderer.silhouettes; 68 getGUIObjectByName("silhouettesCheckbox").checked = renderer.silhouettes; 67 var newSetting = !Engine.Renderer_GetSilhouettesEnabled(); 68 Engine.Renderer_SetSilhouettesEnabled(newSetting); 69 getGUIObjectByName("silhouettesCheckbox").checked = newSetting; 69 70 </action> 70 71 </object> 71 72 72 73 <!-- Sky --> 73 74 <object hotkey="showsky"> 74 <action on="Press">renderer.showsky = !renderer.showsky;</action> 75 <action on="Press"> 76 var newSetting = !Engine.Renderer_GetShowSkyEnabled(); 77 Engine.Renderer_SetShowSkyEnabled(newSetting); 78 </action> 75 79 </object> 76 80 77 81 <!-- Pause --> … … 450 454 <!-- Settings / shadows --> 451 455 <object size="0 10 100%-80 35" type="text" style="RightLabelText" ghost="true">Enable Shadows</object> 452 456 <object name="shadowsCheckbox" size="100%-56 15 100%-30 40" type="checkbox" style="StoneCrossBox" checked="true"> 453 <action on="Load"> if (renderer.shadows) this.checked = true; else this.checked = false;</action>454 <action on="Press"> renderer.shadows = this.checked;</action>457 <action on="Load">this.checked = Engine.Renderer_GetShadowsEnabled();</action> 458 <action on="Press">Engine.Renderer_SetShadowsEnabled(this.checked);</action> 455 459 </object> 456 460 457 461 <!-- Settings / Shadow PCF --> 458 462 <object size="0 35 100%-80 60" type="text" style="RightLabelText" ghost="true">Enable Shadow Filtering</object> 459 463 <object name="shadowPCFCheckbox" size="100%-56 40 100%-30 65" type="checkbox" style="StoneCrossBox" checked="true"> 460 <action on="Load"> if (renderer.shadowPCF) this.checked = true; else this.checked = false;</action>461 <action on="Press"> renderer.shadowPCF = this.checked;</action>464 <action on="Load">this.checked = Engine.Renderer_GetShadowPCFEnabled();</action> 465 <action on="Press">Engine.Renderer_SetShadowPCFEnabled(this.checked);</action> 462 466 </object> 463 467 464 468 <!-- Settings / Water Normals --> 465 469 <object size="0 60 100%-80 85" type="text" style="RightLabelText" ghost="true">Water - HQ Waviness</object> 466 470 <object name="waterNormalCheckox" size="100%-56 65 100%-30 90" type="checkbox" style="StoneCrossBox" checked="true"> 467 <action on="Load"> if (renderer.waternormal) this.checked = true; else this.checked = false;</action>468 <action on="Press"> renderer.waternormal = this.checked;</action>471 <action on="Load">this.checked = Engine.Renderer_GetWaterNormalEnabled();</action> 472 <action on="Press">Engine.Renderer_SetWaterNormalEnabled(this.checked);</action> 469 473 </object> 470 474 471 475 <!-- Settings / Real Depth --> 472 476 <object size="0 85 100%-80 110" type="text" style="RightLabelText" ghost="true">Water - Use Actual Depth</object> 473 477 <object name="waterRealDepthCheckbox" size="100%-56 90 100%-30 115" type="checkbox" style="StoneCrossBox" checked="true"> 474 <action on="Load"> if (renderer.waterrealdepth) this.checked = true; else this.checked = false;</action>475 <action on="Press"> renderer.waterrealdepth = this.checked;</action>478 <action on="Load">this.checked = Engine.Renderer_GetWaterRealDepthEnabled();</action> 479 <action on="Press">Engine.Renderer_SetWaterRealDepthEnabled(this.checked);</action> 476 480 </object> 477 481 478 482 <!-- Settings / Reflection --> 479 483 <object size="0 110 100%-80 135" type="text" style="RightLabelText" ghost="true">Water - Enable Reflections</object> 480 484 <object name="waterReflectionCheckbox" size="100%-56 115 100%-30 140" type="checkbox" style="StoneCrossBox" checked="true"> 481 <action on="Load"> if (renderer.waterreflection) this.checked = true; else this.checked = false;</action>482 <action on="Press"> renderer.waterreflection = this.checked;</action>485 <action on="Load">this.checked = Engine.Renderer_GetWaterReflectionEnabled();</action> 486 <action on="Press">Engine.Renderer_SetWaterReflectionEnabled(this.checked);</action> 483 487 </object> 484 488 485 489 <!-- Settings / Refraction --> 486 490 <object size="0 135 100%-80 160" type="text" style="RightLabelText" ghost="true">Water - Enable Refraction</object> 487 491 <object name="waterRefractionCheckbox" size="100%-56 140 100%-30 165" type="checkbox" style="StoneCrossBox" checked="true"> 488 <action on="Load"> if (renderer.waterrefraction) this.checked = true; else this.checked = false;</action>489 <action on="Press"> renderer.waterrefraction = this.checked;</action>492 <action on="Load">this.checked = Engine.Renderer_GetWaterRefractionEnabled();</action> 493 <action on="Press">Engine.Renderer_SetWaterRefractionEnabled(this.checked);</action> 490 494 </object> 491 495 492 496 <!-- Settings / Foam --> 493 497 <object size="0 160 100%-80 185" type="text" style="RightLabelText" ghost="true">Water - Enable Shore Foam</object> 494 498 <object name="waterFoamCheckbox" size="100%-56 165 100%-30 190" type="checkbox" style="StoneCrossBox" checked="true"> 495 <action on="Load"> if (renderer.waterfoam) this.checked = true; else this.checked = false;</action>496 <action on="Press"> renderer.waterfoam = this.checked;</action>499 <action on="Load">this.checked = Engine.Renderer_GetWaterFoamEnabled();</action> 500 <action on="Press">Engine.Renderer_SetWaterFoamEnabled(this.checked);</action> 497 501 </object> 498 502 499 503 <!-- Settings / Waves --> 500 504 <object size="0 185 100%-80 210" type="text" style="RightLabelText" ghost="true">Water - Enable Shore Waves</object> 501 505 <object name="waterCoastalWavesCheckbox" size="100%-56 190 100%-30 215" type="checkbox" style="StoneCrossBox" checked="true"> 502 <action on="Load"> if (renderer.watercoastalwaves) this.checked = true; else this.checked = false;</action>503 <action on="Press"> renderer.watercoastalwaves = this.checked;</action>506 <action on="Load">this.checked = Engine.Renderer_GetWaterCoastalWavesEnabled();</action> 507 <action on="Press">Engine.Renderer_SetWaterCoastalWavesEnabled(this.checked);</action> 504 508 </object> 505 509 506 510 <!-- Settings / Shadows --> 507 511 <object size="0 210 100%-80 235" type="text" style="RightLabelText" ghost="true">Water - Use Surface Shadows</object> 508 512 <object name="waterShadowsCheckbox" size="100%-56 215 100%-30 240" type="checkbox" style="StoneCrossBox" checked="true"> 509 <action on="Load">if ( renderer.watershadow) this.checked = true; else this.checked = false;</action>510 <action on="Press"> renderer.watershadow = this.checked;</action>513 <action on="Load">if (Engine.Renderer_GetWaterShadowEnabled()) this.checked = true; else this.checked = false;</action> 514 <action on="Press">Engine.Renderer_SetWaterShadowEnabled(this.checked);</action> 511 515 </object> 512 516 513 517 <!-- Settings / Particles --> 514 518 <object size="0 235 100%-80 260" type="text" style="RightLabelText" ghost="true">Enable Particles</object> 515 519 <object name="particlesCheckbox" size="100%-56 240 100%-30 265" type="checkbox" style="StoneCrossBox" checked="true"> 516 <action on="Load"> if (renderer.particles) this.checked = true; else this.checked = false;</action>517 <action on="Press"> renderer.particles = this.checked;</action>520 <action on="Load">this.checked = Engine.Renderer_GetParticlesEnabled();</action> 521 <action on="Press">Engine.Renderer_SetParticlesEnabled(this.checked);</action> 518 522 </object> 519 523 520 524 <!-- Settings / Unit Silhouettes --> 521 525 <object size="0 260 100%-80 285" type="text" style="RightLabelText" ghost="true">Enable Unit Silhouettes</object> 522 526 <object name="silhouettesCheckbox" size="100%-56 265 100%-30 290" type="checkbox" style="StoneCrossBox" checked="true"> 523 <action on="Load"> if (renderer.silhouettes) this.checked = true; else this.checked = false;</action>524 <action on="Press"> renderer.silhouettes = this.checked;</action>527 <action on="Load">this.checked = Engine.Renderer_GetSilhouettesEnabled();</action> 528 <action on="Press">Engine.Renderer_SetSilhouettesEnabled(this.checked);</action> 525 529 </object> 526 530 527 531 <!-- Settings / Music--> -
binaries/data/mods/public/gui/options/options.xml
28 28 <!-- Settings / shadows --> 29 29 <object size="0 10 100%-80 35" type="text" style="RightLabelText" ghost="true">Enable Shadows</object> 30 30 <object name="shadowsCheckbox" size="100%-56 15 100%-30 40" type="checkbox" style="StoneCrossBox" checked="true"> 31 <action on="Load"> if (renderer.shadows) this.checked = true; else this.checked = false;</action>32 <action on="Press"> renderer.shadows = this.checked;</action>31 <action on="Load">this.checked = Engine.Renderer_GetShadowsEnabled();</action> 32 <action on="Press">Engine.Renderer_SetShadowsEnabled(this.checked);</action> 33 33 </object> 34 34 35 35 <!-- Settings / Shadow PCF --> 36 36 <object size="0 35 100%-80 60" type="text" style="RightLabelText" ghost="true">Enable Shadow Filtering</object> 37 37 <object name="shadowPCFCheckbox" size="100%-56 40 100%-30 65" type="checkbox" style="StoneCrossBox" checked="true"> 38 <action on="Load"> if (renderer.shadowPCF) this.checked = true; else this.checked = false;</action>39 <action on="Press"> renderer.shadowPCF = this.checked;</action>38 <action on="Load">this.checked = Engine.Renderer_GetShadowPCFEnabled();</action> 39 <action on="Press">Engine.Renderer_SetShadowPCFEnabled(this.checked);</action> 40 40 </object> 41 41 42 42 <!-- Settings / Water --> 43 43 <!-- <object size="0 60 100%-80 85" type="text" style="RightLabelText" ghost="true">Enable Water Reflections</object> 44 44 <object name="fancyWaterCheckbox" size="100%-56 65 100%-30 90" type="checkbox" style="StoneCrossBox" checked="true"> 45 <action on="Load"> if (renderer.fancyWater) this.checked = true; else this.checked = false;</action>46 <action on="Press"> renderer.fancyWater = this.checked;</action>45 <action on="Load">this.checked = Engine.Renderer_GetWaterNormalEnabled();</action> 46 <action on="Press">Engine.Renderer_SetWaterNormalEnabled(this.checked);</action> 47 47 </object>--> 48 48 49 49 <!-- Settings / Music--> -
build/premake/premake4.lua
600 600 "graphics", 601 601 "graphics/scripting", 602 602 "renderer", 603 "renderer/scripting", 603 604 "third_party/mikktspace" 604 605 } 605 606 extern_libs = { -
source/tools/atlas/GameInterface/Handlers/MiscHandlers.cpp
33 33 #include "ps/GameSetup/Config.h" 34 34 #include "ps/GameSetup/GameSetup.h" 35 35 #include "renderer/Renderer.h" 36 #include "scripting/ScriptingHost.h" 36 37 37 38 extern void (*Atlas_GLSwapBuffers)(void* context); 38 39 -
source/scripting/ScriptGlue.cpp
408 408 // property accessors 409 409 //----------------------------------------------------------------------------- 410 410 411 JSBool GetRenderer(JSContext* UNUSED(cx), JSObject* UNUSED(obj), jsid UNUSED(id), jsval* vp)412 {413 if (CRenderer::IsInitialised())414 *vp = OBJECT_TO_JSVAL(g_Renderer.GetScript());415 else416 *vp = JSVAL_NULL;417 return JS_TRUE;418 }419 411 420 421 412 enum ScriptGlobalTinyIDs 422 413 { 423 414 GLOBAL_SELECTION, … … 430 421 JSPropertySpec ScriptGlobalTable[] = 431 422 { 432 423 { "console" , GLOBAL_CONSOLE, JSPROP_PERMANENT|JSPROP_READONLY, JSI_Console::getConsole, 0 }, 433 { "renderer" , 0, JSPROP_PERMANENT|JSPROP_READONLY, GetRenderer, 0 },434 424 435 425 // end of table marker 436 426 { 0, 0, 0, 0, 0 }, -
source/gui/scripting/ScriptFunctions.cpp
45 45 #include "ps/GameSetup/Atlas.h" 46 46 #include "ps/GameSetup/Config.h" 47 47 #include "ps/ConfigDB.h" 48 #include "renderer/scripting/JSInterface_Renderer.h" 48 49 #include "tools/atlas/GameInterface/GameLoop.h" 49 50 50 51 #include "simulation2/Simulation2.h" … … 652 653 void GuiScriptingInit(ScriptInterface& scriptInterface) 653 654 { 654 655 JSI_GameView::RegisterScriptFunctions(scriptInterface); 656 JSI_Renderer::RegisterScriptFunctions(scriptInterface); 655 657 656 658 // GUI manager functions: 657 659 scriptInterface.RegisterFunction<CScriptVal, &GetActiveGui>("GetActiveGui"); -
source/renderer/scripting/JSInterface_Renderer.cpp
1 /* Copyright (C) 2013 Wildfire Games. 2 * This file is part of 0 A.D. 3 * 4 * 0 A.D. is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * 0 A.D. is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #include "precompiled.h" 19 20 #include "JSInterface_Renderer.h" 21 #include "renderer/Renderer.h" 22 23 #define IMPLEMENT_BOOLEAN_SCRIPT_SETTING(NAME, SCRIPTNAME) \ 24 bool JSI_Renderer::Get##SCRIPTNAME##Enabled(void* UNUSED(cbdata)) \ 25 { \ 26 return g_Renderer.GetOptionBool(CRenderer::OPT_##NAME); \ 27 } \ 28 \ 29 void JSI_Renderer::Set##SCRIPTNAME##Enabled(void* UNUSED(cbdata), bool Enabled) \ 30 { \ 31 g_Renderer.SetOptionBool(CRenderer::OPT_##NAME, Enabled); \ 32 } 33 34 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(PARTICLES, Particles); 35 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(PREFERGLSL, PreferGLSL); 36 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERNORMAL, WaterNormal); 37 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SHADOWPCF, ShadowPCF); 38 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SHADOWS, Shadows); 39 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERREALDEPTH, WaterRealDepth); 40 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERREFLECTION, WaterReflection); 41 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERREFRACTION, WaterRefraction); 42 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERFOAM, WaterFoam); 43 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERCOASTALWAVES, WaterCoastalWaves); 44 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(WATERSHADOW, WaterShadow); 45 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SILHOUETTES, Silhouettes); 46 IMPLEMENT_BOOLEAN_SCRIPT_SETTING(SHOWSKY, ShowSky); 47 48 #undef IMPLEMENT_BOOLEAN_SCRIPT_SETTING 49 50 std::string JSI_Renderer::GetRenderPath(void* UNUSED(cbdata)) 51 { 52 return CRenderer::GetRenderPathName(g_Renderer.GetRenderPath()); 53 } 54 55 void JSI_Renderer::SetRenderPath(void* UNUSED(cbdata), std::string name) 56 { 57 g_Renderer.SetRenderPath(CRenderer::GetRenderPathByName(name)); 58 } 59 60 61 #define REGISTER_BOOLEAN_SCRIPT_SETTING(NAME) \ 62 scriptInterface.RegisterFunction<bool, &JSI_Renderer::Get##NAME##Enabled>("Renderer_Get" #NAME "Enabled"); \ 63 scriptInterface.RegisterFunction<void, bool, &JSI_Renderer::Set##NAME##Enabled>("Renderer_Set" #NAME "Enabled"); 64 65 void JSI_Renderer::RegisterScriptFunctions(ScriptInterface& scriptInterface) 66 { 67 scriptInterface.RegisterFunction<std::string, &JSI_Renderer::GetRenderPath>("Renderer_GetRenderPath"); 68 scriptInterface.RegisterFunction<void, std::string, &JSI_Renderer::SetRenderPath>("Renderer_SetRenderPath"); 69 REGISTER_BOOLEAN_SCRIPT_SETTING(Shadows); 70 REGISTER_BOOLEAN_SCRIPT_SETTING(ShadowPCF); 71 REGISTER_BOOLEAN_SCRIPT_SETTING(Particles); 72 REGISTER_BOOLEAN_SCRIPT_SETTING(PreferGLSL); 73 REGISTER_BOOLEAN_SCRIPT_SETTING(WaterNormal); 74 REGISTER_BOOLEAN_SCRIPT_SETTING(WaterRealDepth); 75 REGISTER_BOOLEAN_SCRIPT_SETTING(WaterReflection); 76 REGISTER_BOOLEAN_SCRIPT_SETTING(WaterRefraction); 77 REGISTER_BOOLEAN_SCRIPT_SETTING(WaterFoam); 78 REGISTER_BOOLEAN_SCRIPT_SETTING(WaterCoastalWaves); 79 REGISTER_BOOLEAN_SCRIPT_SETTING(WaterShadow); 80 REGISTER_BOOLEAN_SCRIPT_SETTING(Silhouettes); 81 REGISTER_BOOLEAN_SCRIPT_SETTING(ShowSky); 82 } 83 84 #undef REGISTER_BOOLEAN_SCRIPT_SETTING 85 -
source/renderer/scripting/JSInterface_Renderer.h
1 /* Copyright (C) 2013 Wildfire Games. 2 * This file is part of 0 A.D. 3 * 4 * 0 A.D. is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * 0 A.D. is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 19 #ifndef INCLUDED_JSINTERFACE_RENDERER 20 #define INCLUDED_JSINTERFACE_RENDERER 21 22 class ScriptInterface; 23 24 #define DECLARE_BOOLEAN_SCRIPT_SETTING(NAME) \ 25 bool Get##NAME##Enabled(void* cbdata); \ 26 void Set##NAME##Enabled(void* cbdata, bool Enabled); 27 28 namespace JSI_Renderer 29 { 30 std::string GetRenderPath(void* cbdata); 31 void SetRenderPath(void* cbdata, std::string name); 32 33 DECLARE_BOOLEAN_SCRIPT_SETTING(Shadows); 34 DECLARE_BOOLEAN_SCRIPT_SETTING(ShadowPCF); 35 DECLARE_BOOLEAN_SCRIPT_SETTING(Particles); 36 DECLARE_BOOLEAN_SCRIPT_SETTING(PreferGLSL); 37 DECLARE_BOOLEAN_SCRIPT_SETTING(WaterNormal); 38 DECLARE_BOOLEAN_SCRIPT_SETTING(WaterRealDepth); 39 DECLARE_BOOLEAN_SCRIPT_SETTING(WaterReflection); 40 DECLARE_BOOLEAN_SCRIPT_SETTING(WaterRefraction); 41 DECLARE_BOOLEAN_SCRIPT_SETTING(WaterFoam); 42 DECLARE_BOOLEAN_SCRIPT_SETTING(WaterCoastalWaves); 43 DECLARE_BOOLEAN_SCRIPT_SETTING(WaterShadow); 44 DECLARE_BOOLEAN_SCRIPT_SETTING(Silhouettes); 45 DECLARE_BOOLEAN_SCRIPT_SETTING(ShowSky); 46 47 void RegisterScriptFunctions(ScriptInterface& scriptInterface); 48 } 49 50 #undef DECLARE_BOOLEAN_SCRIPT_SETTING 51 52 #endif -
source/renderer/Renderer.h
28 28 #include "graphics/ShaderProgram.h" 29 29 #include "lib/res/handle.h" 30 30 #include "ps/Singleton.h" 31 #include "scripting/ScriptableObject.h"32 31 33 32 #include "renderer/PostprocManager.h" 34 33 #include "renderer/Scene.h" 35 34 #include "renderer/TimeManager.h" 35 #include "scriptinterface/ScriptInterface.h" 36 36 37 37 // necessary declarations 38 38 class CLightEnv; … … 71 71 72 72 class CRenderer : 73 73 public Singleton<CRenderer>, 74 public CJSObject<CRenderer>,75 74 private SceneCollector 76 75 { 77 76 public: … … 89 88 OPT_WATERSHADOW, 90 89 OPT_SHADOWPCF, 91 90 OPT_PARTICLES, 91 OPT_PREFERGLSL, 92 92 OPT_SILHOUETTES, 93 93 OPT_SHOWSKY 94 94 }; … … 317 317 */ 318 318 const Caps& GetCapabilities() const { return m_Caps; } 319 319 320 static void ScriptingInit();320 static void RegisterScriptFunctions(ScriptInterface& scriptInterface); 321 321 322 322 protected: 323 323 friend struct CRendererInternals; … … 335 335 friend class ShaderInstancingModelRenderer; 336 336 friend class TerrainRenderer; 337 337 338 // scripting339 // TODO: Perhaps we could have a version of AddLocalProperty for function-driven340 // properties? Then we could hide these function in the private implementation class.341 jsval JSI_GetRenderPath(JSContext*);342 void JSI_SetRenderPath(JSContext* ctx, jsval newval);343 jsval JSI_GetDepthTextureBits(JSContext*);344 void JSI_SetDepthTextureBits(JSContext* ctx, jsval newval);345 jsval JSI_GetShadows(JSContext*);346 void JSI_SetShadows(JSContext* ctx, jsval newval);347 jsval JSI_GetShadowAlphaFix(JSContext*);348 void JSI_SetShadowAlphaFix(JSContext* ctx, jsval newval);349 jsval JSI_GetShadowPCF(JSContext*);350 void JSI_SetShadowPCF(JSContext* ctx, jsval newval);351 jsval JSI_GetPreferGLSL(JSContext*);352 void JSI_SetPreferGLSL(JSContext* ctx, jsval newval);353 jsval JSI_GetSky(JSContext*);354 void JSI_SetSky(JSContext* ctx, jsval newval);355 356 338 //BEGIN: Implementation of SceneCollector 357 339 void Submit(CPatch* patch); 358 340 void Submit(SOverlayLine* overlay); -
source/renderer/Renderer.cpp
472 472 m_hCompositeAlphaMap = 0; 473 473 474 474 m_Stats.Reset(); 475 AddLocalProperty(L"particles", &m_Options.m_Particles, false);476 475 477 AddLocalProperty(L"waternormal", &m_Options.m_WaterNormal, false);478 AddLocalProperty(L"waterrealdepth", &m_Options.m_WaterRealDepth, false);479 AddLocalProperty(L"waterreflection", &m_Options.m_WaterReflection, false);480 AddLocalProperty(L"waterrefraction", &m_Options.m_WaterRefraction, false);481 AddLocalProperty(L"waterfoam", &m_Options.m_WaterFoam, false);482 AddLocalProperty(L"watercoastalwaves", &m_Options.m_WaterCoastalWaves, false);483 AddLocalProperty(L"watershadow", &m_Options.m_WaterShadow, false);484 485 AddLocalProperty(L"horizonHeight", &m->skyManager.m_HorizonHeight, false);486 AddLocalProperty(L"waterMurkiness", &m->waterManager.m_Murkiness, false);487 AddLocalProperty(L"waterReflTintStrength", &m->waterManager.m_ReflectionTintStrength, false);488 AddLocalProperty(L"waterRepeatPeriod", &m->waterManager.m_RepeatPeriod, false);489 AddLocalProperty(L"waterShininess", &m->waterManager.m_Shininess, false);490 AddLocalProperty(L"waterSpecularStrength", &m->waterManager.m_SpecularStrength, false);491 AddLocalProperty(L"waterWaviness", &m->waterManager.m_Waviness, false);492 AddLocalProperty(L"silhouettes", &m_Options.m_Silhouettes, false);493 AddLocalProperty(L"showsky", &m_Options.m_ShowSky, false);494 495 476 RegisterFileReloadFunc(ReloadChangedFileCB, this); 496 477 } 497 478 … … 721 702 case OPT_PARTICLES: 722 703 m_Options.m_Particles = value; 723 704 break; 705 case OPT_PREFERGLSL: 706 m_Options.m_PreferGLSL = value; 707 MakeShadersDirty(); 708 break; 724 709 case OPT_SILHOUETTES: 725 710 m_Options.m_Silhouettes = value; 726 711 break; … … 760 745 return m_Options.m_ShadowPCF; 761 746 case OPT_PARTICLES: 762 747 return m_Options.m_Particles; 748 case OPT_PREFERGLSL: 749 return m_Options.m_PreferGLSL; 763 750 case OPT_SILHOUETTES: 764 751 return m_Options.m_Silhouettes; 765 752 case OPT_SHOWSKY: … … 1983 1970 m->ShadersDirty = true; 1984 1971 } 1985 1972 1986 ///////////////////////////////////////////////////////////////////////////////////////////////////1987 // Scripting Interface1988 1989 jsval CRenderer::JSI_GetRenderPath(JSContext*)1990 {1991 return ToJSVal(GetRenderPathName(m_Options.m_RenderPath));1992 }1993 1994 void CRenderer::JSI_SetRenderPath(JSContext* ctx, jsval newval)1995 {1996 CStr name;1997 1998 if (!ToPrimitive(ctx, newval, name))1999 return;2000 2001 SetRenderPath(GetRenderPathByName(name));2002 }2003 2004 jsval CRenderer::JSI_GetDepthTextureBits(JSContext*)2005 {2006 return ToJSVal(m->shadow.GetDepthTextureBits());2007 }2008 2009 void CRenderer::JSI_SetDepthTextureBits(JSContext* ctx, jsval newval)2010 {2011 int depthTextureBits;2012 2013 if (!ToPrimitive(ctx, newval, depthTextureBits))2014 return;2015 2016 m->shadow.SetDepthTextureBits(depthTextureBits);2017 }2018 2019 jsval CRenderer::JSI_GetShadows(JSContext*)2020 {2021 return ToJSVal(m_Options.m_Shadows);2022 }2023 2024 void CRenderer::JSI_SetShadows(JSContext* ctx, jsval newval)2025 {2026 ToPrimitive(ctx, newval, m_Options.m_Shadows);2027 ReloadShaders();2028 }2029 2030 jsval CRenderer::JSI_GetShadowAlphaFix(JSContext*)2031 {2032 return ToJSVal(m_Options.m_ShadowAlphaFix);2033 }2034 2035 void CRenderer::JSI_SetShadowAlphaFix(JSContext* ctx, jsval newval)2036 {2037 if (!ToPrimitive(ctx, newval, m_Options.m_ShadowAlphaFix))2038 return;2039 2040 m->shadow.RecreateTexture();2041 }2042 2043 jsval CRenderer::JSI_GetShadowPCF(JSContext*)2044 {2045 return ToJSVal(m_Options.m_ShadowPCF);2046 }2047 2048 void CRenderer::JSI_SetShadowPCF(JSContext* ctx, jsval newval)2049 {2050 ToPrimitive(ctx, newval, m_Options.m_ShadowPCF);2051 ReloadShaders();2052 }2053 2054 jsval CRenderer::JSI_GetPreferGLSL(JSContext*)2055 {2056 return ToJSVal(m_Options.m_PreferGLSL);2057 }2058 2059 void CRenderer::JSI_SetPreferGLSL(JSContext* ctx, jsval newval)2060 {2061 ToPrimitive(ctx, newval, m_Options.m_PreferGLSL);2062 ReloadShaders();2063 }2064 2065 jsval CRenderer::JSI_GetSky(JSContext*)2066 {2067 return ToJSVal(m->skyManager.GetSkySet());2068 }2069 2070 void CRenderer::JSI_SetSky(JSContext* ctx, jsval newval)2071 {2072 CStrW skySet;2073 if (!ToPrimitive<CStrW>(ctx, newval, skySet)) return;2074 m->skyManager.SetSkySet(skySet);2075 }2076 2077 void CRenderer::ScriptingInit()2078 {2079 AddProperty(L"renderpath", &CRenderer::JSI_GetRenderPath, &CRenderer::JSI_SetRenderPath);2080 AddProperty(L"displayFrustum", &CRenderer::m_DisplayFrustum);2081 AddProperty(L"shadowZBias", &CRenderer::m_ShadowZBias);2082 AddProperty(L"shadowMapSize", &CRenderer::m_ShadowMapSize);2083 AddProperty(L"shadows", &CRenderer::JSI_GetShadows, &CRenderer::JSI_SetShadows);2084 AddProperty(L"depthTextureBits", &CRenderer::JSI_GetDepthTextureBits, &CRenderer::JSI_SetDepthTextureBits);2085 AddProperty(L"shadowAlphaFix", &CRenderer::JSI_GetShadowAlphaFix, &CRenderer::JSI_SetShadowAlphaFix);2086 AddProperty(L"shadowPCF", &CRenderer::JSI_GetShadowPCF, &CRenderer::JSI_SetShadowPCF);2087 AddProperty(L"preferGLSL", &CRenderer::JSI_GetPreferGLSL, &CRenderer::JSI_SetPreferGLSL);2088 AddProperty(L"skipSubmit", &CRenderer::m_SkipSubmit);2089 AddProperty(L"skySet", &CRenderer::JSI_GetSky, &CRenderer::JSI_SetSky);2090 2091 CJSObject<CRenderer>::ScriptingInit("Renderer");2092 }2093 2094 2095 1973 CTextureManager& CRenderer::GetTextureManager() 2096 1974 { 2097 1975 return m->textureManager; -
source/ps/GameSetup/GameSetup.cpp
321 321 // maths 322 322 JSI_Vector3D::init(); 323 323 324 // renderer325 CRenderer::ScriptingInit();326 327 324 // ps 328 325 JSI_Console::init(); 329 326 … … 1344 1341 JSBool ok = JS_GetProperty(cx, g_GUI->GetScriptObject(), "cancelOnError", &fval); 1345 1342 ENSURE(ok); 1346 1343 1347 jsval msgval = ToJSVal(message);1344 jsval msgval = ScriptInterface::ToJSVal(cx, message); 1348 1345 1349 1346 if (ok && !JSVAL_IS_VOID(fval)) 1350 1347 JS_CallFunctionValue(cx, g_GUI->GetScriptObject(), fval, 1, &msgval, &rval);