Rename GTX class to GX2
This commit is contained in:
parent
fba66217d1
commit
4865ca1a8f
Binary file not shown.
Binary file not shown.
@ -287,7 +287,7 @@ namespace Bfres.Structs
|
||||
}
|
||||
|
||||
//We reuse GX2 data as it's the same thing
|
||||
public Texture FromGx2Surface(GTX.GX2Surface surf, GTXImporterSettings settings)
|
||||
public Texture FromGx2Surface(GX2.GX2Surface surf, GTXImporterSettings settings)
|
||||
{
|
||||
Texture tex = new Texture();
|
||||
tex.Name = settings.TexName;
|
||||
@ -364,9 +364,9 @@ namespace Bfres.Structs
|
||||
format = (int)texture.Format;
|
||||
int swizzle = (int)texture.Swizzle;
|
||||
int pitch = (int)texture.Pitch;
|
||||
uint bpp = GTX.surfaceGetBitsPerPixel((uint)format) >> 3;
|
||||
uint bpp = GX2.surfaceGetBitsPerPixel((uint)format) >> 3;
|
||||
|
||||
GTX.GX2Surface surf = new GTX.GX2Surface();
|
||||
GX2.GX2Surface surf = new GX2.GX2Surface();
|
||||
surf.bpp = bpp;
|
||||
surf.height = texture.Height;
|
||||
surf.width = texture.Width;
|
||||
@ -428,7 +428,7 @@ namespace Bfres.Structs
|
||||
if (surf.mipData == null)
|
||||
surf.numMips = 1;
|
||||
|
||||
var surfaces = GTX.Decode(surf);
|
||||
var surfaces = GX2.Decode(surf);
|
||||
|
||||
if (ArrayLevel >= surfaces.Count)
|
||||
throw new Exception("Invalid amount of surfaces decoded!");
|
||||
|
@ -633,68 +633,68 @@ namespace FirstPlugin
|
||||
|
||||
public override byte[] GetImageData(int ArrayLevel = 0, int MipLevel = 0)
|
||||
{
|
||||
uint GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
uint GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
|
||||
switch (SurfFormat)
|
||||
{
|
||||
case SurfaceFormat.T_BC1_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC1_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC1_UNORM;
|
||||
Format = TEX_FORMAT.BC1_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC1_SRGB:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC1_SRGB;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC1_SRGB;
|
||||
Format = TEX_FORMAT.BC1_UNORM_SRGB;
|
||||
break;
|
||||
case SurfaceFormat.T_BC2_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC2_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC2_UNORM;
|
||||
Format = TEX_FORMAT.BC2_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC2_SRGB:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC2_SRGB;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC2_SRGB;
|
||||
Format = TEX_FORMAT.BC2_UNORM_SRGB;
|
||||
break;
|
||||
case SurfaceFormat.T_BC3_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC3_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC3_UNORM;
|
||||
Format = TEX_FORMAT.BC3_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC3_SRGB:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC3_SRGB;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC3_SRGB;
|
||||
Format = TEX_FORMAT.BC3_UNORM_SRGB;
|
||||
break;
|
||||
case SurfaceFormat.T_BC4_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC4_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC4_UNORM;
|
||||
Format = TEX_FORMAT.BC4_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC4_SNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC4_SNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC4_SNORM;
|
||||
Format = TEX_FORMAT.BC4_SNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC5_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
Format = TEX_FORMAT.BC5_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC5_SNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC5_SNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC5_SNORM;
|
||||
Format = TEX_FORMAT.BC5_SNORM;
|
||||
break;
|
||||
case SurfaceFormat.TC_R8_G8_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TC_R8_G8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TC_R8_G8_UNORM;
|
||||
Format = TEX_FORMAT.R8G8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TCS_R8_G8_B8_A8_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
Format = TEX_FORMAT.R8G8B8A8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TCS_R8_G8_B8_A8:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
Format = TEX_FORMAT.R8G8B8A8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TC_R8_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TC_R8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TC_R8_UNORM;
|
||||
Format = TEX_FORMAT.R8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TCS_R5_G6_B5_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TCS_R5_G6_B5_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TCS_R5_G6_B5_UNORM;
|
||||
Format = TEX_FORMAT.B5G6R5_UNORM;
|
||||
break;
|
||||
default:
|
||||
@ -704,9 +704,9 @@ namespace FirstPlugin
|
||||
|
||||
int swizzle = (int)Swizzle;
|
||||
int pitch = (int)0;
|
||||
uint bpp = GTX.surfaceGetBitsPerPixel(GX2Format) >> 3;
|
||||
uint bpp = GX2.surfaceGetBitsPerPixel(GX2Format) >> 3;
|
||||
|
||||
GTX.GX2Surface surf = new GTX.GX2Surface();
|
||||
GX2.GX2Surface surf = new GX2.GX2Surface();
|
||||
surf.bpp = bpp;
|
||||
surf.height = Height;
|
||||
surf.width = Width;
|
||||
@ -725,7 +725,7 @@ namespace FirstPlugin
|
||||
surf.swizzle = Swizzle;
|
||||
surf.imageSize = ImageSize;
|
||||
|
||||
var surfaces = GTX.Decode(surf);
|
||||
var surfaces = GX2.Decode(surf);
|
||||
return surfaces[ArrayLevel][MipLevel];
|
||||
}
|
||||
|
||||
@ -1273,68 +1273,68 @@ namespace FirstPlugin
|
||||
|
||||
public override byte[] GetImageData(int ArrayLevel = 0, int MipLevel = 0)
|
||||
{
|
||||
uint GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
uint GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
|
||||
switch (SurfFormat)
|
||||
{
|
||||
case SurfaceFormat.T_BC1_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC1_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC1_UNORM;
|
||||
Format = TEX_FORMAT.BC1_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC1_SRGB:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC1_SRGB;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC1_SRGB;
|
||||
Format = TEX_FORMAT.BC1_UNORM_SRGB;
|
||||
break;
|
||||
case SurfaceFormat.T_BC2_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC2_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC2_UNORM;
|
||||
Format = TEX_FORMAT.BC2_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC2_SRGB:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC2_SRGB;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC2_SRGB;
|
||||
Format = TEX_FORMAT.BC2_UNORM_SRGB;
|
||||
break;
|
||||
case SurfaceFormat.T_BC3_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC3_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC3_UNORM;
|
||||
Format = TEX_FORMAT.BC3_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC3_SRGB:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC3_SRGB;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC3_SRGB;
|
||||
Format = TEX_FORMAT.BC3_UNORM_SRGB;
|
||||
break;
|
||||
case SurfaceFormat.T_BC4_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC4_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC4_UNORM;
|
||||
Format = TEX_FORMAT.BC4_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC4_SNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC4_SNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC4_SNORM;
|
||||
Format = TEX_FORMAT.BC4_SNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC5_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC5_UNORM;
|
||||
Format = TEX_FORMAT.BC5_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.T_BC5_SNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.T_BC5_SNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.T_BC5_SNORM;
|
||||
Format = TEX_FORMAT.BC5_SNORM;
|
||||
break;
|
||||
case SurfaceFormat.TC_R8_G8_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TC_R8_G8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TC_R8_G8_UNORM;
|
||||
Format = TEX_FORMAT.R8G8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TCS_R8_G8_B8_A8_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
Format = TEX_FORMAT.R8G8B8A8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TCS_R8_G8_B8_A8:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM;
|
||||
Format = TEX_FORMAT.R8G8B8A8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TC_R8_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TC_R8_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TC_R8_UNORM;
|
||||
Format = TEX_FORMAT.R8_UNORM;
|
||||
break;
|
||||
case SurfaceFormat.TCS_R5_G6_B5_UNORM:
|
||||
GX2Format = (uint)GTX.GX2SurfaceFormat.TCS_R5_G6_B5_UNORM;
|
||||
GX2Format = (uint)GX2.GX2SurfaceFormat.TCS_R5_G6_B5_UNORM;
|
||||
Format = TEX_FORMAT.B5G6R5_UNORM;
|
||||
break;
|
||||
default:
|
||||
@ -1344,9 +1344,9 @@ namespace FirstPlugin
|
||||
|
||||
int swizzle = (int)Swizzle;
|
||||
int pitch = (int)0;
|
||||
uint bpp = GTX.surfaceGetBitsPerPixel(GX2Format) >> 3;
|
||||
uint bpp = GX2.surfaceGetBitsPerPixel(GX2Format) >> 3;
|
||||
|
||||
GTX.GX2Surface surf = new GTX.GX2Surface();
|
||||
GX2.GX2Surface surf = new GX2.GX2Surface();
|
||||
surf.bpp = bpp;
|
||||
surf.height = Height;
|
||||
surf.width = Width;
|
||||
@ -1365,7 +1365,7 @@ namespace FirstPlugin
|
||||
surf.swizzle = Swizzle;
|
||||
surf.imageSize = ImageSize;
|
||||
|
||||
var surfaces = GTX.Decode(surf);
|
||||
var surfaces = GX2.Decode(surf);
|
||||
return surfaces[ArrayLevel][MipLevel];
|
||||
}
|
||||
|
||||
|
@ -346,26 +346,26 @@ namespace FirstPlugin
|
||||
{
|
||||
uint bpp = GetBytesPerPixel(Format);
|
||||
|
||||
GTX.GX2Surface surf = new GTX.GX2Surface();
|
||||
GX2.GX2Surface surf = new GX2.GX2Surface();
|
||||
surf.bpp = bpp;
|
||||
surf.height = image.Height;
|
||||
surf.width = image.Width;
|
||||
surf.aa = (uint)GTX.GX2AAMode.GX2_AA_MODE_1X;
|
||||
surf.aa = (uint)GX2.GX2AAMode.GX2_AA_MODE_1X;
|
||||
surf.alignment = image.Alignment;
|
||||
surf.depth = 1;
|
||||
surf.dim = (uint)GTX.GX2SurfaceDimension.DIM_2D;
|
||||
surf.dim = (uint)GX2.GX2SurfaceDimension.DIM_2D;
|
||||
surf.format = (uint)FTEX.ConvertToGx2Format(Format);
|
||||
surf.use = (uint)GTX.GX2SurfaceUse.USE_COLOR_BUFFER;
|
||||
surf.use = (uint)GX2.GX2SurfaceUse.USE_COLOR_BUFFER;
|
||||
surf.pitch = 0;
|
||||
surf.data = ImageData;
|
||||
surf.numMips = 1;
|
||||
surf.mipOffset = new uint[0];
|
||||
surf.mipData = ImageData;
|
||||
surf.tileMode = (uint)GTX.GX2TileMode.MODE_2D_TILED_THIN1;
|
||||
surf.tileMode = (uint)GX2.GX2TileMode.MODE_2D_TILED_THIN1;
|
||||
surf.swizzle = image.swizzle;
|
||||
surf.numArray = 1;
|
||||
|
||||
var surfaces = GTX.Decode(surf);
|
||||
var surfaces = GX2.Decode(surf);
|
||||
|
||||
return surfaces[ArrayLevel][MipLevel];
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ namespace FirstPlugin
|
||||
TextureData tex = (TextureData)node;
|
||||
|
||||
tex.surface.data = data[curTex];
|
||||
tex.surface.bpp = GTX.surfaceGetBitsPerPixel(tex.surface.format) >> 3;
|
||||
tex.surface.bpp = GX2.surfaceGetBitsPerPixel(tex.surface.format) >> 3;
|
||||
tex.Format = FTEX.ConvertFromGx2Format((Syroot.NintenTools.Bfres.GX2.GX2SurfaceFormat)tex.surface.format);
|
||||
tex.Width = tex.surface.width;
|
||||
tex.Height = tex.surface.height;
|
||||
@ -408,7 +408,7 @@ namespace FirstPlugin
|
||||
Console.WriteLine(" mip size = " + surface.mipData.Length);
|
||||
Console.WriteLine(" realSize = " + surface.imageSize);
|
||||
|
||||
var surfaces = GTX.Decode(surface);
|
||||
var surfaces = GX2.Decode(surface);
|
||||
|
||||
return surfaces[ArrayLevel][MipLevel];
|
||||
}
|
||||
@ -495,7 +495,7 @@ namespace FirstPlugin
|
||||
editor.AddCustomControl(userDataEditor, typeof(UserDataEditor));
|
||||
}
|
||||
}
|
||||
public class SurfaceInfoParse : GTX.GX2Surface
|
||||
public class SurfaceInfoParse : GX2.GX2Surface
|
||||
{
|
||||
|
||||
public void Read(FileReader reader)
|
||||
|
@ -10,19 +10,19 @@ namespace FirstPlugin
|
||||
{
|
||||
public class GTXSwizzle
|
||||
{
|
||||
public static GTX.GX2Surface CreateGx2Texture(byte[] imageData, GTXImporterSettings setting, uint tileMode, uint AAMode)
|
||||
public static GX2.GX2Surface CreateGx2Texture(byte[] imageData, GTXImporterSettings setting, uint tileMode, uint AAMode)
|
||||
{
|
||||
var Format = (GTX.GX2SurfaceFormat)setting.Format;
|
||||
var Format = (GX2.GX2SurfaceFormat)setting.Format;
|
||||
|
||||
Console.WriteLine("Format " + Format + " " + setting.TexName);
|
||||
|
||||
var surfOut = GTX.getSurfaceInfo(Format, setting.TexWidth, setting.TexHeight, 1, 1, tileMode, 0, 0);
|
||||
var surfOut = GX2.getSurfaceInfo(Format, setting.TexWidth, setting.TexHeight, 1, 1, tileMode, 0, 0);
|
||||
uint imageSize = (uint)surfOut.surfSize;
|
||||
uint alignment = surfOut.baseAlign;
|
||||
uint pitch = surfOut.pitch;
|
||||
uint mipSize = 0;
|
||||
uint dataSize = (uint)imageData.Length;
|
||||
uint bpp = GTX.surfaceGetBitsPerPixel((uint)setting.Format) >> 3;
|
||||
uint bpp = GX2.surfaceGetBitsPerPixel((uint)setting.Format) >> 3;
|
||||
int DepthLevel = 1;
|
||||
|
||||
if (dataSize <= 0)
|
||||
@ -34,7 +34,7 @@ namespace FirstPlugin
|
||||
uint s = (uint)(setting.swizzle << 8);
|
||||
|
||||
uint blkWidth, blkHeight;
|
||||
if (GTX.IsFormatBCN(Format))
|
||||
if (GX2.IsFormatBCN(Format))
|
||||
{
|
||||
blkWidth = 4;
|
||||
blkHeight = 4;
|
||||
@ -46,7 +46,7 @@ namespace FirstPlugin
|
||||
}
|
||||
|
||||
if (tileMode == 0)
|
||||
tileMode = GTX.getDefaultGX2TileMode(1, setting.TexWidth, setting.TexHeight, 1,(uint)setting.Format, 0, 1);
|
||||
tileMode = GX2.getDefaultGX2TileMode(1, setting.TexWidth, setting.TexHeight, 1,(uint)setting.Format, 0, 1);
|
||||
|
||||
int tiling1dLevel = 0;
|
||||
bool tiling1dLevelSet = false;
|
||||
@ -78,7 +78,7 @@ namespace FirstPlugin
|
||||
|
||||
if (mipLevel != 0)
|
||||
{
|
||||
surfOut = GTX.getSurfaceInfo(Format, setting.TexWidth, setting.TexHeight, 1, 1, tileMode, 0, mipLevel);
|
||||
surfOut = GX2.getSurfaceInfo(Format, setting.TexWidth, setting.TexHeight, 1, 1, tileMode, 0, mipLevel);
|
||||
|
||||
if (mipLevel == 1)
|
||||
mipOffsets.Add(imageSize);
|
||||
@ -92,7 +92,7 @@ namespace FirstPlugin
|
||||
if (mipLevel != 0)
|
||||
mipSize += (uint)(surfOut.surfSize + dataAlignBytes.Length);
|
||||
|
||||
byte[] SwizzledData = GTX.swizzle(width_, height_, surfOut.depth, surfOut.height, (uint)Format, surfOut.tileMode, s,
|
||||
byte[] SwizzledData = GX2.swizzle(width_, height_, surfOut.depth, surfOut.height, (uint)Format, surfOut.tileMode, s,
|
||||
surfOut.pitch, surfOut.bpp, data_, DepthLevel);
|
||||
|
||||
Swizzled.Add(dataAlignBytes.Concat(SwizzledData).ToArray());
|
||||
@ -112,7 +112,7 @@ namespace FirstPlugin
|
||||
else
|
||||
s |= (uint)(13 << 16);
|
||||
|
||||
GTX.GX2Surface surf = new GTX.GX2Surface();
|
||||
GX2.GX2Surface surf = new GX2.GX2Surface();
|
||||
surf.depth = setting.Depth;
|
||||
surf.width = setting.TexWidth;
|
||||
surf.height = setting.TexHeight;
|
||||
|
@ -21,7 +21,7 @@ namespace FirstPlugin
|
||||
public uint arrayLength = 1;
|
||||
public List<byte[]> DataBlockOutput = new List<byte[]>();
|
||||
public List<byte[]> DecompressedData = new List<byte[]>();
|
||||
public GTX.GX2SurfaceFormat Format;
|
||||
public GX2.GX2SurfaceFormat Format;
|
||||
public bool GenerateMipmaps;
|
||||
public bool IsSRGB;
|
||||
public uint tileMode = 4;
|
||||
@ -51,7 +51,7 @@ namespace FirstPlugin
|
||||
}
|
||||
DataBlockOutput.Add(dds.bdata);
|
||||
|
||||
Format = (GTX.GX2SurfaceFormat)FTEX.ConvertToGx2Format(dds.Format);;
|
||||
Format = (GX2.GX2SurfaceFormat)FTEX.ConvertToGx2Format(dds.Format);;
|
||||
}
|
||||
|
||||
public void LoadBitMap(Image Image, string FileName)
|
||||
@ -59,7 +59,7 @@ namespace FirstPlugin
|
||||
DecompressedData.Clear();
|
||||
|
||||
TexName = Path.GetFileNameWithoutExtension(FileName);
|
||||
Format = (GTX.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
||||
Format = (GX2.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
||||
|
||||
GenerateMipmaps = true;
|
||||
LoadImage(new Bitmap(Image));
|
||||
@ -71,7 +71,7 @@ namespace FirstPlugin
|
||||
|
||||
TexName = Path.GetFileNameWithoutExtension(FileName);
|
||||
|
||||
Format = (GTX.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
||||
Format = (GX2.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
||||
GenerateMipmaps = true;
|
||||
|
||||
//If a texture is .tga, we need to convert it
|
||||
@ -159,17 +159,17 @@ namespace FirstPlugin
|
||||
FTEX.ConvertFromGx2Format((GX2SurfaceFormat)Format), alphaRef));
|
||||
}
|
||||
}
|
||||
public GTX.GX2Surface CreateGx2Texture(byte[] imageData)
|
||||
public GX2.GX2Surface CreateGx2Texture(byte[] imageData)
|
||||
{
|
||||
Console.WriteLine("Format " + Format);
|
||||
|
||||
var surfOut = GTX.getSurfaceInfo(Format, TexWidth, TexHeight, 1, 1, tileMode, 0, 0);
|
||||
var surfOut = GX2.getSurfaceInfo(Format, TexWidth, TexHeight, 1, 1, tileMode, 0, 0);
|
||||
uint imageSize = (uint)surfOut.surfSize;
|
||||
uint alignment = surfOut.baseAlign;
|
||||
uint pitch = surfOut.pitch;
|
||||
uint mipSize = 0;
|
||||
uint dataSize = (uint)imageData.Length;
|
||||
uint bpp = GTX.surfaceGetBitsPerPixel((uint)Format) >> 3;
|
||||
uint bpp = GX2.surfaceGetBitsPerPixel((uint)Format) >> 3;
|
||||
|
||||
if (dataSize <= 0)
|
||||
throw new Exception($"Image is empty!!");
|
||||
@ -191,7 +191,7 @@ namespace FirstPlugin
|
||||
break;
|
||||
}
|
||||
uint blkWidth, blkHeight;
|
||||
if (GTX.IsFormatBCN(Format))
|
||||
if (GX2.IsFormatBCN(Format))
|
||||
{
|
||||
blkWidth = 4;
|
||||
blkHeight = 4;
|
||||
@ -231,7 +231,7 @@ namespace FirstPlugin
|
||||
|
||||
if (mipLevel != 0)
|
||||
{
|
||||
surfOut = GTX.getSurfaceInfo(Format, TexWidth, TexHeight, 1, 1, tileMode, 0, mipLevel);
|
||||
surfOut = GX2.getSurfaceInfo(Format, TexWidth, TexHeight, 1, 1, tileMode, 0, mipLevel);
|
||||
|
||||
if (mipLevel == 1)
|
||||
mipOffsets.Add(imageSize);
|
||||
@ -245,13 +245,13 @@ namespace FirstPlugin
|
||||
if (mipLevel != 0)
|
||||
mipSize += (uint)(surfOut.surfSize + dataAlignBytes.Length);
|
||||
|
||||
byte[] SwizzledData = GTX.swizzle(width_, height_, surfOut.depth, surfOut.height, (uint)Format, surfOut.tileMode, s,
|
||||
byte[] SwizzledData = GX2.swizzle(width_, height_, surfOut.depth, surfOut.height, (uint)Format, surfOut.tileMode, s,
|
||||
surfOut.pitch, surfOut.bpp, data_, 1);
|
||||
|
||||
Swizzled.Add(dataAlignBytes.Concat(SwizzledData).ToArray());
|
||||
}
|
||||
|
||||
GTX.GX2Surface surf = new GTX.GX2Surface();
|
||||
GX2.GX2Surface surf = new GX2.GX2Surface();
|
||||
surf.depth = Depth;
|
||||
surf.width = TexWidth;
|
||||
surf.height = TexHeight;
|
||||
|
@ -17,59 +17,59 @@ namespace FirstPlugin
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TCS_R8_G8_B8_A8_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TCS_R8_G8_B8_A8_SRGB);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TCS_R10_G10_B10_A2_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TCS_R5_G6_B5_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TC_R5_G5_B5_A1_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TC_R4_G4_B4_A4_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TC_R8_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.TC_R8_G8_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_R10_G10_B10_A2_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TCS_R5_G6_B5_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TC_R5_G5_B5_A1_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TC_R4_G4_B4_A4_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TC_R8_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.TC_R8_G8_UNORM);
|
||||
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC1_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC1_SRGB);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC2_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC2_SRGB);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC3_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC3_SRGB);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC4_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC4_SNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC5_UNORM);
|
||||
formatComboBox.Items.Add(GTX.GX2SurfaceFormat.T_BC5_SNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC1_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC1_SRGB);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC2_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC2_SRGB);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC3_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC3_SRGB);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC4_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC4_SNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC5_UNORM);
|
||||
formatComboBox.Items.Add(GX2.GX2SurfaceFormat.T_BC5_SNORM);
|
||||
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_DEFAULT);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_LINEAR_ALIGNED);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_1D_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_1D_TILED_THICK);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2D_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2D_TILED_THIN2);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2D_TILED_THIN4);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2D_TILED_THICK);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2B_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2B_TILED_THIN2);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2B_TILED_THIN4);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_2B_TILED_THICK);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_3D_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_3D_TILED_THICK);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_3B_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_3B_TILED_THICK);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_LINEAR_SPECIAL);
|
||||
tileModeCB.Items.Add(GTX.GX2TileMode.MODE_DEFAULT_FIX2197);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_DEFAULT);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_LINEAR_ALIGNED);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_1D_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_1D_TILED_THICK);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2D_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2D_TILED_THIN2);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2D_TILED_THIN4);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2D_TILED_THICK);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2B_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2B_TILED_THIN2);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2B_TILED_THIN4);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_2B_TILED_THICK);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_3D_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_3D_TILED_THICK);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_3B_TILED_THIN1);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_3B_TILED_THICK);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_LINEAR_SPECIAL);
|
||||
tileModeCB.Items.Add(GX2.GX2TileMode.MODE_DEFAULT_FIX2197);
|
||||
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_1D);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_1D_ARRAY);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_2D);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_2D_ARRAY);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_2D_MSAA);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_2D_MSAA_ARRAY);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_3D);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_CUBE);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_FIRST);
|
||||
ImgDimComb.Items.Add(GTX.GX2SurfaceDimension.DIM_LAST);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_1D);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_1D_ARRAY);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_2D);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_2D_ARRAY);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_2D_MSAA);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_2D_MSAA_ARRAY);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_3D);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_CUBE);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_FIRST);
|
||||
ImgDimComb.Items.Add(GX2.GX2SurfaceDimension.DIM_LAST);
|
||||
|
||||
ImgDimComb.SelectedItem = GTX.GX2SurfaceDimension.DIM_2D;
|
||||
tileModeCB.SelectedItem = GTX.GX2TileMode.MODE_2D_TILED_THIN1;
|
||||
formatComboBox.SelectedItem = GTX.GX2SurfaceFormat.T_BC1_SRGB;
|
||||
ImgDimComb.SelectedItem = GX2.GX2SurfaceDimension.DIM_2D;
|
||||
tileModeCB.SelectedItem = GX2.GX2TileMode.MODE_2D_TILED_THIN1;
|
||||
formatComboBox.SelectedItem = GX2.GX2SurfaceFormat.T_BC1_SRGB;
|
||||
}
|
||||
|
||||
public void LoadSupportedFormats(TEX_FORMAT[] Formats)
|
||||
@ -77,11 +77,11 @@ namespace FirstPlugin
|
||||
formatComboBox.Items.Clear();
|
||||
foreach (TEX_FORMAT format in Formats)
|
||||
{
|
||||
var Gx2Format = (GTX.GX2SurfaceFormat)FTEX.ConvertToGx2Format(format);
|
||||
var Gx2Format = (GX2.GX2SurfaceFormat)FTEX.ConvertToGx2Format(format);
|
||||
formatComboBox.Items.Add(Gx2Format);
|
||||
}
|
||||
|
||||
var Gx2DefaultFormat = (GTX.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
||||
var Gx2DefaultFormat = (GX2.GX2SurfaceFormat)FTEX.ConvertToGx2Format(Runtime.PreferredTexFormat);
|
||||
|
||||
if (formatComboBox.Items.Contains(Gx2DefaultFormat))
|
||||
formatComboBox.SelectedItem = Gx2DefaultFormat;
|
||||
@ -113,15 +113,15 @@ namespace FirstPlugin
|
||||
private Thread Thread;
|
||||
public void SetupSettings()
|
||||
{
|
||||
if (SelectedTexSettings.Format == GTX.GX2SurfaceFormat.INVALID)
|
||||
if (SelectedTexSettings.Format == GX2.GX2SurfaceFormat.INVALID)
|
||||
return;
|
||||
|
||||
if (Thread != null && Thread.IsAlive)
|
||||
Thread.Abort();
|
||||
|
||||
if (formatComboBox.SelectedItem is GTX.GX2SurfaceFormat)
|
||||
if (formatComboBox.SelectedItem is GX2.GX2SurfaceFormat)
|
||||
{
|
||||
SelectedTexSettings.Format = (GTX.GX2SurfaceFormat)formatComboBox.SelectedItem;
|
||||
SelectedTexSettings.Format = (GX2.GX2SurfaceFormat)formatComboBox.SelectedItem;
|
||||
listViewCustom1.SelectedItems[0].SubItems[1].Text = SelectedTexSettings.Format.ToString();
|
||||
}
|
||||
HeightLabel.Text = $"Height: {SelectedTexSettings.TexHeight}";
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -4,7 +4,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace Switch_Toolbox.Library
|
||||
{
|
||||
public class GTX
|
||||
public class GX2
|
||||
{
|
||||
//Some enums and parts from https://github.com/jam1garner/Smash-Forge/blob/master/Smash%20Forge/Filetypes/Textures/GTX.cs
|
||||
public class GX2Surface
|
||||
|
Loading…
Reference in New Issue
Block a user