Exemplo n.º 1
0
        public IOpsCommand RemapCommand(OpsParsedStatement statement)
        {
            OpsParsedArgument fileArg = statement.FindArgument("filename");

            if (fileArg == null)
            {
                fileArg = statement.FindArgument("");
                if (fileArg == null)
                {
                    throw OpsException.ArgRequired("filename");
                }
            }
            string filename = fileArg.Value;


            string extension = System.IO.Path.GetExtension(filename);

            if (extension == null || extension[0] == '\0')
            {
                throw new OpsException("Cannot find an appropriate loader for file: " + filename);
            }

            if (extension[0] == '.')
            {
                extension = extension.TrimStart(new char[] { '.' });
            }

            return(Program.CommandLibrary.GetCommand("Load" + extension));
        }
Exemplo n.º 2
0
            public ShadeArgs(OpsParsedStatement statement)
            {
                foreach (OpsParsedArgument arg in statement.Args)
                {
                    if (string.Compare(arg.Name, "Shader", true) == 0)
                    {
                        Shader = arg.Value;
                    }
                    else if (string.Compare(arg.Name, "filename", true) == 0)
                    {
                        File = arg.Value;
                    }
                    else if (string.Compare(arg.Name, "", true) == 0)
                    {
                        File = arg.Value;
                    }
                    else if (string.Compare(arg.Name, "Src", true) == 0)
                    {
                    } //do nothing...this is just to make sure we don't make it a parameter for the psh
                    else
                    {
                        Constants.Add(arg);
                    }
                }

                if (File == null)
                {
                    throw OpsException.ArgRequired("filename");
                }
            }
Exemplo n.º 3
0
            public NewTex2dArgs(OpsParsedStatement statement)
            {
                OpsParsedArgument nameArg = statement.FindArgument("dst");

                if (nameArg == null)
                {
                    nameArg = statement.FindArgument("");
                    if (nameArg == null)
                    {
                        throw OpsException.ArgRequired("dst");
                    }
                }
                Name = nameArg.Value;

                OpsParsedArgument formatArg = statement.FindArgument("Format");

                if (formatArg == null)
                {
                    throw OpsException.ArgRequired("format");
                }
                this.Format = OpsFormatHelper.FindByFormat(formatArg.Value).Format;

                OpsParsedArgument widthArg = statement.FindArgument("Width");

                if (widthArg == null)
                {
                    throw OpsException.ArgRequired("width");
                }
                Width = int.Parse(widthArg.Value);

                OpsParsedArgument heightArg = statement.FindArgument("Height");

                if (heightArg == null)
                {
                    throw OpsException.ArgRequired("height");
                }
                Height = int.Parse(heightArg.Value);

                if (Width > 4096 || Height > 4096)
                {
                    throw new OpsException("Dimensions must not exceed 4k");
                }


                OpsParsedArgument mipsArg = statement.FindArgument("Mips");

                if (mipsArg != null)
                {
                    Mips = int.Parse(mipsArg.Value);
                }

                OpsParsedArgument srcArg = statement.FindArgument("Src");

                Src = (srcArg == null) ? null : srcArg.Value;
            }
Exemplo n.º 4
0
 //IOpsCommand
 public object ParseArguments(OpsParsedStatement statement)
 {
     OpsParsedArgument pathArg = statement.FindArgument("filename");
     if(pathArg == null)
     {
         pathArg = statement.FindArgument("");
         if(pathArg == null)
             throw OpsException.ArgRequired("filename");
     }
     return pathArg.Value;
 }
Exemplo n.º 5
0
            public TexFormatArgs(OpsParsedStatement statement)
            {
                OpsParsedArgument formatArg = statement.FindArgument("format");

                if (formatArg == null)
                {
                    formatArg = statement.FindArgument("");
                    if (formatArg == null)
                    {
                        throw OpsException.ArgRequired("format");
                    }
                }
                this.Format = OpsFormatHelper.FindByFormat(formatArg.Value).Format;
            }
Exemplo n.º 6
0
            public FlattenArguments(OpsParsedStatement statement)
            {
                OpsParsedArgument newModelArg = statement.FindArgument("dst");

                if (newModelArg == null)
                {
                    newModelArg = statement.FindArgument("");
                    if (newModelArg == null)
                    {
                        throw OpsException.ArgRequired("dst");
                    }
                }

                NewModel = newModelArg.Value;
            }
