Exemple #1
0
        public static void Information(string[] args)
        {
            SvrTexture texture;

            // Initalize the texture
            try
            {
                texture = new SvrTexture(args[1]);
            }
            catch (NotAValidTextureException)
            {
                Console.WriteLine("Error: This is not a valid SVR texture.");
                return;
            }

            Console.WriteLine("Texture Information");
            Console.WriteLine("--------------------");
            Console.WriteLine("Format       : SVR");
            if (texture.HasGlobalIndex)
            {
                Console.WriteLine("Global Index : {0}", texture.GlobalIndex);
            }
            Console.WriteLine("Dimensions   : {0}x{1}", texture.TextureWidth, texture.TextureHeight);
            Console.WriteLine("Pixel Format : {0}", PixelFormatToString(texture.PixelFormat));
            Console.WriteLine("Data Format  : {0}", DataFormatToString(texture.DataFormat));
        }
Exemple #2
0
        public static void Decode(string[] args)
        {
            string inPalettePath = Path.ChangeExtension(args[1], ".svp");
            string outPath       = Path.ChangeExtension(args[1], ".png");

            // Get arguments
            for (int i = 2; i < args.Length; i++)
            {
                string arg = args[i].ToLower();

                // Change the output path
                if (arg == "-o" && args.Length > i + 1)
                {
                    outPath = args[i + 1];
                    i++;
                }

                // Palette path
                if (arg == "-p" && args.Length > i + 1)
                {
                    inPalettePath = args[i + 1];
                    i++;
                }
            }

            SvrTexture texture;

            // Initalize the texture
            try
            {
                texture = new SvrTexture(args[1]);
            }
            catch (NotAValidTextureException)
            {
                Console.WriteLine("Error: This is not a valid SVR texture.");
                return;
            }

            // Does this texture need an external palette file?
            if (texture.NeedsExternalPalette)
            {
                if (!File.Exists(inPalettePath))
                {
                    Console.WriteLine("Error: This texture requires an external palette file.");
                    return;
                }

                SvpPalette palette = new SvpPalette(inPalettePath);
                if (!palette.Initalized)
                {
                    Console.WriteLine("Error: {0} is not a valid SVR palette file.", inPalettePath);
                }

                texture.SetPalette(palette);
            }

            Console.WriteLine("Texture Information");
            Console.WriteLine("--------------------");
            Console.WriteLine("Format       : SVR");
            if (texture.HasGlobalIndex)
            {
                Console.WriteLine("Global Index : {0}", texture.GlobalIndex);
            }
            Console.WriteLine("Dimensions   : {0}x{1}", texture.TextureWidth, texture.TextureHeight);
            Console.WriteLine("Pixel Format : {0}", PixelFormatToString(texture.PixelFormat));
            Console.WriteLine("Data Format  : {0}", DataFormatToString(texture.DataFormat));

            // Decode the texture
            try
            {
                texture.Save(outPath);
            }
            catch (CannotDecodeTextureException)
            {
                Console.WriteLine("Error: Unable to decode this texture. The texture's pixel format or data format may not be supported.");
                return;
            }

            Console.WriteLine("\nTexture decoded successfully.");
        }
