Better shadow type selection UI

master
krzys-h 2015-08-14 13:36:23 +02:00
parent 009b3abc03
commit 78a279b479
13 changed files with 123 additions and 152 deletions

View File

@ -444,13 +444,13 @@ msgstr ""
msgid "MSAA\\Multisample anti-aliasing"
msgstr ""
msgid "Simple shadows\\Shadows on the ground"
msgid "Simple shadows\\Shadows spots on the ground"
msgstr ""
msgid "Shadow mapping\\Beautiful shadows!"
msgid "Dynamic shadows\\Beautiful shadows!"
msgstr ""
msgid "Better shadow maps\\Shadow transparency and self shadowing"
msgid "Quality dynamic shadows\\Enable shadow transparency and self shadowing"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"

View File

@ -185,9 +185,6 @@ msgstr "Rückwärts\\Bewegung nach hinten"
msgid "Bad argument for \"new\""
msgstr "Falsche Argumente für \"new\""
msgid "Better shadow maps\\Shadow transparency and self shadowing"
msgstr ""
msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
msgstr "Einrücken mit 4 Leerstellen\\Einrücken mit 2 oder 4 Leerstellen"
@ -513,6 +510,9 @@ msgstr "Schmutz\\Schmutz auf Robotern und Bauten"
msgid "Dynamic lighting\\Mobile light sources"
msgstr "Dynamische Beleuchtung\\Dynamische Beleuchtung"
msgid "Dynamic shadows\\Beautiful shadows!"
msgstr ""
msgid "Edit the selected program"
msgstr "Gewähltes Programm bearbeiten"
@ -1183,6 +1183,9 @@ msgstr "Öffentlich\\Gemeinsamer Ordner für alle Spieler"
msgid "Quake at explosions\\The screen shakes at explosions"
msgstr "Beben bei Explosionen\\Die Kamera bebt bei Explosionen"
msgid "Quality dynamic shadows\\Enable shadow transparency and self shadowing"
msgstr ""
msgid "Quit\\Quit Colobot: Gold Edition"
msgstr ""
@ -1328,9 +1331,6 @@ msgstr "Astronauten auswählen\\Astronauten auswählen"
msgid "Semicolon terminator missing"
msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
@ -1362,7 +1362,7 @@ msgid "Sign \" : \" missing"
msgstr "Es fehlt ein Doppelpunkt \" : \""
#, fuzzy
msgid "Simple shadows\\Shadows on the ground"
msgid "Simple shadows\\Shadows spots on the ground"
msgstr "Schatten\\Schlagschatten auf dem Boden"
msgid "Size 1"

View File

@ -180,9 +180,6 @@ msgstr "Reculer\\Moteur en arrière"
msgid "Bad argument for \"new\""
msgstr "Mauvais argument pour \"new\""
msgid "Better shadow maps\\Shadow transparency and self shadowing"
msgstr ""
msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
msgstr "Grande indentation\\Indente avec 2 ou 4 espaces"
@ -508,6 +505,9 @@ msgstr "Salissures\\Salissures des robots et bâtiments"
msgid "Dynamic lighting\\Mobile light sources"
msgstr "Lumières dynamiques\\Éclairages mobiles"
msgid "Dynamic shadows\\Beautiful shadows!"
msgstr ""
msgid "Edit the selected program"
msgstr "Édite le programme sélectionné"
@ -1179,6 +1179,9 @@ msgstr "Public\\Dossier commun à tous les joueurs"
msgid "Quake at explosions\\The screen shakes at explosions"
msgstr "Secousses lors d'explosions\\L'écran vibre lors d'une explosion"
msgid "Quality dynamic shadows\\Enable shadow transparency and self shadowing"
msgstr ""
msgid "Quit\\Quit Colobot: Gold Edition"
msgstr ""
@ -1324,9 +1327,6 @@ msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute"
msgid "Semicolon terminator missing"
msgstr "Terminateur point-virgule non trouvé"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
@ -1358,7 +1358,7 @@ msgid "Sign \" : \" missing"
msgstr "Séparateur \" : \" attendu"
#, fuzzy
msgid "Simple shadows\\Shadows on the ground"
msgid "Simple shadows\\Shadows spots on the ground"
msgstr "Ombres\\Ombres projetées au sol"
msgid "Size 1"

