public static Texture Deserialize(BinaryReader reader) { //read name string name = reader.ReadString(); //read id string id = reader.ReadString(); //read texture info TextureMinFilter minFilter = (TextureMinFilter)reader.ReadInt32(); TextureMagFilter magFilter = (TextureMagFilter)reader.ReadInt32(); TextureWrapMode wrapS = (TextureWrapMode)reader.ReadInt32(); TextureWrapMode wrapT = (TextureWrapMode)reader.ReadInt32(); //read pixel info PixelInternalFormat pixelInternalFormat = (PixelInternalFormat)reader.ReadInt32(); PixelFormat pixelFormat = (PixelFormat)reader.ReadInt32(); PixelType pixelType = (PixelType)reader.ReadInt32(); //read width and height Vector2i size = new Vector2i(reader.ReadInt32(), reader.ReadInt32()); //read pixels byte[] data = reader.ReadBytes(size.X * size.Y * TextureHelper.GetSinglePixelSize(pixelInternalFormat, pixelType)); Texture tex = FromArray(name, size.X, size.Y, data, pixelInternalFormat, pixelFormat, pixelType, id: id); tex.SetMinFilter(minFilter); tex.SetMagFilter(magFilter); tex.SetWrapS(wrapS); tex.SetWrapT(wrapT); return(tex); }