Exemplo n.º 7
0
            public UnloadArguments(OpsParsedStatement statement)
            {
                OpsParsedArgument srcArg = statement.FindArgument("src");

                if (srcArg == null)
                {
                    srcArg = statement.FindArgument("");
                    if (srcArg == null)
                    {
                        throw OpsException.ArgRequired("src");
                    }
                }
                Src = srcArg.Value;

                OpsParsedArgument filterArg = statement.FindArgument("Type");

                if (filterArg != null)
                {
                    if (0 == string.Compare(filterArg.Value, "Texture", true))
                    {
                        Type = ContentType.TEXTURES;
                    }
                    else if (0 == string.Compare(filterArg.Value, "Textures", true))
                    {
                        Type = ContentType.TEXTURES;
                    }
                    else if (0 == string.Compare(filterArg.Value, "Model", true))
                    {
                        Type = ContentType.MODELS;
                    }
                    else if (0 == string.Compare(filterArg.Value, "Models", true))
                    {
                        Type = ContentType.MODELS;
                    }
                    else if (0 == string.Compare(filterArg.Value, "Both", true))
                    {
                        Type = ContentType.GENERIC;
                    }
                    else
                    {
                        throw new OpsException("Type Argument is invalid.  Value must be (Textures|Models|Both).");
                    }
                }
            }
Exemplo n.º 8
0
            public TexSaverArgs(OpsParsedStatement statement)
            {
                OpsParsedArgument fileArg = statement.FindArgument("filename");

                if (fileArg == null)
                {
                    fileArg = statement.FindArgument("");
                    if (fileArg == null)
                    {
                        throw OpsException.ArgRequired("filename");
                    }
                }
                this.Path = fileArg.Value;

                string extension = System.IO.Path.GetExtension(Path);

                extension = extension.TrimStart(new char[] { '.' });

                this.Format = (ImageFileFormat)Enum.Parse(typeof(ImageFileFormat), extension, true);
            }
Exemplo n.º 9
0
            public SavexArguments(OpsParsedStatement statement)
            {
                OpsParsedArgument fileArg = statement.FindArgument("filename");

                if (fileArg == null)
                {
                    fileArg = statement.FindArgument("");
                    if (fileArg == null)
                    {
                        throw OpsException.ArgRequired("filename");
                    }
                }
                Filename = fileArg.Value;
                if (!Path.IsPathRooted(Filename))
                {
                    Filename = Path.Combine(Directory.GetCurrentDirectory(), Filename);
                }

                OpsParsedArgument argX = statement.FindArgument("XFileType");

                if (argX != null)
                {
                    if (0 == String.Compare(argX.Value, "text", true))
                    {
                        saveType = XFileFormat.Text;
                    }
                    else if (0 == String.Compare(argX.Value, "binary", true))
                    {
                        saveType = XFileFormat.Binary;
                    }
                    else if (0 == String.Compare(argX.Value, "compressed", true))
                    {
                        saveType = XFileFormat.Compressed;
                    }
                    else
                    {
                        throw new OpsException("Unrecognized XFile argument value.  Use (text|binary|compressed)");
                    }
                }
            }
Exemplo n.º 10
0
            public DelVDataArguments(OpsParsedStatement statement)
            {
                OpsParsedArgument usageArg = statement.FindArgument("usage");

                if (usageArg == null)
                {
                    usageArg = statement.FindArgument("");
                    if (usageArg == null)
                    {
                        throw OpsException.ArgRequired("usage");
                    }
                }
                usage = MeshDeclarationHelper.DecodeUsage(usageArg.Value);

                OpsParsedArgument usageIdxArg = statement.FindArgument("usageIdx");

                if (usageIdxArg != null)
                {
                    hasSrcUsageIdx = true;
                    usageIdx       = int.Parse(usageIdxArg.Value);
                }
            }
Exemplo n.º 11
0
            public TexLoaderArgs(OpsParsedStatement statement)
            {
                OpsParsedArgument pathArg = statement.FindArgument("filename");

                if (pathArg == null)
                {
                    pathArg = statement.FindArgument("");
                    if (pathArg == null)
                    {
                        throw OpsException.ArgRequired("filename");
                    }
                }
                Path = pathArg.Value;


                OpsParsedArgument srgbArg = statement.FindArgument("srgb");

                if (srgbArg != null)
                {
                    SRGB = bool.Parse(srgbArg.Value);
                }
            }
