0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-05-18 11:21:18 +03:00

fix color ordering in 4444

fix blur when x2 scale
add TFNT texture open support
This commit is contained in:
bird_egop 2024-11-23 01:32:12 +03:00
parent dd2fce984c
commit bba3f2a810
3 changed files with 31 additions and 9 deletions

View File

@ -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 (_nResExplorerViewModel.HasFile)
{ {
if (ImGui.MenuItem("Экспортировать")) if (ImGui.MenuItem("Экспортировать NRes"))
{ {
var result = Dialog.FolderPicker(); var result = Dialog.FolderPicker();

View File

@ -67,6 +67,9 @@ namespace NResUI
SetWrap(TextureCoordinate.S, TextureWrapMode.Repeat); SetWrap(TextureCoordinate.S, TextureWrapMode.Repeat);
SetWrap(TextureCoordinate.T, TextureWrapMode.Repeat); SetWrap(TextureCoordinate.T, TextureWrapMode.Repeat);
SetMinFilter(TextureMinFilter.Nearest);
SetMagFilter(TextureMagFilter.Nearest);
_gl.TexParameterI(GLEnum.Texture2D, TextureParameterName.TextureMaxLevel, MipmapLevels - 1); _gl.TexParameterI(GLEnum.Texture2D, TextureParameterName.TextureMaxLevel, MipmapLevels - 1);
} }

View File

@ -180,14 +180,14 @@ public class TexmFile
{ {
var rawPixel = span.Slice(i, 2); var rawPixel = span.Slice(i, 2);
var r = (byte)(((rawPixel[0] >> 3) & 0b11111) / 32 * 255); var g = (byte)(((rawPixel[0] >> 3) & 0b11111) * 255 / 31);
var b = (byte)(((rawPixel[0] & 0b111) << 3) | ((rawPixel[1] >> 5) & 0b111) / 64 * 255); var b = (byte)((((rawPixel[0] & 0b111) << 3) | ((rawPixel[1] >> 5) & 0b111)) * 255 / 63);
var g = (byte)((rawPixel[1] & 0b11111) / 32 * 255); var r = (byte)((rawPixel[1] & 0b11111) * 255 / 31);
result[i / 2 * 4 + 0] = r; result[i / 2 * 4 + 0] = r;
result[i / 2 * 4 + 1] = g; result[i / 2 * 4 + 1] = g;
result[i / 2 * 4 + 2] = b; result[i / 2 * 4 + 2] = b;
result[i / 2 * 4 + 3] = 255; result[i / 2 * 4 + 3] = r;
} }
return result; return result;
@ -202,10 +202,10 @@ public class TexmFile
{ {
var rawPixel = span.Slice(i, 2); var rawPixel = span.Slice(i, 2);
var r = (byte)((float)((rawPixel[0] >> 4) & 0b1111) * 17); var a = (byte)(((rawPixel[0] >> 4) & 0b1111) * 17);
var g = (byte)((float)((rawPixel[0] >> 0) & 0b1111) * 17); var b = (byte)(((rawPixel[0] >> 0) & 0b1111) * 17);
var b = (byte)((float)((rawPixel[1] >> 4) & 0b1111) * 17); var g = (byte)(((rawPixel[1] >> 4) & 0b1111) * 17);
var a = (byte)((float)((rawPixel[1] >> 0) & 0b1111) * 17); var r = (byte)(((rawPixel[1] >> 0) & 0b1111) * 17);
result[i / 2 * 4 + 0] = r; result[i / 2 * 4 + 0] = r;
result[i / 2 * 4 + 1] = g; result[i / 2 * 4 + 1] = g;