Exemple #1
0
        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);
        }