Changeset 26069
- Timestamp:
- Dec 14, 2021, 7:34:02 AM (3 years ago)
- Location:
- ps/trunk
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
ps/trunk/binaries/data/config/default.cfg
r26066 r26069 110 110 cursorbackend = "sdl" 111 111 112 ; Specify the render path. This can be one of:113 ; default Automatically select one of the below, depending on system capabilities114 ; fixed Only use OpenGL fixed function pipeline115 ; shader Use vertex/fragment shaders for transform and lighting where possible 116 ; Using 'fixed' instead of 'default' may work around some graphics-related problems, 117 ; but will reduce performance and features when a modern graphics card is available.112 ; : 113 ; 114 ; 115 rendererbackend = "gl" 116 117 ; e. 118 118 renderpath = default 119 119 120 120 ;;;;; EXPERIMENTAL ;;;;; 121 ; Prefer GLSL shaders over ARB shaders. Allows fancier graphical effects. 122 preferglsl = false 123 124 ; Experimental probably-non-working GPU skinning support; requires preferglsl; use at own risk 121 ; Experimental probably-non-working GPU skinning support; requires GLSL; use at own risk 125 122 gpuskinning = false 126 123 -
ps/trunk/binaries/data/mods/public/gui/options/options.json
r26030 r26069 178 178 [ 179 179 { 180 "type": "boolean", 181 "label": "Prefer GLSL", 182 "tooltip": "Use OpenGL 2.0 shaders (recommended).", 183 "config": "preferglsl" 180 "type": "dropdown", 181 "label": "Renderer backend", 182 "tooltip": "Choose the renderer's backend. REQUIRES GAME RESTART", 183 "config": "rendererbackend", 184 "list": [ 185 { "value": "gl", "label": "OpenGL", "tooltip": "Default OpenGL backend with GLSL. REQUIRES GAME RESTART" }, 186 { "value": "glarb", "label": "OpenGL ARB", "tooltip": "Legacy OpenGL backend with ARB shaders. REQUIRES GAME RESTART" } 187 ] 184 188 }, 185 189 { … … 187 191 "label": "Fog", 188 192 "tooltip": "Enable fog.", 189 "dependencies": [ "preferglsl"],193 "dependencies": [], 190 194 "config": "fog" 191 195 }, … … 200 204 "label": "Antialiasing", 201 205 "tooltip": "Reduce aliasing effect on edges.", 202 "dependencies": ["postproc", "preferglsl"],206 "dependencies": ["postproc", ], 203 207 "config": "antialiasing", 204 208 "list": [ … … 215 219 "label": "Sharpening", 216 220 "tooltip": "Reduce blurry effects.", 217 "dependencies": ["postproc", "preferglsl"],221 "dependencies": ["postproc", ], 218 222 "config": "sharpening", 219 223 "list": [ … … 226 230 "label": "Sharpness factor", 227 231 "tooltip": "The sharpness of the choosen pass.", 228 "dependencies": ["postproc", "preferglsl", { "config": "sharpening", "op": "!=", "value": "disabled" }], 232 "dependencies": [ 233 "postproc", 234 { "config": "rendererbackend", "op": "!=", "value": "glarb" }, 235 { "config": "sharpening", "op": "!=", "value": "disabled" } 236 ], 229 237 "config": "sharpness", 230 238 "min": 0, -
ps/trunk/source/graphics/Canvas2D.cpp
r25704 r26069 77 77 78 78 CShaderDefines defines; 79 Tech = g_Renderer.GetShaderManager().LoadEffect( 80 str_canvas2d, g_Renderer.GetSystemShaderDefines(), defines); 79 Tech = g_Renderer.GetShaderManager().LoadEffect(str_canvas2d, defines); 81 80 ENSURE(Tech); 82 81 Tech->BeginPass(); -
ps/trunk/source/graphics/MiniMapTexture.cpp
r26046 r26069 365 365 baseDefines.Add(str_MINIMAP_BASE, str_1); 366 366 367 tech = g_Renderer.GetShaderManager().LoadEffect(str_minimap, g_Renderer.GetSystemShaderDefines(),baseDefines);367 tech = g_Renderer.GetShaderManager().LoadEffect(str_minimap, baseDefines); 368 368 tech->BeginPass(); 369 369 shader = tech->GetShader(); … … 416 416 CShaderDefines pointDefines; 417 417 pointDefines.Add(str_MINIMAP_POINT, str_1); 418 tech = g_Renderer.GetShaderManager().LoadEffect(str_minimap, g_Renderer.GetSystemShaderDefines(),pointDefines);418 tech = g_Renderer.GetShaderManager().LoadEffect(str_minimap, pointDefines); 419 419 tech->BeginPass(); 420 420 shader = tech->GetShader(); -
ps/trunk/source/graphics/ShaderManager.cpp
r26020 r26069 32 32 #include "ps/XML/Xeromyces.h" 33 33 #include "ps/XML/XMLWriter.h" 34 34 35 #include "renderer/Renderer.h" 35 36 #include "renderer/RenderingOptions.h" … … 159 160 160 161 const bool isGLSL = (Root.GetAttributes().GetNamedItem(at_type) == "glsl"); 161 if (!isGLSL && g_ RenderingOptions.GetPreferGLSL())162 if (!isGLSL && g_) 162 163 LOGWARNING("CShaderManager::NewProgram: '%s': trying to load a non-GLSL program with enabled GLSL", name); 163 164 … … 336 337 size_t hash = 0; 337 338 hash_combine(hash, key.name.GetHash()); 338 hash_combine(hash, key.defines1.GetHash()); 339 hash_combine(hash, key.defines2.GetHash()); 339 hash_combine(hash, key.defines.GetHash()); 340 340 return hash; 341 341 } … … 343 343 bool CShaderManager::EffectCacheKey::operator==(const EffectCacheKey& b) const 344 344 { 345 return (name == b.name && defines1 == b.defines1 && defines2 == b.defines2);345 return ; 346 346 } 347 347 348 348 CShaderTechniquePtr CShaderManager::LoadEffect(CStrIntern name) 349 349 { 350 return LoadEffect(name, g_Renderer.GetSystemShaderDefines(),CShaderDefines());351 } 352 353 CShaderTechniquePtr CShaderManager::LoadEffect(CStrIntern name, const CShaderDefines& defines 1, const CShaderDefines& defines2)350 return LoadEffect(name, CShaderDefines()); 351 } 352 353 CShaderTechniquePtr CShaderManager::LoadEffect(CStrIntern name, const CShaderDefines& defines) 354 354 { 355 355 // Return the cached effect, if there is one 356 EffectCacheKey key = { name, defines 1, defines2};356 EffectCacheKey key = { name, defines }; 357 357 EffectCacheMap::iterator it = m_EffectCache.find(key); 358 358 if (it != m_EffectCache.end()) … … 360 360 361 361 // First time we've seen this key, so construct a new effect: 362 363 // Merge the two sets of defines, so NewEffect doesn't have to care about the split364 CShaderDefines defines(defines1);365 defines.SetMany(defines2);366 367 362 CShaderTechniquePtr tech(new CShaderTechnique()); 368 363 if (!NewEffect(name.c_str(), defines, tech)) … … 412 407 413 408 // Read some defines that influence how we pick techniques 414 bool hasARB = (baseDefines.GetInt("SYS_HAS_ARB") != 0); 415 bool hasGLSL = (baseDefines.GetInt("SYS_HAS_GLSL") != 0); 416 bool preferGLSL = (baseDefines.GetInt("SYS_PREFER_GLSL") != 0); 409 const CRenderer::Caps& capabilities = g_Renderer.GetCapabilities(); 410 const bool hasARB = capabilities.m_ARBProgram; 411 const bool hasGLSL = capabilities.m_FragmentShader && capabilities.m_VertexShader; 412 const bool preferGLSL = g_VideoMode.GetBackend() != CVideoMode::Backend::GL_ARB; 417 413 418 414 // Prepare the preprocessor for conditional tests … … 424 420 // Find all the techniques that we can use, and their preference 425 421 426 std::vector<std::pair<XMBElement, int> 422 std::vector<std::pair<XMBElement, int>> usableTechs; 427 423 428 424 XERO_ITER_EL(Root, Technique) -
ps/trunk/source/graphics/ShaderManager.h
r26020 r26069 43 43 * Effects can be implemented via many techniques; this returns the best usable technique. 44 44 * @param name name of effect XML specification (file is loaded from shaders/effects/${name}.xml) 45 * @param defines 1,defines2 key/value set of preprocessor definitions; defines2 has higher precedence45 * @param defines 46 46 * @return loaded technique, or empty technique on error 47 47 */ 48 CShaderTechniquePtr LoadEffect(CStrIntern name, const CShaderDefines& defines 1, const CShaderDefines& defines2);48 CShaderTechniquePtr LoadEffect(CStrIntern name, const CShaderDefines& defines); 49 49 50 50 /** … … 88 88 { 89 89 CStrIntern name; 90 CShaderDefines defines1; 91 CShaderDefines defines2; 90 CShaderDefines defines; 92 91 93 92 bool operator==(const EffectCacheKey& b) const; -
ps/trunk/source/gui/ObjectTypes/CMiniMap.cpp
r26001 r26069 410 410 baseDefines.Add(str_MINIMAP_BASE, str_1); 411 411 412 tech = g_Renderer.GetShaderManager().LoadEffect(str_minimap, g_Renderer.GetSystemShaderDefines(),baseDefines);412 tech = g_Renderer.GetShaderManager().LoadEffect(str_minimap, baseDefines); 413 413 tech->BeginPass(); 414 414 shader = tech->GetShader(); -
ps/trunk/source/ps/CStrInternStatic.h
r26020 r26069 63 63 X(RENDER_DEBUG_MODE_NONE) 64 64 X(SHADOWS_CASCADE_COUNT) 65 X(SYS_HAS_ARB)66 X(SYS_HAS_GLSL)67 X(SYS_PREFER_GLSL)68 65 X(USE_FANCY_EFFECTS) 69 66 X(USE_FP_SHADOW) -
ps/trunk/source/ps/VideoMode.cpp
r26051 r26069 232 232 CFG_GET_VAL("hidpi", m_ConfigEnableHiDPI); 233 233 CFG_GET_VAL("vsync", m_ConfigVSync); 234 235 236 237 238 239 240 234 241 } 235 242 -
ps/trunk/source/ps/VideoMode.h
r26031 r26069 29 29 { 30 30 public: 31 32 33 34 35 36 31 37 CVideoMode(); 32 38 ~CVideoMode(); … … 105 111 void ResetCursor(); 106 112 113 114 107 115 private: 108 116 void ReadConfig(); … … 158 166 class CCursor; 159 167 std::unique_ptr<CCursor> m_Cursor; 168 169 160 170 }; 161 171 -
ps/trunk/source/renderer/DecalRData.cpp
r25982 r26069 115 115 } 116 116 117 118 117 119 CShaderTechniquePtr techBase = g_Renderer.GetShaderManager().LoadEffect( 118 material.GetShaderEffect(), contextDecal, material.GetShaderDefines(0));120 material.GetShaderEffect(), ); 119 121 if (!techBase) 120 122 { -
ps/trunk/source/renderer/ModelRenderer.cpp
r26045 r26069 490 490 for (MaterialBuckets_t::iterator it = materialBuckets.begin(); it != materialBuckets.end(); ++it) 491 491 { 492 CShaderTechniquePtr tech = g_Renderer.GetShaderManager().LoadEffect(it->first.effect, context, it->first.defines); 492 CShaderDefines defines = context; 493 defines.SetMany(it->first.defines); 494 CShaderTechniquePtr tech = g_Renderer.GetShaderManager().LoadEffect(it->first.effect, defines); 493 495 494 496 // Skip invalid techniques (e.g. from data file errors) -
ps/trunk/source/renderer/OverlayRenderer.cpp
r26020 r26069 50 50 CShaderTechniquePtr GetOverlayLineShaderTechnique(const CShaderDefines& defines) 51 51 { 52 return g_Renderer.GetShaderManager().LoadEffect( 53 str_overlay_line, g_Renderer.GetSystemShaderDefines(), defines); 52 return g_Renderer.GetShaderManager().LoadEffect(str_overlay_line, defines); 54 53 } 55 54 -
ps/trunk/source/renderer/ParticleRenderer.cpp
r25457 r26069 89 89 if (!m->shader) 90 90 { 91 m->shader = g_Renderer.GetShaderManager().LoadEffect(str_particle, context , CShaderDefines());92 m->shaderSolid = g_Renderer.GetShaderManager().LoadEffect(str_particle_solid, context , CShaderDefines());91 m->shader = g_Renderer.GetShaderManager().LoadEffect(str_particle, context); 92 m->shaderSolid = g_Renderer.GetShaderManager().LoadEffect(str_particle_solid, context); 93 93 } 94 94 -
ps/trunk/source/renderer/PatchRData.cpp
r26017 r26069 37 37 #include "ps/Profile.h" 38 38 #include "ps/Pyrogenesis.h" 39 39 40 #include "ps/World.h" 40 41 #include "renderer/AlphaMapCalculator.h" … … 718 719 continue; 719 720 } 721 722 720 723 CShaderTechniquePtr techBase = g_Renderer.GetShaderManager().LoadEffect( 721 material.GetShaderEffect(), context, material.GetShaderDefines(0));724 material.GetShaderEffect(), ); 722 725 723 726 BatchElements& batch = PooledPairGet( … … 927 930 if (!bestTex->GetMaterial().GetSamplers().empty()) 928 931 { 932 933 929 934 layer.m_ShaderTech = g_Renderer.GetShaderManager().LoadEffect( 930 bestTex->GetMaterial().GetShaderEffect(), contextBlend, bestTex->GetMaterial().GetShaderDefines(0));935 bestTex->GetMaterial().GetShaderEffect(), ); 931 936 } 932 937 batches.push_back(layer); … … 1411 1416 } 1412 1417 1413 if (m_VBWaterShore && g_ RenderingOptions.GetPreferGLSL()&&1418 if (m_VBWaterShore && g_ && 1414 1419 g_Renderer.GetWaterManager()->m_WaterEffects && 1415 1420 g_Renderer.GetWaterManager()->m_WaterFancyEffects) -
ps/trunk/source/renderer/PostprocManager.cpp
r25457 r26069 31 31 #include "ps/Filesystem.h" 32 32 #include "ps/Game.h" 33 33 34 #include "ps/World.h" 34 35 #include "renderer/Renderer.h" … … 228 229 CShaderDefines defines; 229 230 defines.Add(str_BLOOM_NOP, str_1); 230 CShaderTechniquePtr tech = g_Renderer.GetShaderManager().LoadEffect(str_bloom, 231 g_Renderer.GetSystemShaderDefines(), defines); 231 CShaderTechniquePtr tech = g_Renderer.GetShaderManager().LoadEffect(str_bloom, defines); 232 232 233 233 tech->BeginPass(); … … 287 287 CShaderDefines defines2; 288 288 defines2.Add(str_BLOOM_PASS_H, str_1); 289 CShaderTechniquePtr tech = g_Renderer.GetShaderManager().LoadEffect(str_bloom, 290 g_Renderer.GetSystemShaderDefines(), defines2); 289 CShaderTechniquePtr tech = g_Renderer.GetShaderManager().LoadEffect(str_bloom, defines2); 291 290 292 291 tech->BeginPass(); … … 333 332 CShaderDefines defines3; 334 333 defines3.Add(str_BLOOM_PASS_V, str_1); 335 tech = g_Renderer.GetShaderManager().LoadEffect(str_bloom, 336 g_Renderer.GetSystemShaderDefines(), defines3); 334 tech = g_Renderer.GetShaderManager().LoadEffect(str_bloom, defines3); 337 335 338 336 tech->BeginPass(); … … 501 499 // Don't do anything if we are using the default effect and no AA. 502 500 const bool hasEffects = m_PostProcEffect != L"default"; 503 const bool hasAA = m_AATech && g_RenderingOptions.GetPreferGLSL(); 504 const bool hasSharp = m_SharpTech && g_RenderingOptions.GetPreferGLSL(); 501 const bool hasARB = g_VideoMode.GetBackend() == CVideoMode::Backend::GL_ARB; 502 const bool hasAA = m_AATech && !hasARB; 503 const bool hasSharp = m_SharpTech && !hasARB; 505 504 if (!hasEffects && !hasAA && !hasSharp) 506 505 return; … … 591 590 void CPostprocManager::UpdateAntiAliasingTechnique() 592 591 { 593 if ( !g_RenderingOptions.GetPreferGLSL()|| !m_IsInitialized)592 if ( || !m_IsInitialized) 594 593 return; 595 594 … … 625 624 ogl_HaveExtension("GL_ARB_multisample") && 626 625 ogl_HaveExtension("GL_ARB_texture_multisample") && 627 !m_AllowedSampleCounts.empty() && 628 g_RenderingOptions.GetPreferGLSL(); 626 !m_AllowedSampleCounts.empty(); 629 627 if (!is_msaa_supported) 630 628 { … … 651 649 void CPostprocManager::UpdateSharpeningTechnique() 652 650 { 653 if ( !g_RenderingOptions.GetPreferGLSL()|| !m_IsInitialized)651 if ( || !m_IsInitialized) 654 652 return; 655 653 -
ps/trunk/source/renderer/Renderer.cpp
r26065 r26069 55 55 #include "graphics/Texture.h" 56 56 #include "graphics/TextureManager.h" 57 57 58 #include "renderer/DebugRenderer.h" 58 59 #include "renderer/HWLightingModelRenderer.h" … … 478 479 } 479 480 480 void CRenderer::RecomputeSystemShaderDefines()481 {482 CShaderDefines defines;483 484 if (m_Caps.m_ARBProgram)485 defines.Add(str_SYS_HAS_ARB, str_1);486 487 if (m_Caps.m_VertexShader && m_Caps.m_FragmentShader)488 defines.Add(str_SYS_HAS_GLSL, str_1);489 490 if (g_RenderingOptions.GetPreferGLSL())491 defines.Add(str_SYS_PREFER_GLSL, str_1);492 493 m_SystemShaderDefines = defines;494 }495 496 481 void CRenderer::ReloadShaders() 497 482 { 498 483 ENSURE(m->IsOpen); 499 484 500 m->globalContext = m_SystemShaderDefines;485 m->globalContext = ; 501 486 502 487 if (m_Caps.m_Shadows && g_RenderingOptions.GetShadows()) … … 519 504 RenderDebugModeEnum::ToString(g_RenderingOptions.GetRenderDebugMode())); 520 505 521 if (g_ RenderingOptions.GetPreferGLSL()&& g_RenderingOptions.GetFog())506 if (g_ && g_RenderingOptions.GetFog()) 522 507 m->globalContext.Add(str_USE_FOG, str_1); 523 508 … … 526 511 ENSURE(g_RenderingOptions.GetRenderPath() != RenderPath::FIXED); 527 512 m->Model.VertexRendererShader = ModelVertexRendererPtr(new ShaderModelVertexRenderer()); 528 m->Model.VertexInstancingShader = ModelVertexRendererPtr(new InstancingModelRenderer(false, g_ RenderingOptions.GetPreferGLSL()));513 m->Model.VertexInstancingShader = ModelVertexRendererPtr(new InstancingModelRenderer(false, g_)); 529 514 530 515 if (g_RenderingOptions.GetGPUSkinning()) // TODO: should check caps and GLSL etc too 531 516 { 532 m->Model.VertexGPUSkinningShader = ModelVertexRendererPtr(new InstancingModelRenderer(true, g_ RenderingOptions.GetPreferGLSL()));517 m->Model.VertexGPUSkinningShader = ModelVertexRendererPtr(new InstancingModelRenderer(true, g_)); 533 518 m->Model.NormalSkinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexGPUSkinningShader)); 534 519 m->Model.TranspSkinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexGPUSkinningShader)); … … 581 566 SetRenderPath(g_RenderingOptions.GetRenderPath()); 582 567 583 RecomputeSystemShaderDefines();584 585 568 // Let component renderers perform one-time initialization after graphics capabilities and 586 569 // the shader path have been determined. … … 622 605 if (rp == RenderPath::DEFAULT) 623 606 { 624 if (m_Caps.m_ARBProgram || (m_Caps.m_VertexShader && m_Caps.m_FragmentShader && g_ RenderingOptions.GetPreferGLSL()))607 if (m_Caps.m_ARBProgram || (m_Caps.m_VertexShader && m_Caps.m_FragmentShader && g_)) 625 608 rp = RenderPath::SHADER; 626 609 else … … 630 613 if (rp == RenderPath::SHADER) 631 614 { 632 if (!(m_Caps.m_ARBProgram || (m_Caps.m_VertexShader && m_Caps.m_FragmentShader && g_ RenderingOptions.GetPreferGLSL())))615 if (!(m_Caps.m_ARBProgram || (m_Caps.m_VertexShader && m_Caps.m_FragmentShader && g_))) 633 616 { 634 617 LOGWARNING("Falling back to fixed function\n"); … … 641 624 642 625 MakeShadersDirty(); 643 RecomputeSystemShaderDefines();644 626 645 627 // We might need to regenerate some render data after changing path -
ps/trunk/source/renderer/Renderer.h
r25931 r26069 265 265 CFontManager& GetFontManager(); 266 266 267 CShaderDefines GetSystemShaderDefines() { return m_SystemShaderDefines; }268 269 267 CTimeManager& GetTimeManager(); 270 268 … … 356 354 357 355 void ReloadShaders(); 358 void RecomputeSystemShaderDefines();359 356 360 357 // RENDERER DATA: … … 374 371 // Current overlay rendering mode. 375 372 ERenderMode m_OverlayRenderMode; 376 377 CShaderDefines m_SystemShaderDefines;378 373 379 374 SViewPort m_Viewport; -
ps/trunk/source/renderer/RenderingOptions.cpp
r25996 r26069 24 24 #include "ps/CStr.h" 25 25 #include "ps/CStrInternStatic.h" 26 26 27 #include "renderer/Renderer.h" 27 28 #include "renderer/PostprocManager.h" … … 121 122 m_Particles = false; 122 123 m_Silhouettes = false; 123 m_PreferGLSL = false;124 124 m_Fog = false; 125 125 m_ForceAlphaTest = false; … … 145 145 }); 146 146 147 m_ConfigHooks->Setup("preferglsl", [this]() {148 bool enabled;149 CFG_GET_VAL("preferglsl", enabled);150 SetPreferGLSL(enabled);151 if (CRenderer::IsInitialised())152 g_Renderer.GetShadowMap().RecreateTexture();153 });154 155 147 m_ConfigHooks->Setup("shadowquality", []() { 156 148 if (CRenderer::IsInitialised()) … … 224 216 bool enabled; 225 217 CFG_GET_VAL("gpuskinning", enabled); 226 if (enabled && !m_PreferGLSL)227 LOGWARNING("GPUSkinning has been disabled, because it is not supported with PreferGLSL disabled.");218 if (enabled && ) 219 LOGWARNING("GPUSkinning has been disabled, because it is not supported with ."); 228 220 else if (enabled) 229 221 m_GPUSkinning = true; … … 259 251 } 260 252 261 void CRenderingOptions::SetPreferGLSL(bool value)262 {263 if (m_GPUSkinning && !value)264 {265 LOGWARNING("GPUSkinning have been disabled, because it is not supported with PreferGLSL disabled.");266 m_GPUSkinning = false;267 }268 else if (!m_GPUSkinning && value)269 CFG_GET_VAL("gpuskinning", m_GPUSkinning);270 271 m_PreferGLSL = value;272 if (!CRenderer::IsInitialised())273 return;274 g_Renderer.MakeShadersDirty();275 g_Renderer.RecomputeSystemShaderDefines();276 }277 278 253 void CRenderingOptions::SetRenderPath(RenderPath value) 279 254 { -
ps/trunk/source/renderer/RenderingOptions.h
r25996 r26069 99 99 OPTION_WITH_SIDE_EFFECT(Shadows, bool); 100 100 OPTION_WITH_SIDE_EFFECT(ShadowPCF, bool); 101 OPTION_WITH_SIDE_EFFECT(PreferGLSL, bool);102 101 OPTION_WITH_SIDE_EFFECT(Fog, bool); 103 102 -
ps/trunk/source/renderer/ShadowMap.cpp
r25712 r26069 35 35 #include "ps/CStrInternStatic.h" 36 36 #include "ps/Profile.h" 37 37 38 #include "renderer/DebugRenderer.h" 38 39 #include "renderer/Renderer.h" … … 128 129 CFG_GET_VAL("shadowscascadecount", CascadeCount); 129 130 130 if (CascadeCount < 1 || CascadeCount > MAX_CASCADE_COUNT || !g_RenderingOptions.GetPreferGLSL())131 if (CascadeCount < 1 || CascadeCount > MAX_CASCADE_COUNT || ) 131 132 CascadeCount = 1; 132 133 -
ps/trunk/source/renderer/TerrainRenderer.cpp
r26045 r26069 370 370 defines.Add(str_USE_REFLECTION, str_1); 371 371 372 m->fancyWaterTech = g_Renderer.GetShaderManager().LoadEffect( 373 str_water_high, g_Renderer.GetSystemShaderDefines(), defines); 372 m->fancyWaterTech = g_Renderer.GetShaderManager().LoadEffect(str_water_high, defines); 374 373 375 374 if (!m->fancyWaterTech) -
ps/trunk/source/renderer/WaterManager.cpp
r26045 r26069 31 31 #include "ps/CStrInternStatic.h" 32 32 #include "ps/Game.h" 33 33 34 #include "ps/World.h" 34 35 #include "renderer/WaterManager.h" … … 1091 1092 { 1092 1093 return 1093 m_RenderWater && g_ RenderingOptions.GetPreferGLSL()&&1094 m_RenderWater && g_ && 1094 1095 g_RenderingOptions.GetWaterEffects() && g_Renderer.GetCapabilities().m_PrettyWater; 1095 1096 } -
ps/trunk/source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.cpp
r25709 r26069 344 344 ID_JavaScript, 345 345 ID_CameraReset, 346 ID_RenderPathShaderARB,347 ID_RenderPathShaderGLSL,348 346 ID_DumpState, 349 347 ID_DumpBinaryState, … … 380 378 EVT_MENU(ID_DumpState, ScenarioEditor::OnDumpState) 381 379 EVT_MENU(ID_DumpBinaryState, ScenarioEditor::OnDumpState) 382 EVT_MENU(ID_RenderPathShaderARB, ScenarioEditor::OnRenderPath)383 EVT_MENU(ID_RenderPathShaderGLSL, ScenarioEditor::OnRenderPath)384 380 385 381 EVT_MENU(ID_Manual, ScenarioEditor::OnHelp) … … 500 496 menuSS->Append(ID_DumpState, _("&Dump to disk")); 501 497 menuSS->Append(ID_DumpBinaryState, _("Dump &binary to disk")); 502 503 wxMenu *menuRP = new wxMenu;504 menuMisc->AppendSubMenu(menuRP, _("Render &path"));505 menuRP->Append(ID_RenderPathShaderARB, _("Shader &ARB"));506 menuRP->Append(ID_RenderPathShaderGLSL, _("&Shader GLSL (default)"));507 498 } 508 499 … … 959 950 } 960 951 961 void ScenarioEditor::OnRenderPath(wxCommandEvent& event)962 {963 switch (event.GetId())964 {965 case ID_RenderPathShaderARB:966 POST_MESSAGE(SetViewParamS, (eRenderView::GAME, L"renderpath", L"shader"));967 POST_MESSAGE(SetViewParamB, (eRenderView::GAME, L"preferGLSL", false));968 break;969 case ID_RenderPathShaderGLSL:970 POST_MESSAGE(SetViewParamS, (eRenderView::GAME, L"renderpath", L"shader"));971 POST_MESSAGE(SetViewParamB, (eRenderView::GAME, L"preferGLSL", true));972 break;973 }974 }975 976 952 void ScenarioEditor::OnDumpState(wxCommandEvent& event) 977 953 { -
ps/trunk/source/tools/atlas/AtlasUI/ScenarioEditor/ScenarioEditor.h
r24361 r26069 1 /* Copyright (C) 20 17Wildfire Games.1 /* Copyright (C) 20 Wildfire Games. 2 2 * This file is part of 0 A.D. 3 3 * … … 58 58 void OnJavaScript(wxCommandEvent& event); 59 59 void OnCameraReset(wxCommandEvent& event); 60 void OnRenderPath(wxCommandEvent& event);61 60 void OnDumpState(wxCommandEvent& event); 62 61 void OnSelectedObjectsChange(const std::vector<AtlasMessage::ObjectID>& selectedObjects); -
ps/trunk/source/tools/atlas/GameInterface/View.cpp
r25960 r26069 284 284 else if (name == L"movetool") 285 285 m_DrawMoveTool = value; 286 else if (name == L"preferGLSL")287 g_RenderingOptions.SetPreferGLSL(value);288 286 } 289 287 … … 312 310 cmpPathfinder->SetAtlasOverlay(false); 313 311 } 314 }315 else if (name == L"renderpath")316 {317 g_RenderingOptions.SetRenderPath(RenderPathEnum::FromString(CStrW(value).ToUTF8()));318 312 } 319 313 }
Note:
See TracChangeset
for help on using the changeset viewer.