View File

@ -188,9 +188,6 @@ msgstr "Wstecz\\Porusza do tyłu"
msgid "Bad argument for \"new\""
msgstr "Zły argument dla funkcji \"new\""
msgid "Better shadow maps\\Shadow transparency and self shadowing"
msgstr ""
msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
msgstr ""
"Duże wcięcie\\2 lub 4 spacje wcięcia na każdy poziom zdefiniowany przez "
@ -515,6 +512,9 @@ msgstr "Kurz\\Kurz i bród na robotach i budynkach"
msgid "Dynamic lighting\\Mobile light sources"
msgstr "Dynamiczne oświetlenie\\Ruchome źródła światła"
msgid "Dynamic shadows\\Beautiful shadows!"
msgstr ""
msgid "Edit the selected program"
msgstr "Edytuj zaznaczony program"
@ -1183,6 +1183,9 @@ msgstr "Publiczny\\Folder ogólnodostępny"
msgid "Quake at explosions\\The screen shakes at explosions"
msgstr "Wstrząsy przy wybuchach\\Ekran trzęsie się podczas wybuchów"
msgid "Quality dynamic shadows\\Enable shadow transparency and self shadowing"
msgstr ""
msgid "Quit\\Quit Colobot: Gold Edition"
msgstr "Wyjdź\\Kończy grę Colobot: Gold Edition"
@ -1326,9 +1329,6 @@ msgstr "Zaznacz astronautę\\Zaznacza astronautę"
msgid "Semicolon terminator missing"
msgstr "Brak średnika na końcu wiersza"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
@ -1359,7 +1359,8 @@ msgstr "Pokaż rozwiązanie"
msgid "Sign \" : \" missing"
msgstr "Brak znaku \" :\""
msgid "Simple shadows\\Shadows on the ground"
#, fuzzy
msgid "Simple shadows\\Shadows spots on the ground"
msgstr "Proste cienie\\Cienie na ziemi"
msgid "Size 1"

View File

@ -180,9 +180,6 @@ msgstr "Назад\\Двигаться назад"
msgid "Bad argument for \"new\""
msgstr "Неверный аргумент для \"new\""
msgid "Better shadow maps\\Shadow transparency and self shadowing"
msgstr ""
msgid "Big indent\\Indent 2 or 4 spaces per level defined by braces"
msgstr "Большой отступ\\Отступать на 2 или 4 пробела, в зависимости от скобок"
@ -507,6 +504,9 @@ msgstr "Пыль\\Пыль и грязь на ботах и зданиях"
msgid "Dynamic lighting\\Mobile light sources"
msgstr "Динамическое освещение\\Подвижные источники света"
msgid "Dynamic shadows\\Beautiful shadows!"
msgstr ""
msgid "Edit the selected program"
msgstr "Изменить выбранную программу"
@ -1179,6 +1179,9 @@ msgstr "Общее\\Общая папка"
msgid "Quake at explosions\\The screen shakes at explosions"
msgstr "Землетряс. при взрывах\\Тряска экрана при взрывах"
msgid "Quality dynamic shadows\\Enable shadow transparency and self shadowing"
msgstr ""
msgid "Quit\\Quit Colobot: Gold Edition"
msgstr ""
@ -1322,9 +1325,6 @@ msgstr "Выбор астронавта\\Выбор астронавта"
msgid "Semicolon terminator missing"
msgstr "Отсутствует точка с запятой"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
@ -1356,7 +1356,7 @@ msgid "Sign \" : \" missing"
msgstr "Знак \" : \" отсутствует"
#, fuzzy
msgid "Simple shadows\\Shadows on the ground"
msgid "Simple shadows\\Shadows spots on the ground"
msgstr "Тени\\Тени на земле"
msgid "Size 1"

View File

