Apply fixes to gx2 editor
This commit is contained in:
parent
56eecea8d3
commit
0c58133531
@ -16,7 +16,19 @@ namespace FirstPlugin
|
|||||||
public string TexName;
|
public string TexName;
|
||||||
public uint TexWidth;
|
public uint TexWidth;
|
||||||
public uint TexHeight;
|
public uint TexHeight;
|
||||||
public uint MipCount;
|
|
||||||
|
private uint mipCount;
|
||||||
|
public uint MipCount
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (UseOriginalMips && MipCountOriginal >= 0) return (uint)MipCountOriginal;
|
||||||
|
else return mipCount;
|
||||||
|
}
|
||||||
|
set { mipCount = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int MipCountOriginal = -1;
|
||||||
public uint Depth = 1;
|
public uint Depth = 1;
|
||||||
public uint arrayLength = 1;
|
public uint arrayLength = 1;
|
||||||
public List<byte[]> DataBlockOutput = new List<byte[]>();
|
public List<byte[]> DataBlockOutput = new List<byte[]>();
|
||||||
@ -24,6 +36,7 @@ namespace FirstPlugin
|
|||||||
public GX2.GX2SurfaceFormat Format = (GX2.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
public GX2.GX2SurfaceFormat Format = (GX2.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
||||||
public bool GenerateMipmaps;
|
public bool GenerateMipmaps;
|
||||||
public bool IsSRGB;
|
public bool IsSRGB;
|
||||||
|
public bool UseOriginalMips = false;
|
||||||
public uint tileMode = 4;
|
public uint tileMode = 4;
|
||||||
|
|
||||||
public bool UseBc4Alpha;
|
public bool UseBc4Alpha;
|
||||||
|
@ -19,6 +19,7 @@ namespace FirstPlugin
|
|||||||
public bool OverrideMipCounter = false;
|
public bool OverrideMipCounter = false;
|
||||||
private STLabel dataSizeLbl;
|
private STLabel dataSizeLbl;
|
||||||
private STCheckBox chkBc4Alpha;
|
private STCheckBox chkBc4Alpha;
|
||||||
|
private STCheckBox chkOriginalMipCount;
|
||||||
bool IsLoaded = false;
|
bool IsLoaded = false;
|
||||||
|
|
||||||
public GTXTextureImporter()
|
public GTXTextureImporter()
|
||||||
@ -30,6 +31,7 @@ namespace FirstPlugin
|
|||||||
listViewCustom1.FullRowSelect = true;
|
listViewCustom1.FullRowSelect = true;
|
||||||
listViewCustom1.CanResizeList = true;
|
listViewCustom1.CanResizeList = true;
|
||||||
chkBc4Alpha.Visible = false;
|
chkBc4Alpha.Visible = false;
|
||||||
|
chkOriginalMipCount.Enabled = false;
|
||||||
|
|
||||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM);
|
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM);
|
||||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_SRGB);
|
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_SRGB);
|
||||||
@ -154,7 +156,7 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
private Thread Thread;
|
private Thread Thread;
|
||||||
|
|
||||||
public void SetupSettings(GTXImporterSettings setting)
|
public void SetupSettings(GTXImporterSettings setting, bool setFormat = true)
|
||||||
{
|
{
|
||||||
if (setting.Format == GX2.GX2SurfaceFormat.INVALID || SelectedIndex == -1)
|
if (setting.Format == GX2.GX2SurfaceFormat.INVALID || SelectedIndex == -1)
|
||||||
return;
|
return;
|
||||||
@ -162,7 +164,7 @@ namespace FirstPlugin
|
|||||||
if (Thread != null && Thread.IsAlive)
|
if (Thread != null && Thread.IsAlive)
|
||||||
Thread.Abort();
|
Thread.Abort();
|
||||||
|
|
||||||
if (formatComboBox.SelectedItem is GX2.GX2SurfaceFormat)
|
if (formatComboBox.SelectedItem is GX2.GX2SurfaceFormat && setFormat)
|
||||||
{
|
{
|
||||||
setting.Format = (GX2.GX2SurfaceFormat)formatComboBox.SelectedItem;
|
setting.Format = (GX2.GX2SurfaceFormat)formatComboBox.SelectedItem;
|
||||||
|
|
||||||
@ -176,6 +178,12 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
listViewCustom1.Items[SelectedIndex].SubItems[1].Text = setting.Format.ToString();
|
listViewCustom1.Items[SelectedIndex].SubItems[1].Text = setting.Format.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (setting.MipCountOriginal >= 0)
|
||||||
|
chkOriginalMipCount.Enabled = true;
|
||||||
|
else
|
||||||
|
chkOriginalMipCount.Enabled = false;
|
||||||
|
|
||||||
HeightLabel.Text = $"Height: {setting.TexHeight}";
|
HeightLabel.Text = $"Height: {setting.TexHeight}";
|
||||||
WidthLabel.Text = $"Width: {setting.TexWidth}";
|
WidthLabel.Text = $"Width: {setting.TexWidth}";
|
||||||
|
|
||||||
@ -282,18 +290,22 @@ namespace FirstPlugin
|
|||||||
|
|
||||||
SetupSettings(SelectedTexSettings);
|
SetupSettings(SelectedTexSettings);
|
||||||
|
|
||||||
// MipmapNum.Maximum = STGenericTexture.GenerateTotalMipCount(
|
|
||||||
// SelectedTexSettings.TexWidth, SelectedTexSettings.TexHeight) + 1;
|
|
||||||
|
|
||||||
//Force the mip counter to be the selected mip counter
|
//Force the mip counter to be the selected mip counter
|
||||||
//Some textures like bflim (used for UI) only have 1
|
//Some textures like bflim (used for UI) only have 1
|
||||||
if (OverrideMipCounter)
|
if (OverrideMipCounter || SelectedTexSettings.UseOriginalMips)
|
||||||
{
|
{
|
||||||
MipmapNum.Maximum = SelectedTexSettings.MipCount;
|
MipmapNum.Maximum = SelectedTexSettings.MipCountOriginal;
|
||||||
MipmapNum.Minimum = SelectedTexSettings.MipCount;
|
MipmapNum.Minimum = SelectedTexSettings.MipCountOriginal;
|
||||||
|
MipmapNum.Value = SelectedTexSettings.MipCountOriginal;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MipmapNum.Maximum = STGenericTexture.GenerateTotalMipCount(
|
||||||
|
SelectedTexSettings.TexWidth, SelectedTexSettings.TexHeight) + 1;
|
||||||
|
|
||||||
MipmapNum.Value = SelectedTexSettings.MipCount;
|
MipmapNum.Value = SelectedTexSettings.MipCount;
|
||||||
|
}
|
||||||
|
|
||||||
SwizzleNum.Value = SelectedTexSettings.SwizzlePattern;
|
SwizzleNum.Value = SelectedTexSettings.SwizzlePattern;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -349,6 +361,7 @@ namespace FirstPlugin
|
|||||||
this.pictureBox1 = new Toolbox.Library.Forms.PictureBoxCustom();
|
this.pictureBox1 = new Toolbox.Library.Forms.PictureBoxCustom();
|
||||||
this.dataSizeLbl = new Toolbox.Library.Forms.STLabel();
|
this.dataSizeLbl = new Toolbox.Library.Forms.STLabel();
|
||||||
this.chkBc4Alpha = new Toolbox.Library.Forms.STCheckBox();
|
this.chkBc4Alpha = new Toolbox.Library.Forms.STCheckBox();
|
||||||
|
this.chkOriginalMipCount = new Toolbox.Library.Forms.STCheckBox();
|
||||||
this.contentContainer.SuspendLayout();
|
this.contentContainer.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.SwizzleNum)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.SwizzleNum)).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.MipmapNum)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.MipmapNum)).BeginInit();
|
||||||
@ -357,6 +370,7 @@ namespace FirstPlugin
|
|||||||
//
|
//
|
||||||
// contentContainer
|
// contentContainer
|
||||||
//
|
//
|
||||||
|
this.contentContainer.Controls.Add(this.chkOriginalMipCount);
|
||||||
this.contentContainer.Controls.Add(this.chkBc4Alpha);
|
this.contentContainer.Controls.Add(this.chkBc4Alpha);
|
||||||
this.contentContainer.Controls.Add(this.dataSizeLbl);
|
this.contentContainer.Controls.Add(this.dataSizeLbl);
|
||||||
this.contentContainer.Controls.Add(this.SwizzleNum);
|
this.contentContainer.Controls.Add(this.SwizzleNum);
|
||||||
@ -394,10 +408,11 @@ namespace FirstPlugin
|
|||||||
this.contentContainer.Controls.SetChildIndex(this.SwizzleNum, 0);
|
this.contentContainer.Controls.SetChildIndex(this.SwizzleNum, 0);
|
||||||
this.contentContainer.Controls.SetChildIndex(this.dataSizeLbl, 0);
|
this.contentContainer.Controls.SetChildIndex(this.dataSizeLbl, 0);
|
||||||
this.contentContainer.Controls.SetChildIndex(this.chkBc4Alpha, 0);
|
this.contentContainer.Controls.SetChildIndex(this.chkBc4Alpha, 0);
|
||||||
|
this.contentContainer.Controls.SetChildIndex(this.chkOriginalMipCount, 0);
|
||||||
//
|
//
|
||||||
// SwizzleNum
|
// SwizzleNum
|
||||||
//
|
//
|
||||||
this.SwizzleNum.Location = new System.Drawing.Point(772, 177);
|
this.SwizzleNum.Location = new System.Drawing.Point(772, 204);
|
||||||
this.SwizzleNum.Maximum = new decimal(new int[] {
|
this.SwizzleNum.Maximum = new decimal(new int[] {
|
||||||
7,
|
7,
|
||||||
0,
|
0,
|
||||||
@ -411,7 +426,7 @@ namespace FirstPlugin
|
|||||||
// label5
|
// label5
|
||||||
//
|
//
|
||||||
this.label5.AutoSize = true;
|
this.label5.AutoSize = true;
|
||||||
this.label5.Location = new System.Drawing.Point(664, 177);
|
this.label5.Location = new System.Drawing.Point(664, 204);
|
||||||
this.label5.Name = "label5";
|
this.label5.Name = "label5";
|
||||||
this.label5.Size = new System.Drawing.Size(82, 13);
|
this.label5.Size = new System.Drawing.Size(82, 13);
|
||||||
this.label5.TabIndex = 43;
|
this.label5.TabIndex = 43;
|
||||||
@ -472,7 +487,7 @@ namespace FirstPlugin
|
|||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
this.label1.AutoSize = true;
|
this.label1.AutoSize = true;
|
||||||
this.label1.Location = new System.Drawing.Point(664, 153);
|
this.label1.Location = new System.Drawing.Point(664, 180);
|
||||||
this.label1.Name = "label1";
|
this.label1.Name = "label1";
|
||||||
this.label1.Size = new System.Drawing.Size(58, 13);
|
this.label1.Size = new System.Drawing.Size(58, 13);
|
||||||
this.label1.TabIndex = 37;
|
this.label1.TabIndex = 37;
|
||||||
@ -480,7 +495,7 @@ namespace FirstPlugin
|
|||||||
//
|
//
|
||||||
// MipmapNum
|
// MipmapNum
|
||||||
//
|
//
|
||||||
this.MipmapNum.Location = new System.Drawing.Point(772, 151);
|
this.MipmapNum.Location = new System.Drawing.Point(772, 178);
|
||||||
this.MipmapNum.Maximum = new decimal(new int[] {
|
this.MipmapNum.Maximum = new decimal(new int[] {
|
||||||
13,
|
13,
|
||||||
0,
|
0,
|
||||||
@ -494,7 +509,7 @@ namespace FirstPlugin
|
|||||||
// WidthLabel
|
// WidthLabel
|
||||||
//
|
//
|
||||||
this.WidthLabel.AutoSize = true;
|
this.WidthLabel.AutoSize = true;
|
||||||
this.WidthLabel.Location = new System.Drawing.Point(664, 254);
|
this.WidthLabel.Location = new System.Drawing.Point(664, 281);
|
||||||
this.WidthLabel.Name = "WidthLabel";
|
this.WidthLabel.Name = "WidthLabel";
|
||||||
this.WidthLabel.Size = new System.Drawing.Size(35, 13);
|
this.WidthLabel.Size = new System.Drawing.Size(35, 13);
|
||||||
this.WidthLabel.TabIndex = 35;
|
this.WidthLabel.TabIndex = 35;
|
||||||
@ -503,7 +518,7 @@ namespace FirstPlugin
|
|||||||
// HeightLabel
|
// HeightLabel
|
||||||
//
|
//
|
||||||
this.HeightLabel.AutoSize = true;
|
this.HeightLabel.AutoSize = true;
|
||||||
this.HeightLabel.Location = new System.Drawing.Point(664, 217);
|
this.HeightLabel.Location = new System.Drawing.Point(664, 244);
|
||||||
this.HeightLabel.Name = "HeightLabel";
|
this.HeightLabel.Name = "HeightLabel";
|
||||||
this.HeightLabel.Size = new System.Drawing.Size(38, 13);
|
this.HeightLabel.Size = new System.Drawing.Size(38, 13);
|
||||||
this.HeightLabel.TabIndex = 34;
|
this.HeightLabel.TabIndex = 34;
|
||||||
@ -586,7 +601,7 @@ namespace FirstPlugin
|
|||||||
// dataSizeLbl
|
// dataSizeLbl
|
||||||
//
|
//
|
||||||
this.dataSizeLbl.AutoSize = true;
|
this.dataSizeLbl.AutoSize = true;
|
||||||
this.dataSizeLbl.Location = new System.Drawing.Point(664, 291);
|
this.dataSizeLbl.Location = new System.Drawing.Point(664, 318);
|
||||||
this.dataSizeLbl.Name = "dataSizeLbl";
|
this.dataSizeLbl.Name = "dataSizeLbl";
|
||||||
this.dataSizeLbl.Size = new System.Drawing.Size(56, 13);
|
this.dataSizeLbl.Size = new System.Drawing.Size(56, 13);
|
||||||
this.dataSizeLbl.TabIndex = 45;
|
this.dataSizeLbl.TabIndex = 45;
|
||||||
@ -604,12 +619,23 @@ namespace FirstPlugin
|
|||||||
this.chkBc4Alpha.Visible = false;
|
this.chkBc4Alpha.Visible = false;
|
||||||
this.chkBc4Alpha.CheckedChanged += new System.EventHandler(this.chkBc4Alpha_CheckedChanged);
|
this.chkBc4Alpha.CheckedChanged += new System.EventHandler(this.chkBc4Alpha_CheckedChanged);
|
||||||
//
|
//
|
||||||
|
// chkOriginalMipCount
|
||||||
|
//
|
||||||
|
this.chkOriginalMipCount.AutoSize = true;
|
||||||
|
this.chkOriginalMipCount.Location = new System.Drawing.Point(667, 154);
|
||||||
|
this.chkOriginalMipCount.Name = "chkOriginalMipCount";
|
||||||
|
this.chkOriginalMipCount.Size = new System.Drawing.Size(134, 17);
|
||||||
|
this.chkOriginalMipCount.TabIndex = 47;
|
||||||
|
this.chkOriginalMipCount.Text = "Use Original Mip Count";
|
||||||
|
this.chkOriginalMipCount.UseVisualStyleBackColor = true;
|
||||||
|
this.chkOriginalMipCount.CheckedChanged += new System.EventHandler(this.chkOriginalMipCount_CheckedChanged);
|
||||||
|
//
|
||||||
// GTXTextureImporter
|
// GTXTextureImporter
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(986, 516);
|
this.ClientSize = new System.Drawing.Size(986, 516);
|
||||||
this.Text = "GTXTextureImporter";
|
this.Text = "GX2 Texture Importer";
|
||||||
this.contentContainer.ResumeLayout(false);
|
this.contentContainer.ResumeLayout(false);
|
||||||
this.contentContainer.PerformLayout();
|
this.contentContainer.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.SwizzleNum)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.SwizzleNum)).EndInit();
|
||||||
@ -651,7 +677,7 @@ namespace FirstPlugin
|
|||||||
else
|
else
|
||||||
settings[index].MipCount = 1;
|
settings[index].MipCount = 1;
|
||||||
|
|
||||||
SetupSettings(settings[index]);
|
SetupSettings(settings[index], false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -662,9 +688,18 @@ namespace FirstPlugin
|
|||||||
foreach (int index in listViewCustom1.SelectedIndices)
|
foreach (int index in listViewCustom1.SelectedIndices)
|
||||||
{
|
{
|
||||||
settings[index].UseBc4Alpha = chkBc4Alpha.Checked;
|
settings[index].UseBc4Alpha = chkBc4Alpha.Checked;
|
||||||
SetupSettings(settings[index]);
|
SetupSettings(settings[index], false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void chkOriginalMipCount_CheckedChanged(object sender, EventArgs e) {
|
||||||
|
if (!IsLoaded)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (int index in listViewCustom1.SelectedIndices) {
|
||||||
|
settings[index].UseOriginalMips = chkOriginalMipCount.Checked;
|
||||||
|
SetupSettings(settings[index], false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user