Moved some interface controls around

master
krzys-h 2015-08-06 19:03:15 +02:00
parent ec3ded75b8
commit e05fba22fd
9 changed files with 122 additions and 107 deletions

View File

@ -324,9 +324,6 @@ msgstr ""
msgid "Robbie\\Your assistant"
msgstr ""
msgid "Simple shadows\\Shadows on the ground"
msgstr ""
msgid "Marks on the ground\\Marks on the ground"
msgstr ""
@ -423,13 +420,18 @@ msgstr ""
msgid "MSAA\\Multisample anti-aliasing"
msgstr ""
msgid ""
"Shadow mapping\\Shadow buffer resolution, higher is bigger range but slower"
msgid "Simple shadows\\Shadows on the ground"
msgstr ""
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Better shadow maps\\Shadow transparency and self shadowing"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
msgid "Standard controls\\Standard key functions"
msgstr ""

View File

@ -1311,8 +1311,10 @@ msgstr "Astronauten auswählen\\Astronauten auswählen"
msgid "Semicolon terminator missing"
msgstr "Es fehlt ein Strichpunkt \";\" am Ende der Anweisung"
msgid ""
"Shadow mapping\\Shadow buffer resolution, higher is bigger range but slower"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
msgid "Shield level"

View File

@ -1307,8 +1307,10 @@ msgstr "Sélectionner le cosmonaute\\Sélectionner le cosmonaute"
msgid "Semicolon terminator missing"
msgstr "Terminateur point-virgule non trouvé"
msgid ""
"Shadow mapping\\Shadow buffer resolution, higher is bigger range but slower"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
msgid "Shield level"

View File

@ -1311,8 +1311,10 @@ msgstr "Zaznacz astronautę\\Zaznacza astronautę"
msgid "Semicolon terminator missing"
msgstr "Brak średnika na końcu wiersza"
msgid ""
"Shadow mapping\\Shadow buffer resolution, higher is bigger range but slower"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
msgid "Shield level"

View File

@ -1305,8 +1305,10 @@ msgstr "Выбор астронавта\\Выбор астронавта"
msgid "Semicolon terminator missing"
msgstr "Отсутствует точка с запятой"
msgid ""
"Shadow mapping\\Shadow buffer resolution, higher is bigger range but slower"
msgid "Shadow mapping\\Beautiful shadows!"
msgstr ""
msgid "Shadow resolution\\Higher means better range and quality, but slower"
msgstr ""
msgid "Shield level"

View File

@ -227,6 +227,7 @@ void InitializeEventTypeTexts()
EVENT_TYPE_TEXT[EVENT_INTERFACE_MSAA] = "EVENT_INTERFACE_MSAA";
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";
EVENT_TYPE_TEXT[EVENT_INTERFACE_KINFO1] = "EVENT_INTERFACE_KINFO1";
EVENT_TYPE_TEXT[EVENT_INTERFACE_KINFO2] = "EVENT_INTERFACE_KINFO2";

View File

@ -249,6 +249,7 @@ enum EventType
EVENT_INTERFACE_MSAA = 786,
EVENT_INTERFACE_SHADOW_MAPPING = 787,
EVENT_INTERFACE_SHADOW_MAPPING_QUALITY = 788,
EVENT_INTERFACE_SHADOW_MAPPING_BUFFER = 789,
EVENT_INTERFACE_KINFO1 = 500,
EVENT_INTERFACE_KINFO2 = 501,

View File

@ -179,7 +179,6 @@ void InitializeRestext()
stringsEvent[EVENT_INTERFACE_APPLY] = TR("Apply changes\\Activates the changed settings");
stringsEvent[EVENT_INTERFACE_TOTO] = TR("Robbie\\Your assistant");
stringsEvent[EVENT_INTERFACE_SHADOW] = TR("Simple shadows\\Shadows on the ground");
stringsEvent[EVENT_INTERFACE_GROUND] = TR("Marks on the ground\\Marks on the ground");
stringsEvent[EVENT_INTERFACE_DIRTY] = TR("Dust\\Dust and dirt on bots and buildings");
stringsEvent[EVENT_INTERFACE_FOG] = TR("Fog\\Fog");
@ -212,8 +211,10 @@ 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_MAPPING] = TR("Shadow mapping\\Shadow buffer resolution, higher is bigger range but slower");
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_MAPPING_BUFFER] = TR("Shadow resolution\\Higher means better range and quality, but slower");
stringsEvent[EVENT_INTERFACE_KDEF] = TR("Standard controls\\Standard key functions");
assert(INPUT_SLOT_MAX < EVENT_INTERFACE_KEY_END-EVENT_INTERFACE_KEY);

