Updated SkinPreview to use SkinRenderer control and use it when double clicking a skin file

This commit is contained in:
miku-666
2023-10-29 12:16:29 +01:00
parent 6376d709c0
commit 884eeaef54
6 changed files with 30 additions and 50 deletions

View File

@@ -31,7 +31,7 @@ namespace PckStudio.Forms
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SkinPreview));
this.ModelView = new PckStudio.Rendering.Renderer3D();
this.ModelView = new PckStudio.Rendering.SkinRenderer();
this.SuspendLayout();
//
// ModelView
@@ -63,6 +63,6 @@ namespace PckStudio.Forms
#endregion
private PckStudio.Rendering.Renderer3D ModelView;
private PckStudio.Rendering.SkinRenderer ModelView;
}
}

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using PckStudio.Internal;
@@ -8,34 +9,26 @@ namespace PckStudio.Forms
{
public partial class SkinPreview : Form
{
Image Texture;
public SkinANIM ANIM { get; set; }
public SkinPreview(Image texture, SkinANIM anim)
private Image _texture;
public SkinPreview()
{
InitializeComponent();
Texture = texture;
//ModelView.ShowHead = !anim.GetFlag(SkinAnimFlag.HEAD_DISABLED);
//ModelView.ShowHeadOverlay = !anim.GetFlag(SkinAnimFlag.HEAD_OVERLAY_DISABLED);
//ModelView.ShowBody = !anim.GetFlag(SkinAnimFlag.BODY_DISABLED);
//ModelView.ShowBodyOverlay = !anim.GetFlag(SkinAnimFlag.BODY_OVERLAY_DISABLED);
//ModelView.ShowLeftArm = !anim.GetFlag(SkinAnimFlag.LEFT_ARM_DISABLED);
//ModelView.ShowLeftArmOverlay = !anim.GetFlag(SkinAnimFlag.LEFT_ARM_OVERLAY_DISABLED);
//ModelView.ShowRightArm = !anim.GetFlag(SkinAnimFlag.RIGHT_ARM_DISABLED);
//ModelView.ShowRightArmOverlay = !anim.GetFlag(SkinAnimFlag.RIGHT_ARM_OVERLAY_DISABLED);
//ModelView.ShowLeftLeg = !anim.GetFlag(SkinAnimFlag.LEFT_LEG_DISABLED);
//ModelView.ShowLeftLegOverlay = !anim.GetFlag(SkinAnimFlag.LEFT_LEG_OVERLAY_DISABLED);
//ModelView.ShowRightLeg = !anim.GetFlag(SkinAnimFlag.RIGHT_LEG_DISABLED);
//ModelView.ShowRightLegOverlay = !anim.GetFlag(SkinAnimFlag.RIGHT_LEG_OVERLAY_DISABLED);
}
private void SkinPreview_Load(object sender, EventArgs e) => RenderModel(Texture);
public void RenderModel(Image source)
public SkinPreview(Image texture, IEnumerable<SkinBOX> modelData)
: this()
{
//ModelView.Texture = source as Bitmap;
_texture = texture;
ModelView.ModelData.AddRange(modelData);
}
private void SkinPreview_Load(object sender, EventArgs e)
{
ModelView.ANIM = ANIM;
ModelView.Texture = _texture as Bitmap;
}
}
}

View File

@@ -146,7 +146,6 @@
this.imageList = new System.Windows.Forms.ImageList(this.components);
this.previewPictureBox = new PckStudio.ToolboxItems.InterpolationPictureBox();
this.LittleEndianCheckBox = new MetroFramework.Controls.MetroCheckBox();
this.skinRenderer3DToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
logoPictureBox = new System.Windows.Forms.PictureBox();
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
((System.ComponentModel.ISupportInitialize)(logoPictureBox)).BeginInit();
@@ -570,8 +569,7 @@
this.miscToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addCustomPackImageToolStripMenuItem,
this.openPckManagerToolStripMenuItem,
this.convertMusicFilesToolStripMenuItem,
this.skinRenderer3DToolStripMenuItem});
this.convertMusicFilesToolStripMenuItem});
this.miscToolStripMenuItem.ForeColor = System.Drawing.Color.Silver;
this.miscToolStripMenuItem.Name = "miscToolStripMenuItem";
resources.ApplyResources(this.miscToolStripMenuItem, "miscToolStripMenuItem");
@@ -1094,12 +1092,6 @@
this.LittleEndianCheckBox.Theme = MetroFramework.MetroThemeStyle.Dark;
this.LittleEndianCheckBox.UseSelectable = true;
//
// skinRenderer3DToolStripMenuItem
//
this.skinRenderer3DToolStripMenuItem.Name = "skinRenderer3DToolStripMenuItem";
resources.ApplyResources(this.skinRenderer3DToolStripMenuItem, "skinRenderer3DToolStripMenuItem");
this.skinRenderer3DToolStripMenuItem.Click += new System.EventHandler(this.skinRenderer3DToolStripMenuItem_Click);
//
// MainForm
//
this.ApplyImageInvert = true;
@@ -1250,7 +1242,6 @@
private System.Windows.Forms.ToolStripMenuItem forMattNLContributorToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem checkForUpdatesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem skinRenderer3DToolStripMenuItem;
}
}

View File

@@ -427,6 +427,11 @@ namespace PckStudio
public void HandleSkinFile(PckFileData file)
{
var renderForm = new SkinPreview(file.GetTexture(), file.Properties.GetProperties("BOX").Select(kv => SkinBOX.FromString(kv.Value)));
renderForm.ANIM = file.Properties.GetPropertyValue("ANIM", SkinANIM.FromString);
renderForm.ShowDialog();
return;
if (file.Properties.HasProperty("BOX"))
{
using generateModel generate = new generateModel(file);
@@ -439,10 +444,10 @@ namespace PckStudio
return;
}
var img = file.GetTexture();
using var skinViewer = new SkinPreview(img, file.Properties.GetPropertyValue("ANIM", SkinANIM.FromString));
skinViewer.ShowDialog(this);
}
var skinPreview = new SkinPreview(file.GetTexture(), file.Properties.GetProperties("BOX").Select(kv => SkinBOX.FromString(kv.Value)));
skinPreview.ANIM = file.Properties.GetPropertyValue("ANIM", SkinANIM.FromString);
skinPreview.ShowDialog();
}
public void HandleModelsFile(PckFileData file)
{
@@ -2278,11 +2283,5 @@ namespace PckStudio
}
MessageBox.Show("Already up to date.", "No update available");
}
private void skinRenderer3DToolStripMenuItem_Click(object sender, EventArgs e)
{
var gl = new TestGL();
gl.Show();
}
}
}

View File

@@ -87,7 +87,7 @@
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>
<StartupObject>PckStudio.Forms.TestGL</StartupObject>
<StartupObject>PckStudio.Program</StartupObject>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup>
@@ -558,9 +558,6 @@
<EmbeddedResource Include="Forms\Editor\TextureAtlasEditor.resx">
<DependentUpon>TextureAtlasEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\TestGL.resx">
<DependentUpon>TestGL.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.ja.resx">
<DependentUpon>MainForm.cs</DependentUpon>
<SubType>Designer</SubType>

View File

@@ -3,11 +3,11 @@
layout(location = 0) out vec4 color;
uniform sampler2D u_Texture;
uniform vec2 u_TexScale;
in vec2 v_TexCoord;
void main()
{
vec4 texColor = texture(u_Texture, v_TexCoord);
color = texColor;
color = texture(u_Texture, v_TexCoord * u_TexScale);
};