Exemplo n.º 12
0
            public CloneVDataArguments(OpsParsedStatement statement)
            {
                OpsParsedArgument usageArg = statement.FindArgument("usage");

                if (usageArg == null)
                {
                    usageArg = statement.FindArgument("");
                    if (usageArg == null)
                    {
                        throw OpsException.ArgRequired("usage");
                    }
                }
                srcUsage = MeshDeclarationHelper.DecodeUsage(usageArg.Value);

                OpsParsedArgument usageIdxArg = statement.FindArgument("usageIdx");

                if (usageIdxArg != null)
                {
                    srcUsageIdx    = int.Parse(usageIdxArg.Value);
                    hasSrcUsageIdx = true;
                }

                OpsParsedArgument dstUsageArg = statement.FindArgument("newusage");

                if (dstUsageArg != null)
                {
                    dstUsage = MeshDeclarationHelper.DecodeUsage(dstUsageArg.Value);
                }

                OpsParsedArgument dstUsageIdxArg = statement.FindArgument("newusageIdx");

                if (dstUsageIdxArg != null)
                {
                    dstUsageIdx    = int.Parse(dstUsageIdxArg.Value);
                    hasDstUsageIdx = true;
                }
            }
Exemplo n.º 13
0
            public Splice2dArgs(OpsParsedStatement statement)
            {
                OpsParsedArgument dstArg = statement.FindArgument("dst");

                if (dstArg == null)
                {
                    dstArg = statement.FindArgument("");
                    if (dstArg == null)
                    {
                        throw OpsException.ArgRequired("dst");
                    }
                }
                Dst = dstArg.Value;

                OpsParsedArgument volumeArg = statement.FindArgument("Volume");

                if (volumeArg != null)
                {
                    Volume = int.Parse(volumeArg.Value);
                }

                OpsParsedArgument faceArg = statement.FindArgument("Face");

                if (faceArg != null)
                {
                    if (0 == string.Compare(faceArg.Value, "+x", true))
                    {
                        Face = CubeMapFace.PositiveX;
                    }
                    else if (0 == string.Compare(faceArg.Value, "+y", true))
                    {
                        Face = CubeMapFace.PositiveY;
                    }
                    else if (0 == string.Compare(faceArg.Value, "+z", true))
                    {
                        Face = CubeMapFace.PositiveZ;
                    }
                    else if (0 == string.Compare(faceArg.Value, "-x", true))
                    {
                        Face = CubeMapFace.NegativeX;
                    }
                    else if (0 == string.Compare(faceArg.Value, "-y", true))
                    {
                        Face = CubeMapFace.NegativeY;
                    }
                    else if (0 == string.Compare(faceArg.Value, "-z", true))
                    {
                        Face = CubeMapFace.NegativeZ;
                    }
                    else
                    {
                        throw new OpsException("Face Argument was not recognized.  must be '[+-][xyz]'");
                    }
                }

                OpsParsedArgument mipsArg = statement.FindArgument("mipmap");

                if (mipsArg != null)
                {
                    Mips = int.Parse(mipsArg.Value);
                }
            }
Exemplo n.º 14
0
            public NewTexCubeArgs(OpsParsedStatement statement)
            {
                OpsParsedArgument nameArg = statement.FindArgument("dst");

                if (nameArg == null)
                {
                    nameArg = statement.FindArgument("");
                    if (nameArg == null)
                    {
                        throw OpsException.ArgRequired("dst");
                    }
                }
                Name = nameArg.Value;

                OpsParsedArgument formatArg = statement.FindArgument("Format");

                if (formatArg == null)
                {
                    throw OpsException.ArgRequired("format");
                }
                this.Format = OpsFormatHelper.FindByFormat(formatArg.Value).Format;

                OpsParsedArgument sizeArg = statement.FindArgument("Size");

                if (sizeArg == null)
                {
                    throw OpsException.ArgRequired("size");
                }
                Size = int.Parse(sizeArg.Value);

                if (Size > 4096)
                {
                    throw new OpsException("Dimensions must not exceed 4k");
                }

                OpsParsedArgument mipsArg = statement.FindArgument("Mips");

                if (mipsArg != null)
                {
                    Mips = int.Parse(mipsArg.Value);
                }

                OpsParsedArgument srcxpArg = statement.FindArgument("SrcXP");

                SrcXP = (srcxpArg == null) ? null : srcxpArg.Value;

                OpsParsedArgument srcxmArg = statement.FindArgument("SrcXM");

                SrcXM = (srcxmArg == null) ? null : srcxmArg.Value;

                OpsParsedArgument srcypArg = statement.FindArgument("SrcYP");

                SrcYP = (srcypArg == null) ? null : srcypArg.Value;

                OpsParsedArgument srcymArg = statement.FindArgument("SrcYM");

                SrcYM = (srcymArg == null) ? null : srcymArg.Value;

                OpsParsedArgument srczpArg = statement.FindArgument("SrcZP");

                SrcZP = (srcypArg == null) ? null : srczpArg.Value;

                OpsParsedArgument srczmArg = statement.FindArgument("SrcZM");

                SrcZM = (srczmArg == null) ? null : srczmArg.Value;
            }