mirror of
https://github.com/redstrate/Novus.git
synced 2025-04-22 12:07:45 +00:00
Begin adding textures to the material editor
This commit is contained in:
parent
5667ce2b46
commit
2325fdbad0
3 changed files with 93 additions and 5 deletions
2
extern/libphysis
vendored
2
extern/libphysis
vendored
|
@ -1 +1 @@
|
|||
Subproject commit 60df89b0ee0989fc844a0b344229c5fdc60e3fb4
|
||||
Subproject commit 63051e0056a521d9165445fe6f6f1a2221dcea37
|
|
@ -8,6 +8,7 @@
|
|||
#include <QLineEdit>
|
||||
#include <QWidget>
|
||||
|
||||
#include <QTabWidget>
|
||||
#include <physis.hpp>
|
||||
|
||||
class MaterialPropertyEdit : public QWidget
|
||||
|
@ -24,8 +25,10 @@ private:
|
|||
|
||||
QVBoxLayout *m_itemsLayout = nullptr;
|
||||
QLineEdit *m_shaderPackageName = nullptr;
|
||||
QFrame *m_propertiesFrame = nullptr;
|
||||
|
||||
QTabWidget *m_tabWidget = nullptr;
|
||||
QVBoxLayout *m_propertiesLayout = nullptr;
|
||||
QVBoxLayout *m_texturesLayout = nullptr;
|
||||
|
||||
physis_Material m_material = {};
|
||||
physis_SHPK m_shpk = {};
|
||||
|
|
|
@ -344,10 +344,19 @@ MaterialPropertyEdit::MaterialPropertyEdit(GameData *data, QWidget *parent)
|
|||
auto selectShaderPackageButton = new QPushButton(i18n("Shaders…"));
|
||||
shaderPackageLayout->addWidget(selectShaderPackageButton);
|
||||
|
||||
m_propertiesFrame = new QFrame();
|
||||
m_tabWidget = new QTabWidget();
|
||||
m_itemsLayout->addWidget(m_tabWidget);
|
||||
|
||||
auto propertiesTab = new QWidget();
|
||||
m_propertiesLayout = new QVBoxLayout();
|
||||
m_propertiesFrame->setLayout(m_propertiesLayout);
|
||||
m_itemsLayout->addWidget(m_propertiesFrame);
|
||||
propertiesTab->setLayout(m_propertiesLayout);
|
||||
|
||||
auto texturesTab = new QWidget();
|
||||
m_texturesLayout = new QVBoxLayout();
|
||||
texturesTab->setLayout(m_texturesLayout);
|
||||
|
||||
m_tabWidget->addTab(propertiesTab, i18n("Parameters"));
|
||||
m_tabWidget->addTab(texturesTab, i18n("Textures"));
|
||||
|
||||
setLayout(m_itemsLayout);
|
||||
|
||||
|
@ -418,6 +427,82 @@ void MaterialPropertyEdit::rebuild()
|
|||
|
||||
layout->addRow(i18n("Value:"), label);
|
||||
}
|
||||
|
||||
child = nullptr;
|
||||
while ((child = m_texturesLayout->takeAt(0)) != nullptr) {
|
||||
child->widget()->setParent(nullptr);
|
||||
child->widget()->deleteLater();
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_material.num_samplers; i++) {
|
||||
const auto sampler = m_material.samplers[i];
|
||||
|
||||
QString name;
|
||||
switch (sampler.texture_usage) {
|
||||
case TextureUsage::Sampler:
|
||||
case TextureUsage::Sampler0:
|
||||
case TextureUsage::Sampler1:
|
||||
name = i18n("Generic");
|
||||
break;
|
||||
case TextureUsage::SamplerCatchlight:
|
||||
name = i18n("Catchlight");
|
||||
break;
|
||||
case TextureUsage::SamplerColorMap0:
|
||||
name = i18n("Color Map 0");
|
||||
break;
|
||||
case TextureUsage::SamplerColorMap1:
|
||||
name = i18n("Color Map 1");
|
||||
break;
|
||||
case TextureUsage::SamplerDiffuse:
|
||||
name = i18n("Diffuse");
|
||||
break;
|
||||
case TextureUsage::SamplerEnvMap:
|
||||
name = i18n("Environment Map");
|
||||
break;
|
||||
case TextureUsage::SamplerMask:
|
||||
name = i18n("Mask");
|
||||
break;
|
||||
case TextureUsage::SamplerNormal:
|
||||
name = i18n("Normal");
|
||||
break;
|
||||
case TextureUsage::SamplerNormalMap0:
|
||||
name = i18n("Normal Map 0");
|
||||
break;
|
||||
case TextureUsage::SamplerNormalMap1:
|
||||
name = i18n("Normal Map 1");
|
||||
break;
|
||||
case TextureUsage::SamplerReflection:
|
||||
name = i18n("Reflection");
|
||||
break;
|
||||
case TextureUsage::SamplerSpecular:
|
||||
name = i18n("Specular");
|
||||
break;
|
||||
case TextureUsage::SamplerSpecularMap0:
|
||||
name = i18n("Specular Map 0");
|
||||
break;
|
||||
case TextureUsage::SamplerSpecularMap1:
|
||||
name = i18n("Specular Map 1");
|
||||
break;
|
||||
case TextureUsage::SamplerWaveMap:
|
||||
name = i18n("Wave Map");
|
||||
break;
|
||||
case TextureUsage::SamplerWaveletMap0:
|
||||
name = i18n("Wavelet Map 0");
|
||||
break;
|
||||
case TextureUsage::SamplerWaveletMap1:
|
||||
name = i18n("Wavelet Map 1");
|
||||
break;
|
||||
case TextureUsage::SamplerWhitecapMap:
|
||||
name = i18n("Whitecap Map");
|
||||
break;
|
||||
default:
|
||||
name = i18n("Unknown");
|
||||
break;
|
||||
}
|
||||
|
||||
auto groupBox = new QGroupBox(name);
|
||||
m_texturesLayout->addWidget(groupBox);
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_materialpropertyedit.cpp"
|
||||
|
|
Loading…
Add table
Reference in a new issue