summaryrefslogtreecommitdiff
path: root/lsmaterialeditors.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lsmaterialeditors.h408
1 files changed, 0 insertions, 408 deletions
diff --git a/lsmaterialeditors.h b/lsmaterialeditors.h
deleted file mode 100644
index 4dafe64..0000000
--- a/lsmaterialeditors.h
+++ /dev/null
@@ -1,408 +0,0 @@
-#ifndef LSMATERIALEDITORS_H
-#define LSMATERIALEDITORS_H
-
-#include "lsseteditor.h"
-#include "lyt/materials/material.h"
-#include <QLabel>
-#include <QComboBox>
-#include <QCheckBox>
-#include <QGridLayout>
-#include <QFormLayout>
-
-class LSTevStageEditor : public LSSetEntryEditorBase<LYTTevStage> {
- Q_OBJECT
-
- QComboBox *m_texCoord, *m_colour, *m_texMap;
- QCheckBox *m_disableTex;
-
- QComboBox *m_rasSwapMode, *m_texSwapMode;
-
- QComboBox *m_colourInA, *m_colourInB, *m_colourInC, *m_colourInD;
-
- QComboBox *m_colourOp, *m_colourBias, *m_colourScale, *m_colourOutReg;
- QCheckBox *m_colourClamp;
- QComboBox *m_colourConst;
-
- QComboBox *m_alphaInA, *m_alphaInB, *m_alphaInC, *m_alphaInD;
-
- QComboBox *m_alphaOp, *m_alphaBias, *m_alphaScale, *m_alphaOutReg;
- QCheckBox *m_alphaClamp;
- QComboBox *m_alphaConst;
-
- QComboBox *m_indStage, *m_indFormat, *m_indBias, *m_indMatrix;
- QComboBox *m_indWrapS, *m_indWrapT, *m_indAlphaSel;
- QCheckBox *m_indAddPrev, *m_indUtcLod;
-
-public:
- explicit LSTevStageEditor(QWidget *parent = 0) :
- LSSetEntryEditorBase(parent) {
-
- // Order
- m_texCoord = new QComboBox(this);
- m_texCoord->addItem("No TexCoord");
- for (int i = 0; i < 8; i++)
- m_texCoord->addItem(QString("TexCoord %1").arg(i));
-
- m_colour = new QComboBox(this);
- m_colour->addItem("Ignore Rasterised Colour");
- m_colour->addItem("Colour Channel 0");
- m_colour->addItem("Colour Channel 1");
- m_colour->addItem("Zero Colour");
- m_colour->addItem("Alpha Bump(?)");
- m_colour->addItem("Alpha BumpN(?)");
-
- m_texMap = new QComboBox(this);
- m_texMap->addItem("No TexMap");
- for (int i = 0; i < 8; i++)
- m_texMap->addItem(QString("TexMap %1").arg(i));
-
- m_disableTex = new QCheckBox("Disable Texture Lookup", this);
-
- // SwapModes
- m_rasSwapMode = new QComboBox(this);
- m_texSwapMode = new QComboBox(this);
- for (int i = 0; i < 4; i++) {
- m_rasSwapMode->addItem(QString("Swap Mode Table %1").arg(i));
- m_texSwapMode->addItem(QString("Swap Mode Table %1").arg(i));
- }
-
- // Colour in
- static const char *colIn[] = {
- "Colour Reg0", "Colour Reg1", "Colour Reg2", "Colour Reg3",
- "Alpha Reg0", "Alpha Reg1", "Alpha Reg2", "Alpha Reg3",
- "Texture Colour", "Texture Alpha",
- "Rasterised Colour", "Rasterised Alpha",
- "1.0", "0.5", "0.0", "Constant Colour"
- };
-
- m_colourInA = new QComboBox(this);
- m_colourInB = new QComboBox(this);
- m_colourInC = new QComboBox(this);
- m_colourInD = new QComboBox(this);
-
- for (int i = 0; i < 16; i++) {
- m_colourInA->addItem(colIn[i]);
- m_colourInB->addItem(colIn[i]);
- m_colourInC->addItem(colIn[i]);
- m_colourInD->addItem(colIn[i]);
- }
-
- // Colour op
- m_colourOp = new QComboBox(this);
- m_colourOp->addItem("Add: (d + ((1.0 - c)*a + c*b) + bias) * scale");
- m_colourOp->addItem("Sub: (d - ((1.0 - c)*a + c*b) + bias) * scale");
- m_colourOp->addItem("Comp_R8_GT: d + ((a[R] > b[R]) ? c : 0)");
- m_colourOp->addItem("Comp_R8_EQ: d + ((a[R] == b[R]) ? c : 0)");
- m_colourOp->addItem("Comp_GR16_GT: d + ((a[GR] > b[GR]) ? c : 0)");
- m_colourOp->addItem("Comp_GR16_EQ: d + ((a[GR] == b[GR]) ? c : 0)");
- m_colourOp->addItem("Comp_BGR24_GT: d + ((a[BGR] > b[BGR]) ? c : 0)");
- m_colourOp->addItem("Comp_BGR24_EQ: d + ((a[BGR] == b[BGR]) ? c : 0)");
- m_colourOp->addItem("Comp_RGB8_GT: Some crap");
- m_colourOp->addItem("Comp_RGB8_EQ: Some crap");
-
- m_colourBias = new QComboBox(this);
- m_colourBias->addItem("Zero");
- m_colourBias->addItem("+0.5");
- m_colourBias->addItem("-0.5");
-
- m_colourScale = new QComboBox(this);
- m_colourScale->addItem("x1");
- m_colourScale->addItem("x2");
- m_colourScale->addItem("x4");
- m_colourScale->addItem("x0.5");
-
- m_colourClamp = new QCheckBox("Clamp between 0.0 and 1.0", this);
-
- m_colourOutReg = new QComboBox(this);
- m_colourOutReg->addItem("Register 0");
- m_colourOutReg->addItem("Register 1");
- m_colourOutReg->addItem("Register 2");
- m_colourOutReg->addItem("Register 3 (Final output)");
-
- static const char *colConst[] = {
- "Constant 0", "Constant 1", "Constant 2", "Constant 3",
- "Const 0 Red", "Const 1 Red", "Const 2 Red", "Const 3 Red",
- "Const 0 Green", "Const 1 Green", "Const 2 Green", "Const 3 Green",
- "Const 0 Blue", "Const 1 Blue", "Const 2 Blue", "Const 3 Blue",
- "Const 0 Alpha", "Const 1 Alpha", "Const 2 Alpha", "Const 3 Alpha",
- "1.0", "0.875", "0.75", "0.625",
- "0.5", "0.375", "0.25", "0.125"
- };
- m_colourConst = new QComboBox(this);
- for (int i = 0; i < 28; i++)
- m_colourConst->addItem(colConst[i]);
-
- // Alpha in
- static const char *alphIn[] = {
- "Alpha Reg0", "Alpha Reg1", "Alpha Reg2", "Alpha Reg3",
- "Texture Alpha", "Rasterised Alpha",
- "0.0", "Constant alpha"
- };
-
- m_alphaInA = new QComboBox(this);
- m_alphaInB = new QComboBox(this);
- m_alphaInC = new QComboBox(this);
- m_alphaInD = new QComboBox(this);
-
- for (int i = 0; i < 8; i++) {
- m_alphaInA->addItem(alphIn[i]);
- m_alphaInB->addItem(alphIn[i]);
- m_alphaInC->addItem(alphIn[i]);
- m_alphaInD->addItem(alphIn[i]);
- }
-
- // alpha op
- m_alphaOp = new QComboBox(this);
- m_alphaOp->addItem("Add: (d + ((1.0 - c)*a + c*b) + bias) * scale");
- m_alphaOp->addItem("Sub: (d - ((1.0 - c)*a + c*b) + bias) * scale");
- m_alphaOp->addItem("Comp_R8_GT: d + ((a[R] > b[R]) ? c : 0)");
- m_alphaOp->addItem("Comp_R8_EQ: d + ((a[R] == b[R]) ? c : 0)");
- m_alphaOp->addItem("Comp_GR16_GT: d + ((a[GR] > b[GR]) ? c : 0)");
- m_alphaOp->addItem("Comp_GR16_EQ: d + ((a[GR] == b[GR]) ? c : 0)");
- m_alphaOp->addItem("Comp_BGR24_GT: d + ((a[BGR] > b[BGR]) ? c : 0)");
- m_alphaOp->addItem("Comp_BGR24_EQ: d + ((a[BGR] == b[BGR]) ? c : 0)");
- m_alphaOp->addItem("Comp_RGB8_GT: Some crap");
- m_alphaOp->addItem("Comp_RGB8_EQ: Some crap");
-
- m_alphaBias = new QComboBox(this);
- m_alphaBias->addItem("Zero");
- m_alphaBias->addItem("+0.5");
- m_alphaBias->addItem("-0.5");
-
- m_alphaScale = new QComboBox(this);
- m_alphaScale->addItem("x1");
- m_alphaScale->addItem("x2");
- m_alphaScale->addItem("x4");
- m_alphaScale->addItem("x0.5");
-
- m_alphaClamp = new QCheckBox("Clamp between 0.0 and 1.0", this);
-
- m_alphaOutReg = new QComboBox(this);
- m_alphaOutReg->addItem("Register 0");
- m_alphaOutReg->addItem("Register 1");
- m_alphaOutReg->addItem("Register 2");
- m_alphaOutReg->addItem("Register 3 (Final output)");
-
- static const char *alphConst[] = {
- "Const 0 Red", "Const 1 Red", "Const 2 Red", "Const 3 Red",
- "Const 0 Green", "Const 1 Green", "Const 2 Green", "Const 3 Green",
- "Const 0 Blue", "Const 1 Blue", "Const 2 Blue", "Const 3 Blue",
- "Const 0 Alpha", "Const 1 Alpha", "Const 2 Alpha", "Const 3 Alpha",
- "1.0", "0.875", "0.75", "0.625",
- "0.5", "0.375", "0.25", "0.125"
- };
- m_alphaConst = new QComboBox(this);
- for (int i = 0; i < 24; i++)
- m_alphaConst->addItem(alphConst[i]);
-
-
- // Indirect crap
- m_indStage = new QComboBox(this);
- for (int i = 0; i < 4; i++)
- m_indStage->addItem(QString("Stage %1").arg(i));
-
- m_indFormat = new QComboBox(this);
- m_indFormat->addItem("8 bits");
- m_indFormat->addItem("5 bits");
- m_indFormat->addItem("4 bits");
- m_indFormat->addItem("3 bits");
-
- m_indBias = new QComboBox(this);
- m_indBias->addItem("No bias");
- m_indBias->addItem("Bias S");
- m_indBias->addItem("Bias T");
- m_indBias->addItem("Bias S, T");
- m_indBias->addItem("Bias U");
- m_indBias->addItem("Bias S, U");
- m_indBias->addItem("Bias T, U");
- m_indBias->addItem("Bias S, T, U");
-
- m_indMatrix = new QComboBox(this);
- m_indMatrix->addItem("No matrix");
- m_indMatrix->addItem("Matrix 0");
- m_indMatrix->addItem("Matrix 1");
- m_indMatrix->addItem("Matrix 2");
- m_indMatrix->addItem("Matrix S0");
- m_indMatrix->addItem("Matrix S1");
- m_indMatrix->addItem("Matrix S2");
- m_indMatrix->addItem("Matrix T0");
- m_indMatrix->addItem("Matrix T1");
- m_indMatrix->addItem("Matrix T2");
-
- static const char *IndWraps[] = {
- "No wrap",
- "Wrap 256", "Wrap 128", "Wrap 64", "Wrap 32", "Wrap 16",
- "Zero"
- };
- m_indWrapS = new QComboBox(this);
- m_indWrapT = new QComboBox(this);
-
- for (int i = 0; i < 7; i++) {
- m_indWrapS->addItem(IndWraps[i]);
- m_indWrapT->addItem(IndWraps[i]);
- }
-
- m_indAddPrev = new QCheckBox("Add previous", this);
- m_indUtcLod = new QCheckBox("UTC LOD", this);
-
- m_indAlphaSel = new QComboBox(this);
- m_indAlphaSel->addItem("No bump alpha");
- m_indAlphaSel->addItem("From S");
- m_indAlphaSel->addItem("From T");
- m_indAlphaSel->addItem("From U");
-
- // Now put together the whole thing
- QFormLayout *layout = new QFormLayout(this);
-
- layout->addRow("Texture Map", m_texMap);
- layout->addWidget(m_disableTex);
- layout->addRow("Texture Coordinates", m_texCoord);
- layout->addRow("Rasterised Colour Channel", m_colour);
-
- layout->addRow("Texture Swap Mode Table", m_texSwapMode);
- layout->addRow("Rast. Swap Mode Table", m_rasSwapMode);
-
- layout->addWidget(new QLabel("<b>Colour Computation:</b>", this));
- layout->addRow("Input A", m_colourInA);
- layout->addRow("Input B", m_colourInB);
- layout->addRow("Input C", m_colourInC);
- layout->addRow("Input D", m_colourInD);
- layout->addRow("Constant", m_colourConst);
-
- layout->addRow("Equation", m_colourOp);
- layout->addRow("Bias", m_colourBias);
- layout->addRow("Scale", m_colourScale);
- layout->addWidget(m_colourClamp);
- layout->addRow("Output Register", m_colourOutReg);
-
- layout->addWidget(new QLabel("<b>Alpha Computation:</b>", this));
- layout->addRow("Input A", m_alphaInA);
- layout->addRow("Input B", m_alphaInB);
- layout->addRow("Input C", m_alphaInC);
- layout->addRow("Input D", m_alphaInD);
- layout->addRow("Constant", m_alphaConst);
-
- layout->addRow("Equation", m_alphaOp);
- layout->addRow("Bias", m_alphaBias);
- layout->addRow("Scale", m_alphaScale);
- layout->addWidget(m_alphaClamp);
- layout->addRow("Output Register", m_alphaOutReg);
-
- layout->addWidget(new QLabel("<b>Indirect Textures:</b>", this));
- layout->addRow("Indirect Stage", m_indStage);
- layout->addRow("Format", m_indFormat);
- layout->addRow("Bias", m_indBias);
- layout->addRow("Matrix", m_indMatrix);
- layout->addRow("Wrap S", m_indWrapS);
- layout->addRow("Wrap S", m_indWrapT);
- layout->addWidget(m_indAddPrev);
- layout->addWidget(m_indUtcLod);
- layout->addRow("Alpha Sel", m_indAlphaSel);
-
- }
-
- void loadEntryFrom(const LYTTevStage &entry) {
- m_texCoord->setCurrentIndex(entry.texCoord == 0xFF ? 0 : (entry.texCoord + 1));
-
- // TEV order
- quint8 actualTexMap = (entry.texMap & 0xFF);
- bool disableTexMap = (entry.texMap & 0x100) != 0;
- m_texMap->setCurrentIndex(actualTexMap == 0xFF ? 0 : (actualTexMap + 1));
- m_disableTex->setChecked(disableTexMap);
-
- static const int ColourIndices[] = {
- -1, -1, -1, -1, 1, 2, 3, 4, 5
- };
-
- if (entry.colour == 0xFF)
- m_colour->setCurrentIndex(0);
- else if (entry.colour > 8)
- m_colour->setCurrentIndex(-1);
- else
- m_colour->setCurrentIndex(ColourIndices[entry.colour]);
-
-
- // swapmode
- m_rasSwapMode->setCurrentIndex(entry.rasSwapMode);
- m_texSwapMode->setCurrentIndex(entry.texSwapMode);
-
- // colour in
- static const int ColInIndices[] = {
- 3, 7, 0, 4, 1, 5, 2, 6,
- 8, 9, 10, 11, 12, 13, 14, 15
- };
- m_colourInA->setCurrentIndex(ColInIndices[entry.colourInA]);
- m_colourInB->setCurrentIndex(ColInIndices[entry.colourInB]);
- m_colourInC->setCurrentIndex(ColInIndices[entry.colourInC]);
- m_colourInD->setCurrentIndex(ColInIndices[entry.colourInD]);
-
- // colour op
- static const int OpIndices[] = {
- 0, 1, -1, -1, -1, -1, -1, -1,
- 2, 3, 4, 5, 6, 7, 8, 9
- };
- m_colourOp->setCurrentIndex(OpIndices[entry.colourOp]);
-
- m_colourBias->setCurrentIndex(entry.colourBias);
- m_colourScale->setCurrentIndex(entry.colourScale);
- m_colourClamp->setChecked(entry.colourClamp);
-
- static const int RegIndices[] = {
- 3, 0, 1, 2
- };
- m_colourOutReg->setCurrentIndex(RegIndices[entry.colourOutReg]);
-
- static const int KCSelIndices[] = {
- 20, 21, 22, 23, 24, 25, 26, 27,
- -1, -1, -1, -1,
- 0, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
- };
- m_colourConst->setCurrentIndex(KCSelIndices[entry.colourConst]);
-
- // alpha in
- static const int AlphInIndices[] = {
- 3, 0, 1, 2, 4, 5, 6, 7,
- -1, -1, -1, -1, -1, -1, -1, -1
- };
- m_alphaInA->setCurrentIndex(AlphInIndices[entry.alphaInA]);
- m_alphaInB->setCurrentIndex(AlphInIndices[entry.alphaInB]);
- m_alphaInC->setCurrentIndex(AlphInIndices[entry.alphaInC]);
- m_alphaInD->setCurrentIndex(AlphInIndices[entry.alphaInD]);
-
- // alpha op
- m_alphaOp->setCurrentIndex(OpIndices[entry.alphaOp]);
-
- m_alphaBias->setCurrentIndex(entry.alphaBias);
- m_alphaScale->setCurrentIndex(entry.alphaScale);
- m_alphaClamp->setChecked(entry.alphaClamp);
-
- m_alphaOutReg->setCurrentIndex(RegIndices[entry.alphaOutReg]);
-
- static const int KASelIndices[] = {
- 16, 17, 18, 19, 20, 21, 22, 23,
- -1, -1, -1, -1, -1, -1, -1, -1,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- };
- m_alphaConst->setCurrentIndex(KCSelIndices[entry.alphaConst]);
-
-
- // indirect crap
- static const int IndMtxIndices[] = {
- 0, 1, 2, 3, -1, 4, 5, 6, -1, 7, 8, 9, -1, -1, -1, -1
- };
-
- m_indStage->setCurrentIndex(entry.indStage);
- m_indFormat->setCurrentIndex(entry.indFormat);
- m_indBias->setCurrentIndex(entry.indBias);
- m_indMatrix->setCurrentIndex(IndMtxIndices[entry.indMatrix]);
- m_indWrapS->setCurrentIndex(entry.indWrapS);
- m_indWrapT->setCurrentIndex(entry.indWrapT);
- m_indAddPrev->setChecked(entry.indAddPrev);
- m_indUtcLod->setChecked(entry.indUtcLod);
- m_indAlphaSel->setCurrentIndex(entry.indAlphaSel);
- }
-};
-
-
-#endif // LSMATERIALEDITORS_H