mirror of
https://github.com/KillzXGaming/Switch-Toolbox
synced 2024-11-22 20:43:09 +00:00
Add support for previewing bffnt with text.
Thanks to EFE as it's basically like how CFFNT works.
This commit is contained in:
parent
c7d2a5d8eb
commit
6fdafddfdc
5 changed files with 449 additions and 38 deletions
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows.Forms;
|
||||
using Toolbox.Library;
|
||||
using System.IO;
|
||||
|
@ -10,6 +10,8 @@ using Toolbox.Library.IO;
|
|||
using Toolbox.Library.Forms;
|
||||
using System.Drawing;
|
||||
using FirstPlugin.Forms;
|
||||
using LibEveryFileExplorer.GFX;
|
||||
using System.Drawing.Imaging;
|
||||
|
||||
namespace FirstPlugin
|
||||
{
|
||||
|
@ -284,6 +286,72 @@ namespace FirstPlugin
|
|||
reader.Seek(-4, SeekOrigin.Current);
|
||||
return Signature;
|
||||
}
|
||||
|
||||
public BitmapFont GetBitmapFont()
|
||||
{
|
||||
var FontInfo = FontSection;
|
||||
var TextureGlyph = FontInfo.TextureGlyph;
|
||||
|
||||
BitmapFont f = new BitmapFont();
|
||||
f.LineHeight = FontInfo.LineFeed;
|
||||
Bitmap[] Chars = new Bitmap[TextureGlyph.LinesCount * TextureGlyph.RowCount * TextureGlyph.SheetCount];
|
||||
|
||||
float realcellwidth = TextureGlyph.CellWidth + 1;
|
||||
float realcellheight = TextureGlyph.CellHeight + 1;
|
||||
|
||||
int j = 0;
|
||||
for (int sheet = 0; sheet < TextureGlyph.SheetCount; sheet++)
|
||||
{
|
||||
Bitmap SheetBM = TextureGlyph.GetImageSheet(sheet).GetBitmap();
|
||||
SheetBM.RotateFlip(RotateFlipType.RotateNoneFlipY);
|
||||
BitmapData bd = SheetBM.LockBits(new Rectangle(0, 0, SheetBM.Width, SheetBM.Height),
|
||||
ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
|
||||
|
||||
for (int y = 0; y < TextureGlyph.LinesCount; y++)
|
||||
{
|
||||
for (int x = 0; x < TextureGlyph.RowCount; x++)
|
||||
{
|
||||
Bitmap b = new Bitmap(TextureGlyph.CellWidth, TextureGlyph.CellHeight);
|
||||
BitmapData bd2 = b.LockBits(new Rectangle(0, 0, b.Width, b.Height),
|
||||
ImageLockMode.WriteOnly,PixelFormat.Format32bppArgb);
|
||||
|
||||
for (int y2 = 0; y2 < TextureGlyph.CellHeight; y2++)
|
||||
{
|
||||
for (int x2 = 0; x2 < TextureGlyph.CellWidth; x2++)
|
||||
{
|
||||
Marshal.WriteInt32(bd2.Scan0, y2 * bd2.Stride + x2 * 4,
|
||||
Marshal.ReadInt32(bd.Scan0, (int)(y * realcellheight + y2 + 1) *
|
||||
bd.Stride + (int)(x * realcellwidth + x2 + 1) * 4));
|
||||
}
|
||||
}
|
||||
b.UnlockBits(bd2);
|
||||
Chars[j++] = b;
|
||||
}
|
||||
}
|
||||
SheetBM.UnlockBits(bd);
|
||||
}
|
||||
|
||||
foreach (var charMap in FontInfo.CodeMapDictionary)
|
||||
{
|
||||
var idx = charMap.Value;
|
||||
if (idx == 0xFFFF) continue;
|
||||
var info = GetCharWidthInfoByIndex(FontInfo, (ushort)idx);
|
||||
|
||||
f.Characters.Add(charMap.Key, new BitmapFont.Character(Chars[idx], info.Left, info.GlyphWidth, info.CharWidth));
|
||||
}
|
||||
|
||||
return f;
|
||||
}
|
||||
|
||||
private CharacterWidthEntry GetCharWidthInfoByIndex(FINF fontInfo, UInt16 Index)
|
||||
{
|
||||
foreach (var v in fontInfo.CharacterWidths)
|
||||
{
|
||||
if (Index < v.StartIndex || Index > v.EndIndex) continue;
|
||||
return v.WidthEntries[Index - v.StartIndex];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
//Kerning Table
|
||||
|
@ -784,8 +852,8 @@ namespace FirstPlugin
|
|||
public uint SheetSize { get; set; }
|
||||
public ushort BaseLinePos { get; set; }
|
||||
public ushort Format { get; set; }
|
||||
public ushort ColumnCount { get; set; }
|
||||
public ushort RowCount { get; set; }
|
||||
public ushort LinesCount { get; set; }
|
||||
public ushort SheetWidth { get; set; }
|
||||
public ushort SheetHeight { get; set; }
|
||||
public List<byte[]> SheetDataList = new List<byte[]>();
|
||||
|
@ -803,8 +871,8 @@ namespace FirstPlugin
|
|||
SheetSize = reader.ReadUInt32();
|
||||
BaseLinePos = reader.ReadUInt16();
|
||||
Format = reader.ReadUInt16();
|
||||
ColumnCount = reader.ReadUInt16();
|
||||
RowCount = reader.ReadUInt16();
|
||||
LinesCount = reader.ReadUInt16();
|
||||
SheetWidth = reader.ReadUInt16();
|
||||
SheetHeight = reader.ReadUInt16();
|
||||
uint sheetOffset = reader.ReadUInt32();
|
||||
|
@ -838,8 +906,8 @@ namespace FirstPlugin
|
|||
writer.Write(SheetDataList[0].Length);
|
||||
writer.Write(BaseLinePos);
|
||||
writer.Write(Format);
|
||||
writer.Write(ColumnCount);
|
||||
writer.Write(RowCount);
|
||||
writer.Write(LinesCount);
|
||||
writer.Write(SheetWidth);
|
||||
writer.Write(SheetHeight);
|
||||
long _ofsSheetBlocks = writer.Position;
|
||||
|
@ -917,6 +985,30 @@ namespace FirstPlugin
|
|||
Scan,
|
||||
}
|
||||
|
||||
public ushort GetIndexFromCode(ushort code)
|
||||
{
|
||||
if (code < CharacterCodeBegin || code > CharacterCodeEnd) return 0xFFFF;
|
||||
|
||||
switch (MappingMethod)
|
||||
{
|
||||
case Mapping.Direct:
|
||||
return (UInt16)(code - CharacterCodeBegin + ((CMAPDirect)MappingData).Offset);
|
||||
case Mapping.Table:
|
||||
return (ushort)((CMAPIndexTable)MappingData).Table[code - CharacterCodeBegin];
|
||||
case Mapping.Scan:
|
||||
if (!((CMAPScanMapping)MappingData).Codes.Contains(code)) return 0xFFFF;
|
||||
else
|
||||
{
|
||||
var codes = ((CMAPScanMapping)MappingData).Codes;
|
||||
var index = Array.FindIndex(codes, map => map == code);
|
||||
|
||||
return (ushort)((CMAPScanMapping)MappingData).Indexes[index];
|
||||
}
|
||||
}
|
||||
|
||||
return 0xFFFF;
|
||||
}
|
||||
|
||||
public CMAP NextCodeMapSection { get; set; }
|
||||
|
||||
public void Read(FileReader reader, FFNT header, List<CMAP> CodeMaps)
|
||||
|
@ -1148,9 +1240,9 @@ namespace FirstPlugin
|
|||
for (ushort i = StartIndex; i <= EndIndex; i++)
|
||||
{
|
||||
var entry = new CharacterWidthEntry();
|
||||
entry.LeftWidth = reader.ReadSByte();
|
||||
entry.Left = reader.ReadSByte();
|
||||
entry.GlyphWidth = reader.ReadByte();
|
||||
entry.Width = reader.ReadByte();
|
||||
entry.CharWidth = reader.ReadByte();
|
||||
WidthEntries.Add(entry);
|
||||
}
|
||||
|
||||
|
@ -1181,9 +1273,9 @@ namespace FirstPlugin
|
|||
|
||||
for (int i = 0; i < WidthEntries.Count; i++)
|
||||
{
|
||||
writer.Write(WidthEntries[i].LeftWidth);
|
||||
writer.Write(WidthEntries[i].Left);
|
||||
writer.Write(WidthEntries[i].GlyphWidth);
|
||||
writer.Write(WidthEntries[i].Width);
|
||||
writer.Write(WidthEntries[i].CharWidth);
|
||||
}
|
||||
|
||||
writer.Align(4);
|
||||
|
@ -1205,8 +1297,8 @@ namespace FirstPlugin
|
|||
|
||||
public class CharacterWidthEntry
|
||||
{
|
||||
public sbyte LeftWidth { get; set; }
|
||||
public sbyte Left { get; set; }
|
||||
public byte GlyphWidth { get; set; }
|
||||
public byte Width { get; set; }
|
||||
public byte CharWidth { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
114
File_Format_Library/GUI/BFFNT/BffntEditor.Designer.cs
generated
114
File_Format_Library/GUI/BFFNT/BffntEditor.Designer.cs
generated
|
@ -29,6 +29,7 @@
|
|||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BffntEditor));
|
||||
this.stPanel1 = new Toolbox.Library.Forms.STPanel();
|
||||
this.lineFeedUD = new Toolbox.Library.Forms.NumericUpDownUint();
|
||||
this.stLabel13 = new Toolbox.Library.Forms.STLabel();
|
||||
|
@ -63,6 +64,11 @@
|
|||
this.splitter1 = new System.Windows.Forms.Splitter();
|
||||
this.splitter2 = new System.Windows.Forms.Splitter();
|
||||
this.stPanel3 = new Toolbox.Library.Forms.STPanel();
|
||||
this.stTabControl1 = new Toolbox.Library.Forms.STTabControl();
|
||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.pictureBoxCustom1 = new Toolbox.Library.Forms.PictureBoxCustom();
|
||||
this.textPreviewTB = new Toolbox.Library.Forms.STTextBox();
|
||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||
this.imagePanel = new Forms.ImagePaenl();
|
||||
this.imagesCB = new Toolbox.Library.Forms.STComboBox();
|
||||
this.stLabel3 = new Toolbox.Library.Forms.STLabel();
|
||||
|
@ -83,7 +89,10 @@
|
|||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownUint2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownUint1)).BeginInit();
|
||||
this.stPanel3.SuspendLayout();
|
||||
this.imageMenuStrip.SuspendLayout();
|
||||
this.stTabControl1.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxCustom1)).BeginInit();
|
||||
this.tabPage2.SuspendLayout();
|
||||
this.stPanel4.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
|
@ -142,6 +151,7 @@
|
|||
this.fontTypeCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||
this.fontTypeCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.fontTypeCB.FormattingEnabled = true;
|
||||
this.fontTypeCB.IsReadOnly = false;
|
||||
this.fontTypeCB.Location = new System.Drawing.Point(87, 42);
|
||||
this.fontTypeCB.Name = "fontTypeCB";
|
||||
this.fontTypeCB.Size = new System.Drawing.Size(108, 21);
|
||||
|
@ -153,6 +163,7 @@
|
|||
this.encodingTypeCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||
this.encodingTypeCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.encodingTypeCB.FormattingEnabled = true;
|
||||
this.encodingTypeCB.IsReadOnly = false;
|
||||
this.encodingTypeCB.Location = new System.Drawing.Point(87, 73);
|
||||
this.encodingTypeCB.Name = "encodingTypeCB";
|
||||
this.encodingTypeCB.Size = new System.Drawing.Size(108, 21);
|
||||
|
@ -416,6 +427,7 @@
|
|||
this.characterCodeCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.characterCodeCB.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.characterCodeCB.FormattingEnabled = true;
|
||||
this.characterCodeCB.IsReadOnly = false;
|
||||
this.characterCodeCB.Location = new System.Drawing.Point(103, 27);
|
||||
this.characterCodeCB.Name = "characterCodeCB";
|
||||
this.characterCodeCB.Size = new System.Drawing.Size(72, 39);
|
||||
|
@ -449,7 +461,7 @@
|
|||
//
|
||||
// stPanel3
|
||||
//
|
||||
this.stPanel3.Controls.Add(this.imagePanel);
|
||||
this.stPanel3.Controls.Add(this.stTabControl1);
|
||||
this.stPanel3.Controls.Add(this.imagesCB);
|
||||
this.stPanel3.Controls.Add(this.stLabel3);
|
||||
this.stPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
|
@ -458,21 +470,82 @@
|
|||
this.stPanel3.Size = new System.Drawing.Size(412, 438);
|
||||
this.stPanel3.TabIndex = 4;
|
||||
//
|
||||
// imagePanel
|
||||
// stTabControl1
|
||||
//
|
||||
this.imagePanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
this.stTabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.imagePanel.Location = new System.Drawing.Point(6, 33);
|
||||
this.stTabControl1.Controls.Add(this.tabPage1);
|
||||
this.stTabControl1.Controls.Add(this.tabPage2);
|
||||
this.stTabControl1.Location = new System.Drawing.Point(6, 45);
|
||||
this.stTabControl1.myBackColor = System.Drawing.Color.Empty;
|
||||
this.stTabControl1.Name = "stTabControl1";
|
||||
this.stTabControl1.SelectedIndex = 0;
|
||||
this.stTabControl1.Size = new System.Drawing.Size(400, 390);
|
||||
this.stTabControl1.TabIndex = 3;
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
this.tabPage1.Controls.Add(this.pictureBoxCustom1);
|
||||
this.tabPage1.Controls.Add(this.textPreviewTB);
|
||||
this.tabPage1.Location = new System.Drawing.Point(4, 25);
|
||||
this.tabPage1.Name = "tabPage1";
|
||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage1.Size = new System.Drawing.Size(392, 361);
|
||||
this.tabPage1.TabIndex = 0;
|
||||
this.tabPage1.Text = "Preview";
|
||||
this.tabPage1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// pictureBoxCustom1
|
||||
//
|
||||
this.pictureBoxCustom1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pictureBoxCustom1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pictureBoxCustom1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBoxCustom1.BackgroundImage")));
|
||||
this.pictureBoxCustom1.Location = new System.Drawing.Point(3, 0);
|
||||
this.pictureBoxCustom1.Name = "pictureBoxCustom1";
|
||||
this.pictureBoxCustom1.Size = new System.Drawing.Size(383, 232);
|
||||
this.pictureBoxCustom1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBoxCustom1.TabIndex = 1;
|
||||
this.pictureBoxCustom1.TabStop = false;
|
||||
//
|
||||
// textPreviewTB
|
||||
//
|
||||
this.textPreviewTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textPreviewTB.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.textPreviewTB.Location = new System.Drawing.Point(6, 238);
|
||||
this.textPreviewTB.Multiline = true;
|
||||
this.textPreviewTB.Name = "textPreviewTB";
|
||||
this.textPreviewTB.Size = new System.Drawing.Size(380, 120);
|
||||
this.textPreviewTB.TabIndex = 0;
|
||||
this.textPreviewTB.TextChanged += new System.EventHandler(this.textPreviewTB_TextChanged);
|
||||
//
|
||||
// tabPage2
|
||||
//
|
||||
this.tabPage2.Controls.Add(this.imagePanel);
|
||||
this.tabPage2.Location = new System.Drawing.Point(4, 25);
|
||||
this.tabPage2.Name = "tabPage2";
|
||||
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage2.Size = new System.Drawing.Size(392, 361);
|
||||
this.tabPage2.TabIndex = 1;
|
||||
this.tabPage2.Text = "Images";
|
||||
this.tabPage2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// imagePanel
|
||||
//
|
||||
this.imagePanel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.imagePanel.Location = new System.Drawing.Point(3, 3);
|
||||
this.imagePanel.Name = "imagePanel";
|
||||
this.imagePanel.Size = new System.Drawing.Size(400, 402);
|
||||
this.imagePanel.Size = new System.Drawing.Size(386, 355);
|
||||
this.imagePanel.TabIndex = 2;
|
||||
this.imagePanel.Paint += new System.Windows.Forms.PaintEventHandler(this.imagePanel_Paint);
|
||||
this.imagePanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imagePanel_MouseClick);
|
||||
this.imagePanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.imagePanel_MouseDown);
|
||||
this.imagePanel.MouseLeave += new System.EventHandler(this.imagePanel_MouseLeave);
|
||||
this.imagePanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.imagePanel_MouseMove);
|
||||
this.imagePanel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.imagePanel_MouseUp);
|
||||
this.imagePanel.MouseLeave += new System.EventHandler(this.imagePanel_MouseLeave);
|
||||
this.imagePanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imagePanel_MouseClick);
|
||||
//
|
||||
// imagesCB
|
||||
//
|
||||
|
@ -480,6 +553,7 @@
|
|||
this.imagesCB.BorderStyle = System.Windows.Forms.ButtonBorderStyle.Solid;
|
||||
this.imagesCB.ButtonColor = System.Drawing.Color.Empty;
|
||||
this.imagesCB.FormattingEnabled = true;
|
||||
this.imagesCB.IsReadOnly = false;
|
||||
this.imagesCB.Location = new System.Drawing.Point(82, 6);
|
||||
this.imagesCB.Name = "imagesCB";
|
||||
this.imagesCB.Size = new System.Drawing.Size(213, 21);
|
||||
|
@ -497,9 +571,18 @@
|
|||
//
|
||||
// imageMenuStrip
|
||||
//
|
||||
this.imageMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {});
|
||||
this.imageMenuStrip.Name = "stContextMenuStrip1";
|
||||
this.imageMenuStrip.Size = new System.Drawing.Size(108, 48);
|
||||
this.imageMenuStrip.Size = new System.Drawing.Size(61, 4);
|
||||
//
|
||||
// exportToolStripMenuItem
|
||||
//
|
||||
this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
|
||||
this.exportToolStripMenuItem.Size = new System.Drawing.Size(32, 19);
|
||||
//
|
||||
// copyToolStripMenuItem
|
||||
//
|
||||
this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
|
||||
this.copyToolStripMenuItem.Size = new System.Drawing.Size(32, 19);
|
||||
//
|
||||
// stPanel4
|
||||
//
|
||||
|
@ -539,7 +622,11 @@
|
|||
((System.ComponentModel.ISupportInitialize)(this.numericUpDownUint1)).EndInit();
|
||||
this.stPanel3.ResumeLayout(false);
|
||||
this.stPanel3.PerformLayout();
|
||||
this.imageMenuStrip.ResumeLayout(false);
|
||||
this.stTabControl1.ResumeLayout(false);
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.tabPage1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBoxCustom1)).EndInit();
|
||||
this.tabPage2.ResumeLayout(false);
|
||||
this.stPanel4.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
|
@ -588,5 +675,10 @@
|
|||
private Toolbox.Library.Forms.NumericUpDownUint numericUpDownUint1;
|
||||
private Toolbox.Library.Forms.STLabel stLabel15;
|
||||
private Forms.ImagePaenl imagePanel;
|
||||
private Toolbox.Library.Forms.STTabControl stTabControl1;
|
||||
private System.Windows.Forms.TabPage tabPage1;
|
||||
private Toolbox.Library.Forms.PictureBoxCustom pictureBoxCustom1;
|
||||
private Toolbox.Library.Forms.STTextBox textPreviewTB;
|
||||
private System.Windows.Forms.TabPage tabPage2;
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ using System.Threading.Tasks;
|
|||
using System.Windows.Forms;
|
||||
using Toolbox.Library.Forms;
|
||||
using Toolbox.Library;
|
||||
using LibEveryFileExplorer.GFX;
|
||||
|
||||
namespace FirstPlugin.Forms
|
||||
{
|
||||
|
@ -17,6 +18,11 @@ namespace FirstPlugin.Forms
|
|||
public BffntEditor()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
stTabControl1.myBackColor = FormThemes.BaseTheme.FormBackColor;
|
||||
|
||||
pictureBoxCustom1.BackColor = Color.Black;
|
||||
pictureBoxCustom1.BackgroundImage = null;
|
||||
}
|
||||
|
||||
public List<IFileFormat> GetFileFormats()
|
||||
|
@ -25,6 +31,7 @@ namespace FirstPlugin.Forms
|
|||
}
|
||||
|
||||
private Image PanelImage { get; set; }
|
||||
private BitmapFont bitmapFont;
|
||||
|
||||
private FFNT ActiveFile;
|
||||
private BFFNT FileFormat;
|
||||
|
@ -50,6 +57,24 @@ namespace FirstPlugin.Forms
|
|||
|
||||
ReloadCharacterCodes();
|
||||
ReloadTextures();
|
||||
|
||||
try {
|
||||
bitmapFont = fontFile.bffnt.GetBitmapFont();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
textPreviewTB.Text = "This is a preview!";
|
||||
|
||||
if (bitmapFont != null)
|
||||
pictureBoxCustom1.Image = bitmapFont.PrintToBitmap(textPreviewTB.Text, new BitmapFont.FontRenderSettings());
|
||||
}
|
||||
|
||||
public override void OnControlClosing()
|
||||
{
|
||||
bitmapFont?.Dispose();
|
||||
}
|
||||
|
||||
private void ReloadCharacterCodes()
|
||||
|
@ -245,18 +270,6 @@ namespace FirstPlugin.Forms
|
|||
|
||||
private FontCell[] FontCells;
|
||||
|
||||
private void LoadGlyphs()
|
||||
{
|
||||
var textureGlyph = ActiveFile.FontSection.TextureGlyph;
|
||||
|
||||
for (int c = 0; c < (int)textureGlyph.ColumnCount; c++)
|
||||
{
|
||||
for (int r = 0; r < (int)textureGlyph.RowCount; r++)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public GlyphImage[] GlyphImages;
|
||||
|
||||
public class GlyphImage
|
||||
|
@ -274,14 +287,11 @@ namespace FirstPlugin.Forms
|
|||
|
||||
PanelImage = BitmapExtension.Resize(PanelImage, textureGlyph.SheetWidth, textureGlyph.SheetHeight);
|
||||
|
||||
Console.WriteLine($"ColumnCount {textureGlyph.ColumnCount}");
|
||||
Console.WriteLine($"RowCount {textureGlyph.RowCount}");
|
||||
|
||||
int y = 0;
|
||||
for (int c = 0; c < (int)textureGlyph.RowCount; c++)
|
||||
{
|
||||
int x = 0;
|
||||
for (int r = 0; r < (int)textureGlyph.ColumnCount; r++)
|
||||
for (int r = 0; r < (int)textureGlyph.LinesCount; r++)
|
||||
{
|
||||
var rect = new Rectangle(x, y, textureGlyph.CellWidth, textureGlyph.CellHeight);
|
||||
|
||||
|
@ -317,6 +327,9 @@ namespace FirstPlugin.Forms
|
|||
|
||||
private void imagePanel_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
if (PanelImage == null)
|
||||
return;
|
||||
|
||||
Graphics graphics = e.Graphics;
|
||||
graphics.DrawImage(PanelImage, 0.0f, 0.0f);
|
||||
|
||||
|
@ -386,6 +399,12 @@ namespace FirstPlugin.Forms
|
|||
imagePanel.Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
private void textPreviewTB_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (bitmapFont != null)
|
||||
pictureBoxCustom1.Image = bitmapFont.PrintToBitmap(textPreviewTB.Text, new BitmapFont.FontRenderSettings());
|
||||
}
|
||||
}
|
||||
|
||||
public class ImagePaenl : STPanel
|
||||
|
|
|
@ -117,6 +117,214 @@
|
|||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBoxCustom1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
|
||||
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADAFBMVEXMzMzNzc3Ozs7Pz8/Q0NDR0dHS
|
||||
0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm
|
||||
5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6
|
||||
+vr7+/v8/Pz9/f3+/v7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="imageMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
|
|
|
@ -112,7 +112,7 @@ In the event that the tool cannot compile, check references. All the libraries a
|
|||
- Assimp devs for their massive asset library!
|
||||
- Wexos (helped figure out a few things, ie format list to assign each attribute)
|
||||
- JuPaHe64 for the base 3D renderer.
|
||||
- Every File Explorer devs (Gericom) for Yaz0 stuff
|
||||
- Every File Explorer devs (Gericom) for Yaz0 and bitmap font stuff
|
||||
- Exelix for Byaml, Sarc and KCL library
|
||||
- Syroot for helpful IO extensions and libraries
|
||||
- GDKChan for PICA shaders stuff used with bcres, structs for bcres, and some DDS decode methods
|
||||
|
|
Loading…
Reference in a new issue