@ -193,7 +193,6 @@ void InitializeEventTypeTexts()
EVENT_TYPE_TEXT[EVENT_INTERFACE_FULL] = "EVENT_INTERFACE_FULL";
EVENT_TYPE_TEXT[EVENT_INTERFACE_APPLY] = "EVENT_INTERFACE_APPLY";
EVENT_TYPE_TEXT[EVENT_INTERFACE_SHADOW] = "EVENT_INTERFACE_SHADOW";
EVENT_TYPE_TEXT[EVENT_INTERFACE_DIRTY] = "EVENT_INTERFACE_DIRTY";
EVENT_TYPE_TEXT[EVENT_INTERFACE_LIGHT] = "EVENT_INTERFACE_LIGHT";
EVENT_TYPE_TEXT[EVENT_INTERFACE_PARTI] = "EVENT_INTERFACE_PARTI";
@ -219,6 +218,7 @@ void InitializeEventTypeTexts()
EVENT_TYPE_TEXT[EVENT_INTERFACE_TEXTURE_MIPMAP] = "EVENT_INTERFACE_TEXTURE_MIPMAP";
EVENT_TYPE_TEXT[EVENT_INTERFACE_TEXTURE_ANISOTROPY] = "EVENT_INTERFACE_TEXTURE_ANISOTROPY";
EVENT_TYPE_TEXT[EVENT_INTERFACE_MSAA] = "EVENT_INTERFACE_MSAA";
EVENT_TYPE_TEXT[EVENT_INTERFACE_SHADOW_SPOTS] = "EVENT_INTERFACE_SHADOW_SPOTS";
EVENT_TYPE_TEXT[EVENT_INTERFACE_SHADOW_MAPPING] = "EVENT_INTERFACE_SHADOW_MAPPING";
EVENT_TYPE_TEXT[EVENT_INTERFACE_SHADOW_MAPPING_QUALITY] = "EVENT_INTERFACE_SHADOW_MAPPING_QUALITY";
EVENT_TYPE_TEXT[EVENT_INTERFACE_SHADOW_MAPPING_BUFFER] = "EVENT_INTERFACE_SHADOW_MAPPING_BUFFER";

View File

@ -217,7 +217,7 @@ enum EventType
EVENT_INTERFACE_FULL = 442,
EVENT_INTERFACE_APPLY = 443,
EVENT_INTERFACE_SHADOW = 451,
EVENT_INTERFACE_SHADOW_SPOTS = 451,
EVENT_INTERFACE_DIRTY = 452,
EVENT_INTERFACE_LIGHT = 457,
EVENT_INTERFACE_PARTI = 458,

View File

@ -219,9 +219,9 @@ void InitializeRestext()
stringsEvent[EVENT_INTERFACE_TEXTURE_MIPMAP] = TR("Mipmap level\\Mipmap level");
stringsEvent[EVENT_INTERFACE_TEXTURE_ANISOTROPY]= TR("Anisotropy level\\Anisotropy level");
stringsEvent[EVENT_INTERFACE_MSAA] = TR("MSAA\\Multisample anti-aliasing");
stringsEvent[EVENT_INTERFACE_SHADOW] = TR("Simple shadows\\Shadows on the ground");
stringsEvent[EVENT_INTERFACE_SHADOW_MAPPING] = TR("Shadow mapping\\Beautiful shadows!");
stringsEvent[EVENT_INTERFACE_SHADOW_MAPPING_QUALITY]= TR("Better shadow maps\\Shadow transparency and self shadowing");
stringsEvent[EVENT_INTERFACE_SHADOW_SPOTS] = TR("Simple shadows\\Shadows spots on the ground");
stringsEvent[EVENT_INTERFACE_SHADOW_MAPPING] = TR("Dynamic shadows\\Beautiful shadows!");
stringsEvent[EVENT_INTERFACE_SHADOW_MAPPING_QUALITY]= TR("Quality dynamic shadows\\Enable shadow transparency and self shadowing");
stringsEvent[EVENT_INTERFACE_SHADOW_MAPPING_BUFFER] = TR("Shadow resolution\\Higher means better range and quality, but slower");
stringsEvent[EVENT_INTERFACE_KDEF] = TR("Standard controls\\Standard key functions");

