Skip to content

Commit

Permalink
#5532: Start working on the deform page
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Feb 21, 2021
1 parent 9d10db9 commit d0c3793
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
26 changes: 26 additions & 0 deletions libs/materials/ParseLib.h
Expand Up @@ -66,4 +66,30 @@ inline std::string getStringForSortRequestValue(float value)
return std::string();
}

constexpr std::pair<const char*, Material::DeformType> DeformTypeNames[]
{
{ "sprite", Material::DEFORM_SPRITE },
{ "tube", Material::DEFORM_TUBE },
{ "flare", Material::DEFORM_FLARE },
{ "expand", Material::DEFORM_EXPAND },
{ "move", Material::DEFORM_MOVE },
{ "turbulent", Material::DEFORM_TURBULENT },
{ "eyeball", Material::DEFORM_EYEBALL },
{ "particle", Material::DEFORM_PARTICLE },
{ "particle2", Material::DEFORM_PARTICLE2 },
};

inline std::string getStringForDeformType(Material::DeformType type)
{
for (const auto& pair : DeformTypeNames)
{
if (type == pair.second)
{
return pair.first;
}
}

return std::string();
}

}
28 changes: 28 additions & 0 deletions radiant/ui/materials/MaterialEditor.cpp
Expand Up @@ -87,6 +87,7 @@ MaterialEditor::MaterialEditor() :
setupMaterialSurfaceFlags();
setupMaterialShaderFlags();
setupMaterialLightFlags();
setupMaterialDeformPage();

// Set the default size of the window
FitToScreen(0.8f, 0.6f);
Expand Down Expand Up @@ -287,6 +288,18 @@ void MaterialEditor::setupMaterialSurfaceFlags()
setupSurfaceFlag("MaterialSurfaceFlagNosteps", Material::SurfaceFlags::SURF_NOSTEPS);
}

void MaterialEditor::setupMaterialDeformPage()
{
auto* dropdown = getControl<wxChoice>("MaterialEditorDeformChoice");

dropdown->AppendString(_("None"));

for (const auto& pair : shaders::DeformTypeNames)
{
dropdown->AppendString(pair.first);
}
}

void MaterialEditor::setupMaterialStageView()
{
// Stage view
Expand Down Expand Up @@ -410,12 +423,27 @@ void MaterialEditor::updateMaterialPropertiesFromMaterial()
getControl<wxTextCtrl>("MaterialRenderBumpFlatArguments")->Enable(!_material->getRenderBumpFlatArguments().empty());
getControl<wxTextCtrl>("MaterialRenderBumpFlatArguments")->SetValue(_material->getRenderBumpFlatArguments());

// Deform
auto deformTypeName = shaders::getStringForDeformType(_material->getDeformType());
auto deformDropdown = getControl<wxChoice>("MaterialEditorDeformChoice");

if (!deformTypeName.empty())
{
deformDropdown->Select(deformDropdown->FindString(deformTypeName));
}
else
{
deformDropdown->Select(0);
}

// Surround the definition with curly braces, these are not included
auto definition = fmt::format("{0}\n{{{1}}}", _material->getName(), _material->getDefinition());
_sourceView->SetValue(definition);
}
else
{
getControl<wxChoice>("MaterialEditorDeformChoice")->Select(0);

getControl<wxCheckBox>("MaterialHasRenderBump")->SetValue(false);
getControl<wxTextCtrl>("MaterialRenderBumpArguments")->SetValue("");

Expand Down
1 change: 1 addition & 0 deletions radiant/ui/materials/MaterialEditor.h
Expand Up @@ -52,6 +52,7 @@ class MaterialEditor :
void setupMaterialSurfaceFlags();
void setupMaterialShaderFlags();
void setupMaterialLightFlags();
void setupMaterialDeformPage();
void setupSurfaceFlag(const std::string& controlName, Material::SurfaceFlags flag);
void setupMaterialFlag(const std::string& controlName, Material::Flags flag);
void updateControlsFromMaterial();
Expand Down

0 comments on commit d0c3793

Please sign in to comment.