Esempio n. 1
0
        public void ReplaceImage(Image image, string FileName)
        {
            GTXImporterSettings setting = SetImporterSettings(image, FileName);

            setting.MipSwizzle       = Tex2Swizzle;
            setting.MipCountOriginal = (int)MipCount;

            GTXTextureImporter importer = new GTXTextureImporter();

            importer.LoadSetting(setting);

            if (importer.ShowDialog() == DialogResult.OK)
            {
                Cursor.Current = Cursors.WaitCursor;

                if (setting.GenerateMipmaps && !setting.IsFinishedCompressing)
                {
                    setting.DataBlockOutput.Clear();
                    setting.DataBlockOutput.Add(setting.GenerateMips());
                }

                if (setting.DataBlockOutput != null)
                {
                    var surface = GTXSwizzle.CreateGx2Texture(setting.DataBlockOutput[0], setting);
                    surface.compSel    = new byte[4];
                    surface.compSel[0] = (byte)setting.RedComp;
                    surface.compSel[1] = (byte)setting.GreenComp;
                    surface.compSel[2] = (byte)setting.BlueComp;
                    surface.compSel[3] = (byte)setting.alphaRef;

                    var tex = FromGx2Surface(surface, setting.TexName);
                    UpdateTex(tex);

                    texture.Name = Text;
                    IsReplaced   = true;
                    Read(texture);
                    LoadOpenGLTexture();
                }
                else
                {
                    MessageBox.Show("Something went wrong???");
                }
            }

            if (IsEditorActive() && IsReplaced)
            {
                UpdateEditor();
            }
        }
Esempio n. 2
0
        public void ReplaceImage(Image image, string FileName)
        {
            GTXImporterSettings setting  = SetImporterSettings(image, FileName);
            GTXTextureImporter  importer = new GTXTextureImporter();

            if (Tex2Swizzle != 0)
            {
                setting.swizzle = Tex2Swizzle;
            }

            importer.LoadSetting(setting);

            if (importer.ShowDialog() == DialogResult.OK)
            {
                Cursor.Current = Cursors.WaitCursor;

                if (setting.GenerateMipmaps)
                {
                    setting.DataBlockOutput.Clear();
                    setting.DataBlockOutput.Add(setting.GenerateMips());
                }

                if (setting.DataBlockOutput != null)
                {
                    var surface = setting.CreateGx2Texture(setting.DataBlockOutput[0]);
                    var tex     = FromGx2Surface(surface, setting);
                    if (texture == null)
                    {
                        texture = new Texture();
                    }

                    UpdateTex(tex);

                    texture.Name = Text;
                    IsEdited     = true;
                    Read(texture);
                    LoadOpenGLTexture();
                }
                else
                {
                    MessageBox.Show("Something went wrong???");
                }
            }

            if (IsEditorActive())
            {
                UpdateEditor();
            }
        }