Exemple #3
0
        public static void Main(string[] args)
        {
            Console.WriteLine("VrConvert");
            Console.WriteLine("Version {0}", Version);
            Console.WriteLine("--------------------\n");

            // Display texture information
            if (args.Length > 1 && args[0] == "-i")
            {
                // Make sure the file exists
                if (!File.Exists(args[1]))
                {
                    Console.WriteLine("Error: {0} does not exist.", args[1]);
                    return;
                }

                // Determine which texture converter we must use
                if (GvrTexture.Is(args[1]))
                {
                    GvrConvert.Information(args);
                }
                else if (PvrTexture.Is(args[1]))
                {
                    PvrConvert.Information(args);
                }
                else if (SvrTexture.Is(args[1]))
                {
                    SvrConvert.Information(args);
                }
                else
                {
                    Console.WriteLine("Error: This is not a GVR, PVR, or SVR texture.");
                }
            }

            // Decode a texture
            else if (args.Length > 1 && args[0] == "-d")
            {
                // Make sure the file exists
                if (!File.Exists(args[1]))
                {
                    Console.WriteLine("Error: {0} does not exist.", args[1]);
                    return;
                }

                // Determine which texture converter we must use
                if (GvrTexture.Is(args[1]))
                {
                    GvrConvert.Decode(args);
                }
                else if (PvrTexture.Is(args[1]))
                {
                    PvrConvert.Decode(args);
                }
                else if (SvrTexture.Is(args[1]))
                {
                    SvrConvert.Decode(args);
                }
                else
                {
                    Console.WriteLine("Error: This is not a GVR, PVR, or SVR texture.");
                }
            }

            // Encode a texture
            else if (args.Length > 4 && args[0] == "-e")
            {
                // Make sure the file exists
                if (!File.Exists(args[1]))
                {
                    Console.WriteLine("Error: {0} does not exist.", args[1]);
                    return;
                }

                // Determine which texture converter we must use
                string format = args[2].ToLower();
                if (format == "gvr")
                {
                    GvrConvert.Encode(args);
                }
                else if (format == "pvr")
                {
                    PvrConvert.Encode(args);
                }
                else if (format == "svr")
                {
                    SvrConvert.Encode(args);
                }
                else
                {
                    Console.WriteLine("Error: Unknown format {0}", format);
                }
            }

            // More help
            else if (args.Length > 0 && args[0] == "/?")
            {
                if (args.Length > 1 && args[1].ToLower() == "gvr")
                {
                    Console.WriteLine("Encode GVR texture:\n");
                    Console.WriteLine("    VrConvert -e <input> gvr <palette format> <data format> [options]\n");
                    Console.WriteLine("    <input>          : Input file");
                    Console.WriteLine("    <palette format> : Palette format");
                    Console.WriteLine("    <data format>    : Data format");
                    Console.WriteLine("    -o <output>      : Specify output file");
                    Console.WriteLine("    -op <palette>    : Specify output palette file");
                    Console.WriteLine("    -nogbix          : Do not include a GBIX header");
                    Console.WriteLine("    -gcix            : Use GCIX instead of GBIX");
                    Console.WriteLine("    -gi <value>      : Set global index");
                    Console.WriteLine("    -mipmaps         : Texture will have mipmaps");
                    Console.WriteLine("    -ep              : Texture will have an external palette\n");
                    Console.WriteLine("    Palette formats:\n");
                    Console.WriteLine("        none (only for non-palettized formats)");
                    Console.WriteLine("        ia8");
                    Console.WriteLine("        rgb565");
                    Console.WriteLine("        rgb5a3\n");
                    Console.WriteLine("    Data formats:\n");
                    Console.WriteLine("        i4");
                    Console.WriteLine("        i8");
                    Console.WriteLine("        ia4");
                    Console.WriteLine("        ia8");
                    Console.WriteLine("        rgb565");
                    Console.WriteLine("        rgb5a3");
                    Console.WriteLine("        argb8888");
                    Console.WriteLine("        index4");
                    Console.WriteLine("        index8");
                    Console.WriteLine("        dxt1");
                }
                else if (args.Length > 1 && args[1].ToLower() == "pvr")
                {
                    Console.WriteLine("Encode PVR texture:\n");
                    Console.WriteLine("    VrConvert -e <input> pvr <palette format> <data format> [options]\n");
                    Console.WriteLine("    <input>        : Input file");
                    Console.WriteLine("    <pixel format> : Pixel format");
                    Console.WriteLine("    <data format>  : Data format");
                    Console.WriteLine("    -o <output>    : Specify output file");
                    Console.WriteLine("    -op <palette>  : Specify output palette file");
                    Console.WriteLine("    -nogbix        : Do not include a GBIX header");
                    Console.WriteLine("    -gi <value>    : Set global index");
                    Console.WriteLine("    -cmp <format>  : Set compression format\n");
                    Console.WriteLine("    Pixel formats:\n");
                    Console.WriteLine("        argb1555");
                    Console.WriteLine("        rgb565");
                    Console.WriteLine("        argb4444\n");
                    Console.WriteLine("    Data formats:\n");
                    Console.WriteLine("        square");
                    Console.WriteLine("        squaremipmaps");
                    Console.WriteLine("        index4");
                    Console.WriteLine("        index8");
                    Console.WriteLine("        rectangle");
                    Console.WriteLine("        rectangletwiddled");
                    Console.WriteLine("        squaretwiddledalt\n");
                    Console.WriteLine("    Compression formats:\n");
                    Console.WriteLine("        none");
                    Console.WriteLine("        rle");
                }
                else if (args.Length > 1 && args[1].ToLower() == "svr")
                {
                    Console.WriteLine("Encode SVR texture:\n");
                    Console.WriteLine("    VrConvert -e <input> svr <palette format> <data format> [options]\n");
                    Console.WriteLine("    <input>        : Input file");
                    Console.WriteLine("    <pixel format> : Pixel format");
                    Console.WriteLine("    <data format>  : Data format");
                    Console.WriteLine("    -o <output>    : Specify output file");
                    Console.WriteLine("    -op <palette>  : Specify output palette file");
                    Console.WriteLine("    -nogbix        : Do not include a GBIX header");
                    Console.WriteLine("    -gi <value>    : Set global index\n");
                    Console.WriteLine("    Pixel formats:\n");
                    Console.WriteLine("        rgb5a3");
                    Console.WriteLine("        argb8888\n");
                    Console.WriteLine("    Data formats:\n");
                    Console.WriteLine("        rectangle");
                    Console.WriteLine("        index4ep");
                    Console.WriteLine("        index8ep");
                    Console.WriteLine("        index4");
                    Console.WriteLine("        index8");
                }
                else
                {
                    Console.WriteLine("Decode texture:\n");
                    Console.WriteLine("    VrConvert -d <input> [options]\n");
                    Console.WriteLine("    <input>      : Input file");
                    Console.WriteLine("    -p <palette> : Specify palette file");
                    Console.WriteLine("    -o <output>  : Specify output file\n");
                    Console.WriteLine("Encode texture:\n");
                    Console.WriteLine("    VrConvert -e <input> <vr format> <pixel format> <data format> [options]\n");
                    Console.WriteLine("    <input>        : Input file");
                    Console.WriteLine("    <vr format>    : VR format");
                    Console.WriteLine("    <pixel format> : Pixel format");
                    Console.WriteLine("    <data format>  : Data format");
                    Console.WriteLine("    -o <output>    : Specify output file");
                    Console.WriteLine("    -op <palette>  : Specify output palette file");
                    Console.WriteLine("    -nogbix        : Do not include a GBIX header");
                    Console.WriteLine("    -gi <value>    : Set global index\n");
                    Console.WriteLine("Texture information:\n");
                    Console.WriteLine("    VrConvert -i <input>\n");
                    Console.WriteLine("    <input> : Input file\n");
                    Console.WriteLine("More help:\n");
                    Console.WriteLine("    VrConvert /? gvr");
                    Console.WriteLine("    VrConvert /? pvr");
                    Console.WriteLine("    VrConvert /? svr");
                }
            }

            // Display simple help
            else
            {
                Console.WriteLine("Decode texture:\n");
                Console.WriteLine("    VrConvert -d <input> [options]\n");
                Console.WriteLine("Encode texture:\n");
                Console.WriteLine("    VrConvert -e <input> <vr format> <pixel format> <data format> [options]\n");
                Console.WriteLine("Texture information:\n");
                Console.WriteLine("    VrConvert -i <input>\n");
                Console.WriteLine("More help:\n");
                Console.WriteLine("    VrConvert /?\n");
                Console.WriteLine("    VrConvert /? gvr");
                Console.WriteLine("    VrConvert /? pvr");
                Console.WriteLine("    VrConvert /? svr");
            }
        }