View File

@ -81,7 +81,6 @@ void CSettings::SaveSettings()
GetConfigFile().SetIntProperty("Setup", "Autosave", main->GetAutosave());
GetConfigFile().SetIntProperty("Setup", "AutosaveInterval", main->GetAutosaveInterval());
GetConfigFile().SetIntProperty("Setup", "AutosaveSlots", main->GetAutosaveSlots());
GetConfigFile().SetIntProperty("Setup", "GroundShadow", engine->GetShadow());
GetConfigFile().SetIntProperty("Setup", "ObjectDirty", engine->GetDirty());
GetConfigFile().SetIntProperty("Setup", "FogMode", engine->GetFog());
GetConfigFile().SetIntProperty("Setup", "LightMode", engine->GetLightMode());
@ -174,9 +173,6 @@ void CSettings::LoadSettings()
if (GetConfigFile().GetIntProperty("Setup", "AutosaveSlots", iValue))
main->SetAutosaveSlots(iValue);
if (GetConfigFile().GetIntProperty("Setup", "GroundShadow", iValue))
engine->SetShadow(iValue);
if (GetConfigFile().GetIntProperty("Setup", "ObjectDirty", iValue))
engine->SetDirty(iValue);

View File

@ -108,7 +108,6 @@ CEngine::CEngine(CApplication *app, CSystemUtils* systemUtils)
m_render = true;
m_screenshotMode = false;
m_shadowVisible = true;
m_dirty = true;
m_fog = true;
m_secondTex = "";
@ -2583,16 +2582,6 @@ float CEngine::GetFocus()
return m_focus;
}
void CEngine::SetShadow(bool mode)
{
m_shadowVisible = mode;
}
bool CEngine::GetShadow()
{
return m_shadowVisible;
}
void CEngine::SetShadowColor(float value)
{
m_shadowColor = value;
@ -3207,9 +3196,9 @@ void CEngine::Draw3DScene()
if (!m_qualityShadows)
UseShadowMapping(false);
// Draws the shadows, if shadows enabled and shadow mapping disabled
if (m_shadowVisible && !m_shadowMapping)
DrawShadow();
// Draws the old-style shadow spots, if shadow mapping disabled
if (!m_shadowMapping)
DrawShadowSpots();
m_app->StopPerformanceCounter(PCNT_RENDER_TERRAIN);
@ -3829,7 +3818,7 @@ void CEngine::DrawInterface()
if (! m_objects[objRank].used)
continue;
if (m_shadowVisible && m_objects[objRank].type == ENG_OBJTYPE_TERRAIN)
if (m_objects[objRank].type == ENG_OBJTYPE_TERRAIN)
continue;
if (! m_objects[objRank].drawFront)
@ -4161,7 +4150,7 @@ void CEngine::UpdateGroundSpotTextures()
m_firstGroundSpot = false;
}
void CEngine::DrawShadow()
void CEngine::DrawShadowSpots()
{
m_device->SetRenderState(RENDER_STATE_DEPTH_WRITE, false);
m_device->SetRenderState(RENDER_STATE_LIGHTING, false);

View File

@ -956,13 +956,6 @@ public:
float GetFocus();
//@}
//@{
//! Management of the global mode of shading
// NOTE: This is an user configuration setting
void SetShadow(bool mode);
bool GetShadow();
//@}
//@{
//! Management of the global mode of contamination
// NOTE: This is an user configuration setting
@ -1198,8 +1191,8 @@ protected:
//! Updates the textures used for drawing ground spot
void UpdateGroundSpotTextures();
//! Draws shadows
void DrawShadow();
//! Draws old-style shadow spots
void DrawShadowSpots();
//! Draws the gradient background
void DrawBackground();
//! Draws the gradient background
@ -1381,7 +1374,6 @@ protected:
bool m_backForce;
float m_tracePrecision;
bool m_shadowVisible;
bool m_dirty;
bool m_fog;
float m_particleDensity;

View File

@ -2772,7 +2772,6 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
m_ui->GetLoadingScreen()->SetProgress(0.1f, RT_LOADING_LEVEL_SETTINGS);
int rankObj = 0;
int rankGadget = 0;
CObject* sel = 0;
/*

View File

@ -116,7 +116,7 @@ void CScreenSetupGraphics::CreateInterface()
pos.y = 0.65f;
ddim.x = dim.x*3;
ddim.y = dim.y*0.5f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW);
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW_SPOTS);
pc->SetState(STATE_SHADOW);
pos.y -= 0.048f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW_MAPPING);
@ -124,10 +124,6 @@ void CScreenSetupGraphics::CreateInterface()
pos.y -= 0.048f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW_MAPPING_QUALITY);
pc->SetState(STATE_SHADOW);
if (!m_engine->IsShadowMappingQualitySupported())
{
pc->ClearState(STATE_ENABLE);
}
pos.y -= 0.048f*1.5f;
ddim.x = dim.x*2.2f;
@ -139,7 +135,8 @@ void CScreenSetupGraphics::CreateInterface()
};
if (m_engine->GetDevice()->IsFramebufferSupported())
{
for(int i = 128; i <= m_engine->GetDevice()->GetMaxTextureSize(); i *= 2)
const int MAX_SHADOW_TEXTURE_SIZE = 8192;
for(int i = 128; i <= Math::Min(m_engine->GetDevice()->GetMaxTextureSize(), MAX_SHADOW_TEXTURE_SIZE); i *= 2)
shadowOptions[i] = StrUtils::ToString<int>(i)+"x"+StrUtils::ToString<int>(i);
pes->SetPossibleValues(shadowOptions);
}
@ -249,43 +246,42 @@ bool CScreenSetupGraphics::EventProcess(const Event &event)
switch( event.type )
{
case EVENT_INTERFACE_SHADOW:
m_engine->SetShadow(!m_engine->GetShadow());
case EVENT_INTERFACE_PARTI:
case EVENT_INTERFACE_CLIP:
ChangeSetupButtons();
UpdateSetupButtons();
break;
case EVENT_INTERFACE_DIRTY:
m_engine->SetDirty(!m_engine->GetDirty());
ChangeSetupButtons();
UpdateSetupButtons();
break;
case EVENT_INTERFACE_FOG:
m_engine->SetFog(!m_engine->GetFog());
m_camera->SetOverBaseColor(Gfx::Color(0.0f, 0.0f, 0.0f, 0.0f)); // TODO: color ok?
ChangeSetupButtons();
UpdateSetupButtons();
break;
case EVENT_INTERFACE_LIGHT:
m_engine->SetLightMode(!m_engine->GetLightMode());
ChangeSetupButtons();
UpdateSetupButtons();
break;
case EVENT_INTERFACE_PARTI:
case EVENT_INTERFACE_CLIP:
ChangeSetupButtons();
case EVENT_INTERFACE_SHADOW_SPOTS:
m_engine->SetShadowMapping(false);
m_engine->SetShadowMappingQuality(false);
UpdateSetupButtons();
break;
case EVENT_INTERFACE_SHADOW_MAPPING:
m_engine->SetShadowMapping(!m_engine->GetShadowMapping());
m_engine->SetShadowMapping(true);
m_engine->SetShadowMappingQuality(false);
UpdateSetupButtons();
break;
case EVENT_INTERFACE_SHADOW_MAPPING_QUALITY:
m_engine->SetShadowMappingQuality(!m_engine->GetShadowMappingQuality());
m_engine->SetShadowMapping(true);
m_engine->SetShadowMappingQuality(true);
UpdateSetupButtons();
break;
@ -330,6 +326,72 @@ void CScreenSetupGraphics::UpdateSetupButtons()
pw = static_cast<CWindow*>(m_interface->SearchControl(EVENT_WINDOW5));
if ( pw == 0 ) return;
pv = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_PARTI));
if ( pv != 0 )
{
value = m_engine->GetParticleDensity();
pv->SetValue(value);
}
pv = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_CLIP));
if ( pv != 0 )
{
value = m_engine->GetClippingDistance();
pv->SetValue(value);
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_DIRTY));
if ( pc != 0 )
{
pc->SetState(STATE_CHECK, m_engine->GetDirty());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_FOG));
if ( pc != 0 )
{
pc->SetState(STATE_CHECK, m_engine->GetFog());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_LIGHT));
if ( pc != 0 )
{
pc->SetState(STATE_CHECK, m_engine->GetLightMode());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_SPOTS));
if ( pc != 0 )
{
pc->SetState(STATE_CHECK, !m_engine->GetShadowMapping());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING));
if ( pc != 0 )
{
pc->SetState(STATE_ENABLE, m_engine->IsShadowMappingSupported());
pc->SetState(STATE_CHECK, m_engine->GetShadowMapping() && !m_engine->GetShadowMappingQuality());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING_QUALITY));
if ( pc != 0 )
{
pc->SetState(STATE_ENABLE, m_engine->IsShadowMappingQualitySupported());
pc->SetState(STATE_CHECK, m_engine->GetShadowMapping() && m_engine->GetShadowMappingQuality());
}
pes = static_cast<CEnumSlider*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING_BUFFER));
if ( pes != 0 )
{
pes->SetState(STATE_ENABLE, m_engine->GetShadowMapping() && m_engine->GetDevice()->IsFramebufferSupported());
if (!m_engine->GetShadowMappingOffscreen())
{
pes->SetVisibleValue(0);
}
else
{
pes->SetVisibleValue(m_engine->GetShadowMappingOffscreenResolution());
}
}
pes = static_cast<CEnumSlider*>(pw->SearchControl(EVENT_INTERFACE_TEXTURE_FILTER));
if ( pes != 0 )
{
@ -354,73 +416,6 @@ void CScreenSetupGraphics::UpdateSetupButtons()
{
pes->SetVisibleValue(m_engine->GetMultiSample());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING));
if ( pc != 0 )
{
pc->SetState(STATE_ENABLE, m_engine->IsShadowMappingSupported());
pc->SetState(STATE_CHECK, m_engine->GetShadowMapping());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING_QUALITY));
if ( pc != 0 )
{
pc->SetState(STATE_ENABLE, m_engine->GetShadowMapping() && m_engine->IsShadowMappingQualitySupported());
pc->SetState(STATE_CHECK, m_engine->GetShadowMapping() && m_engine->GetShadowMappingQuality());
}
pes = static_cast<CEnumSlider*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING_BUFFER));
if ( pes != 0 )
{
pes->SetState(STATE_ENABLE, m_engine->GetShadowMapping() && m_engine->GetDevice()->IsFramebufferSupported());
if (!m_engine->GetShadowMappingOffscreen())
{
pes->SetVisibleValue(0);
}
else
{
pes->SetVisibleValue(m_engine->GetShadowMappingOffscreenResolution());
}
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW));
if ( pc != 0 )
{
pc->SetState(STATE_ENABLE, !m_engine->GetShadowMapping());
pc->SetState(STATE_CHECK, !m_engine->GetShadowMapping() && m_engine->GetShadow());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_DIRTY));
if ( pc != 0 )
{
pc->SetState(STATE_CHECK, m_engine->GetDirty());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_FOG));
if ( pc != 0 )
{
pc->SetState(STATE_CHECK, m_engine->GetFog());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_LIGHT));
if ( pc != 0 )
{
pc->SetState(STATE_CHECK, m_engine->GetLightMode());
}
pv = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_PARTI));
if ( pv != 0 )
{
value = m_engine->GetParticleDensity();
pv->SetValue(value);
}
pv = static_cast<CEditValue*>(pw->SearchControl(EVENT_INTERFACE_CLIP));
if ( pv != 0 )
{
value = m_engine->GetClippingDistance();
pv->SetValue(value);
}
}
// Updates the engine function of the buttons after the setup phase.
@ -502,7 +497,6 @@ void CScreenSetupGraphics::ChangeSetupQuality(int quality)
float value;
bEnable = true; //(quality >= 0);
m_engine->SetShadow(bEnable);
m_engine->SetDirty(bEnable);
m_engine->SetFog(bEnable);
m_engine->SetLightMode(bEnable);