Esempio n. 3
0
        public void ReplaceTexture(string FileName, TEX_FORMAT DefaultFormat = TEX_FORMAT.UNKNOWN, uint MipMapCount = 0,
                                   uint swizzlePattern    = 0, TEX_FORMAT[] SupportedFormats = null, bool DisplayBc4AlphaSetting = false,
                                   bool IsSwizzleReadOnly = false, bool IsTileModeReadOnly   = false, bool IsFormatReadOnly      = false, bool flipTextureY = false)
        {
            string ext = System.IO.Path.GetExtension(FileName);

            ext = ext.ToLower();

            if (ext == ".bftex")
            {
                texture.Import(FileName, ((BFRESGroupNode)Parent).GetResFileU());
                texture.Name = Text;
                IsReplaced   = true;
                Read(texture);

                if (IsEditorActive())
                {
                    UpdateEditor();
                }
                return;
            }

            GTXImporterSettings setting = SetImporterSettings(FileName, DefaultFormat);

            setting.FlipY          = flipTextureY;
            setting.MipSwizzle     = Tex2Swizzle;
            setting.SwizzlePattern = swizzlePattern;

            GTXTextureImporter importer = new GTXTextureImporter();

            importer.DisplayBC4Alpha  = DisplayBc4AlphaSetting;
            importer.ReadOnlySwizzle  = IsSwizzleReadOnly;
            importer.ReadOnlyTileMode = IsSwizzleReadOnly;
            importer.ReadOnlyFormat   = IsFormatReadOnly;

            if (MipMapCount != 0)
            {
                setting.MipCount            = MipMapCount;
                importer.OverrideMipCounter = true;
            }
            if (SupportedFormats != null)
            {
                importer.LoadSupportedFormats(SupportedFormats);
            }

            importer.LoadSetting(setting);

            if (ext == ".dds")
            {
                if (setting.DataBlockOutput != null)
                {
                    var surface = GTXSwizzle.CreateGx2Texture(setting.DataBlockOutput[0], setting);
                    var tex     = FromGx2Surface(surface, setting.TexName);
                    UpdateTex(tex);
                    texture.Name = Text;
                    IsReplaced   = true;
                    Read(texture);
                    LoadOpenGLTexture();
                    LibraryGUI.UpdateViewport();
                }
            }
            else
            {
                if (importer.ShowDialog() == DialogResult.OK)
                {
                    Cursor.Current = Cursors.WaitCursor;

                    UseBc4Alpha = setting.UseBc4Alpha;
                    if (setting.GenerateMipmaps && !setting.IsFinishedCompressing)
                    {
                        setting.DataBlockOutput.Clear();
                        setting.DataBlockOutput.Add(setting.GenerateMips());
                    }

                    if (setting.DataBlockOutput != null)
                    {
                        var surface = GTXSwizzle.CreateGx2Texture(setting.DataBlockOutput[0], setting);
                        var tex     = FromGx2Surface(surface, setting.TexName);
                        UpdateTex(tex);
                        texture.Name = Text;
                        IsReplaced   = true;
                        Read(texture);
                        LoadOpenGLTexture();
                        LibraryGUI.UpdateViewport();
                    }
                    else
                    {
                        MessageBox.Show("Something went wrong???");
                    }
                }
            }
            if (IsEditorActive() && IsReplaced)
            {
                UpdateEditor();
            }
        }
Esempio n. 4
0
        public override void Replace(string FileName)
        {
            string ext = System.IO.Path.GetExtension(FileName);

            ext = ext.ToLower();

            if (ext == ".bftex")
            {
                texture.Import(FileName, ((BFRESGroupNode)Parent).GetResFileU());
                texture.Name = Text;
                IsEdited     = true;
                Read(texture);

                if (IsEditorActive())
                {
                    UpdateEditor();
                }
                return;
            }

            GTXImporterSettings setting  = SetImporterSettings(FileName);
            GTXTextureImporter  importer = new GTXTextureImporter();

            if (Tex2Swizzle != 0)
            {
                setting.swizzle = Tex2Swizzle;
            }

            importer.LoadSetting(setting);

            if (ext == ".dds")
            {
                if (setting.DataBlockOutput != null)
                {
                    var surface = setting.CreateGx2Texture(setting.DataBlockOutput[0]);
                    var tex     = FromGx2Surface(surface, setting);
                    UpdateTex(tex);
                    texture.Name = Text;
                    IsEdited     = true;
                    Read(texture);
                    LoadOpenGLTexture();
                }
            }
            else
            {
                if (importer.ShowDialog() == DialogResult.OK)
                {
                    Cursor.Current = Cursors.WaitCursor;

                    if (setting.GenerateMipmaps)
                    {
                        setting.DataBlockOutput.Clear();
                        setting.DataBlockOutput.Add(setting.GenerateMips());
                    }

                    if (setting.DataBlockOutput != null)
                    {
                        var surface = setting.CreateGx2Texture(setting.DataBlockOutput[0]);
                        var tex     = FromGx2Surface(surface, setting);
                        UpdateTex(tex);
                        texture.Name = Text;
                        IsEdited     = true;
                        Read(texture);
                        LoadOpenGLTexture();
                    }
                    else
                    {
                        MessageBox.Show("Something went wrong???");
                    }
                }
            }
            if (IsEditorActive())
            {
                UpdateEditor();
            }
        }