72 lines
2.0 KiB
C++
72 lines
2.0 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#include "gpu/gpu_renderer.h"
|
|
|
|
using namespace GS;
|
|
using namespace GS::GPU;
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
RegistryRValue Renderer::ProcessMessage(RegistryMessage m, const Registry *registry, const void *parm)
|
|
{
|
|
switch (m)
|
|
{
|
|
case RegistryMsg_StartKeyChangeBatch:
|
|
break;
|
|
|
|
case RegistryMsg_EndKeyChangeBatch:
|
|
if (pending_shadow_map_refresh)
|
|
CreateShadowMaps();
|
|
if (pending_core_shader_refresh)
|
|
LoadCoreShaders();
|
|
|
|
if (pending_technique_refresh)
|
|
SetRenderTechnique();
|
|
if (pending_fx_refresh)
|
|
SetPostProcess();
|
|
|
|
pending_shadow_map_refresh = false;
|
|
pending_core_shader_refresh = false;
|
|
pending_technique_refresh = false;
|
|
pending_fx_refresh = false;
|
|
break;
|
|
|
|
case RegistryMsg_KeyChange:
|
|
if (RegistryKeyChange *key = (RegistryKeyChange *)parm)
|
|
{
|
|
if ((key->key == "ShadowMapping:Enable") || (key->key == "ShadowMapping:Size"))
|
|
{
|
|
gpu_config.enable_shadow = registry->GetBool("ShadowMapping:Enable", true);
|
|
pending_shadow_map_refresh = true;
|
|
}
|
|
else if (key->key == "ShadowMapping:PSSM:Split")
|
|
{
|
|
pending_shadow_map_refresh = true;
|
|
pending_core_shader_refresh = true;
|
|
}
|
|
else if (key->key == "ShadowMapping:PCF:Quality")
|
|
pending_core_shader_refresh = true;
|
|
|
|
else if (key->key == "Texture:Float:Enable")
|
|
pending_technique_refresh = true;
|
|
else if (key->key == "Technique")
|
|
pending_technique_refresh = true;
|
|
else if (key->key.StartsWith("Antialiasing"))
|
|
pending_technique_refresh = true;
|
|
|
|
else if (key->key == "PostProcess:FX:Scale")
|
|
pending_fx_refresh = true;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
return RegistryReturn_Ok;
|
|
}
|
|
//------------------------------------------------------------------------------
|