public static PICATextureFormat ToPICATextureFormat(this GFTextureFormat Format) { switch (Format) { case GFTextureFormat.RGB565: return(PICATextureFormat.RGB565); case GFTextureFormat.RGB8: return(PICATextureFormat.RGB8); case GFTextureFormat.RGBA8: return(PICATextureFormat.RGBA8); case GFTextureFormat.RGBA4: return(PICATextureFormat.RGBA4); case GFTextureFormat.RGBA5551: return(PICATextureFormat.RGBA5551); case GFTextureFormat.LA8: return(PICATextureFormat.LA8); case GFTextureFormat.HiLo8: return(PICATextureFormat.HiLo8); case GFTextureFormat.L8: return(PICATextureFormat.L8); case GFTextureFormat.A8: return(PICATextureFormat.A8); case GFTextureFormat.LA4: return(PICATextureFormat.LA4); case GFTextureFormat.L4: return(PICATextureFormat.L4); case GFTextureFormat.A4: return(PICATextureFormat.A4); case GFTextureFormat.ETC1: return(PICATextureFormat.ETC1); case GFTextureFormat.ETC1A4: return(PICATextureFormat.ETC1A4); default: throw new ArgumentException("Invalid format!"); } }
public GFTexture(H3DTexture tex) { Name = tex.Name; RawBuffer = tex.RawBuffer; Width = (ushort)tex.Width; Height = (ushort)tex.Height; Format = H3DTextureFormatExtensions.ToGFTextureFormat(tex.Format); MipmapSize = tex.MipmapSize; }
public GFTexture(BinaryReader Reader) { uint MagicNumber = Reader.ReadUInt32(); uint TextureCount = Reader.ReadUInt32(); GFSection TextureSection = new GFSection(Reader); uint TextureLength = Reader.ReadUInt32(); Reader.BaseStream.Seek(0xc, SeekOrigin.Current); //Padding? Always zero it seems Name = Reader.ReadPaddedString(0x40); Width = Reader.ReadUInt16(); Height = Reader.ReadUInt16(); Format = (GFTextureFormat)Reader.ReadUInt16(); MipmapSize = Reader.ReadUInt16(); Reader.BaseStream.Seek(0x10, SeekOrigin.Current); //Padding RawBuffer = Reader.ReadBytes((int)TextureLength); }