diff --git a/NResUI/ImGuiUI/MainMenuBar.cs b/NResUI/ImGuiUI/MainMenuBar.cs index 4589778..47742ff 100644 --- a/NResUI/ImGuiUI/MainMenuBar.cs +++ b/NResUI/ImGuiUI/MainMenuBar.cs @@ -59,9 +59,28 @@ namespace NResUI.ImGuiUI } } + if (ImGui.MenuItem("Open TFNT TEXM")) + { + var result = Dialog.FileOpen(); + + if (result.IsOk) + { + var path = result.Path; + + using var fs = new FileStream(path, FileMode.Open); + + fs.Seek(4116, SeekOrigin.Begin); + + var parseResult = TexmParser.ReadFromStream(fs, path); + + _texmExplorerViewModel.SetParseResult(parseResult, path); + Console.WriteLine("Read TEXM"); + } + } + if (_nResExplorerViewModel.HasFile) { - if (ImGui.MenuItem("Экспортировать")) + if (ImGui.MenuItem("Экспортировать NRes")) { var result = Dialog.FolderPicker(); diff --git a/NResUI/OpenGlTexture.cs b/NResUI/OpenGlTexture.cs index 5ada0d4..26fc51c 100644 --- a/NResUI/OpenGlTexture.cs +++ b/NResUI/OpenGlTexture.cs @@ -67,6 +67,9 @@ namespace NResUI SetWrap(TextureCoordinate.S, TextureWrapMode.Repeat); SetWrap(TextureCoordinate.T, TextureWrapMode.Repeat); + + SetMinFilter(TextureMinFilter.Nearest); + SetMagFilter(TextureMagFilter.Nearest); _gl.TexParameterI(GLEnum.Texture2D, TextureParameterName.TextureMaxLevel, MipmapLevels - 1); } diff --git a/TexmLib/TexmFile.cs b/TexmLib/TexmFile.cs index a80c6e1..9c6202d 100644 --- a/TexmLib/TexmFile.cs +++ b/TexmLib/TexmFile.cs @@ -180,14 +180,14 @@ public class TexmFile { var rawPixel = span.Slice(i, 2); - var r = (byte)(((rawPixel[0] >> 3) & 0b11111) / 32 * 255); - var b = (byte)(((rawPixel[0] & 0b111) << 3) | ((rawPixel[1] >> 5) & 0b111) / 64 * 255); - var g = (byte)((rawPixel[1] & 0b11111) / 32 * 255); + var g = (byte)(((rawPixel[0] >> 3) & 0b11111) * 255 / 31); + var b = (byte)((((rawPixel[0] & 0b111) << 3) | ((rawPixel[1] >> 5) & 0b111)) * 255 / 63); + var r = (byte)((rawPixel[1] & 0b11111) * 255 / 31); result[i / 2 * 4 + 0] = r; result[i / 2 * 4 + 1] = g; result[i / 2 * 4 + 2] = b; - result[i / 2 * 4 + 3] = 255; + result[i / 2 * 4 + 3] = r; } return result; @@ -202,10 +202,10 @@ public class TexmFile { var rawPixel = span.Slice(i, 2); - var r = (byte)((float)((rawPixel[0] >> 4) & 0b1111) * 17); - var g = (byte)((float)((rawPixel[0] >> 0) & 0b1111) * 17); - var b = (byte)((float)((rawPixel[1] >> 4) & 0b1111) * 17); - var a = (byte)((float)((rawPixel[1] >> 0) & 0b1111) * 17); + var a = (byte)(((rawPixel[0] >> 4) & 0b1111) * 17); + var b = (byte)(((rawPixel[0] >> 0) & 0b1111) * 17); + var g = (byte)(((rawPixel[1] >> 4) & 0b1111) * 17); + var r = (byte)(((rawPixel[1] >> 0) & 0b1111) * 17); result[i / 2 * 4 + 0] = r; result[i / 2 * 4 + 1] = g;