View File

@ -67,9 +67,6 @@ void CScreenSetupGraphics::CreateInterface()
ddim.y = dim.y*0.5f;
pos.x = ox+sx*3;
pos.y = 0.65f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW);
pc->SetState(STATE_SHADOW);
pos.y -= 0.048f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_GROUND);
pc->SetState(STATE_SHADOW);
if ( m_simulationSetup )
@ -99,25 +96,6 @@ void CScreenSetupGraphics::CreateInterface()
pc->SetState(STATE_DEAD);
}
pos.x = ox+sx*3;
pos.y = 0.245f;
ddim.x = dim.x*2.2f;
ddim.y = 18.0f/480.0f;
pes = pw->CreateEnumSlider(pos, ddim, 0, EVENT_INTERFACE_MSAA);
pes->SetState(STATE_SHADOW);
std::vector<float> msaaOptions;
for(int i = 1; i <= m_engine->GetDevice()->GetMaxSamples(); i *= 2)
msaaOptions.push_back(i);
pes->SetPossibleValues(msaaOptions);
if(m_engine->GetDevice()->GetMaxSamples() < 2)
pes->ClearState(STATE_ENABLE);
pos.y += ddim.y/2;
pos.x += 0.005f;
ddim.x = 0.40f;
GetResource(RES_EVENT, EVENT_INTERFACE_MSAA, name);
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*8.5f;
pos.y = 0.65f;
ddim.x = dim.x*2.2f;
@ -167,7 +145,70 @@ void CScreenSetupGraphics::CreateInterface()
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL13, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*8.5f;
pos.y = 0.475f;
ddim.x = dim.x*3;
ddim.y = dim.y*0.5f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW);
pc->SetState(STATE_SHADOW);
pos.y -= 0.048f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW_MAPPING);
pc->SetState(STATE_SHADOW);
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;
ddim.y = 18.0f/480.0f;
pes = pw->CreateEnumSlider(pos, ddim, 0, EVENT_INTERFACE_SHADOW_MAPPING_BUFFER);
pes->SetState(STATE_SHADOW);
std::map<float, std::string> shadowOptions = {
{0, "Screen buffer"}
};
if (m_engine->GetDevice()->IsFramebufferSupported())
{
for(int i = 128; i <= m_engine->GetDevice()->GetMaxTextureSize(); i *= 2)
shadowOptions[i] = StrUtils::ToString<int>(i)+"x"+StrUtils::ToString<int>(i);
pes->SetPossibleValues(shadowOptions);
}
else
{
pes->ClearState(STATE_ENABLE);
}
pos.y += ddim.y/2;
pos.x += 0.005f;
ddim.x = 0.40f;
GetResource(RES_EVENT, EVENT_INTERFACE_SHADOW_MAPPING_BUFFER, name);
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*12.5f;
pos.y = 0.455f;
ddim.x = dim.x*2.2f;
ddim.y = 18.0f/480.0f;
pes = pw->CreateEnumSlider(pos, ddim, 0, EVENT_INTERFACE_MSAA);
pes->SetState(STATE_SHADOW);
std::vector<float> msaaOptions;
for(int i = 1; i <= m_engine->GetDevice()->GetMaxSamples(); i *= 2)
msaaOptions.push_back(i);
pes->SetPossibleValues(msaaOptions);
if(m_engine->GetDevice()->GetMaxSamples() < 2)
pes->ClearState(STATE_ENABLE);
pos.y += ddim.y/2;
pos.x += 0.005f;
ddim.x = 0.40f;
GetResource(RES_EVENT, EVENT_INTERFACE_MSAA, name);
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*12.5f;
pos.y = 0.385f;
ddim.x = dim.x*2.2f;
ddim.y = 18.0f/480.0f;
@ -185,7 +226,7 @@ void CScreenSetupGraphics::CreateInterface()
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*8.5f;
pos.x = ox+sx*12.5f;
pos.y = 0.315f;
ddim.x = dim.x*2.2f;
ddim.y = 18.0f/480.0f;
@ -199,7 +240,7 @@ void CScreenSetupGraphics::CreateInterface()
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*8.5f;
pos.x = ox+sx*12.5f;
pos.y = 0.245f;
ddim.x = dim.x*2.2f;
ddim.y = 18.0f/480.0f;
@ -219,47 +260,6 @@ void CScreenSetupGraphics::CreateInterface()
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*12.5;
pos.y = 0.385f;
ddim.x = dim.x*2.2f;
ddim.y = 18.0f/480.0f;
pes = pw->CreateEnumSlider(pos, ddim, 0, EVENT_INTERFACE_SHADOW_MAPPING);
pes->SetState(STATE_SHADOW);
std::map<float, std::string> shadowOptions = {
{ -1, "Disabled" },
};
if (m_engine->GetDevice()->IsFramebufferSupported())
{
for(int i = 128; i <= m_engine->GetDevice()->GetMaxTextureSize(); i *= 2)
shadowOptions[i] = StrUtils::ToString<int>(i)+"x"+StrUtils::ToString<int>(i);
}
else
{
shadowOptions[0] = "Screen buffer"; // TODO: Is this the proper name for this?
}
pes->SetPossibleValues(shadowOptions);
if (!m_engine->IsShadowMappingSupported())
{
pes->ClearState(STATE_ENABLE);
}
pos.y += ddim.y/2;
pos.x += 0.005f;
ddim.x = 0.40f;
GetResource(RES_EVENT, EVENT_INTERFACE_SHADOW_MAPPING, name);
pl = pw->CreateLabel(pos, ddim, 0, EVENT_LABEL12, name);
pl->SetTextAlign(Gfx::TEXT_ALIGN_LEFT);
pos.x = ox+sx*12.5;
pos.y = 0.315f;
ddim.x = dim.x*6;
ddim.y = dim.y*0.5f;
pc = pw->CreateCheck(pos, ddim, -1, EVENT_INTERFACE_SHADOW_MAPPING_QUALITY);
pc->SetState(STATE_SHADOW);
if (!m_engine->IsShadowMappingQualitySupported())
{
pes->ClearState(STATE_ENABLE);
}
ddim.x = dim.x*2;
ddim.y = dim.y*1;
pos.x = ox+sx*10;
@ -338,12 +338,8 @@ bool CScreenSetupGraphics::EventProcess(const Event &event)
ChangeSetupButtons();
break;
case EVENT_INTERFACE_TEXTURE_FILTER:
case EVENT_INTERFACE_TEXTURE_MIPMAP:
case EVENT_INTERFACE_TEXTURE_ANISOTROPY:
case EVENT_INTERFACE_MSAA:
case EVENT_INTERFACE_SHADOW_MAPPING:
ChangeSetupButtons();
m_engine->SetShadowMapping(!m_engine->GetShadowMapping());
UpdateSetupButtons();
break;
@ -352,6 +348,15 @@ bool CScreenSetupGraphics::EventProcess(const Event &event)
UpdateSetupButtons();
break;
case EVENT_INTERFACE_SHADOW_MAPPING_BUFFER:
case EVENT_INTERFACE_TEXTURE_FILTER:
case EVENT_INTERFACE_TEXTURE_MIPMAP:
case EVENT_INTERFACE_TEXTURE_ANISOTROPY:
case EVENT_INTERFACE_MSAA:
ChangeSetupButtons();
UpdateSetupButtons();
break;
case EVENT_INTERFACE_MIN:
ChangeSetupQuality(-1);
UpdateSetupButtons();
@ -409,21 +414,10 @@ void CScreenSetupGraphics::UpdateSetupButtons()
pes->SetVisibleValue(m_engine->GetMultiSample());
}
pes = static_cast<CEnumSlider*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING));
if ( pes != 0 )
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING));
if ( pc != 0 )
{
if (!m_engine->GetShadowMapping())
{
pes->SetVisibleValue(-1);
}
else if (!m_engine->GetShadowMappingOffscreen())
{
pes->SetVisibleValue(0);
}
else
{
pes->SetVisibleValue(m_engine->GetShadowMappingOffscreenResolution());
}
pc->SetState(STATE_CHECK, m_engine->GetShadowMapping());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING_QUALITY));
@ -433,6 +427,20 @@ void CScreenSetupGraphics::UpdateSetupButtons()
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 )
{
@ -565,22 +573,16 @@ void CScreenSetupGraphics::ChangeSetupButtons()
m_engine->SetMultiSample(static_cast<int>(value));
}
pes = static_cast<CEnumSlider*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING));
pes = static_cast<CEnumSlider*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING_BUFFER));
if ( pes != 0 )
{
value = pes->GetVisibleValue();
if(value == -1)
if(value == 0)
{
m_engine->SetShadowMapping(false);
}
else if(value == 0)
{
m_engine->SetShadowMapping(true);
m_engine->SetShadowMappingOffscreen(false);
}
else
{
m_engine->SetShadowMapping(true);
m_engine->SetShadowMappingOffscreen(true);
m_engine->SetShadowMappingOffscreenResolution(value);
}