From 441751333e4cd8b8d1a6dd34661fe511742d0835 Mon Sep 17 00:00:00 2001 From: gmh4589 <41452060+gmh4589@users.noreply.github.com> Date: Fri, 28 Jul 2023 16:54:45 +0300 Subject: [PATCH] Tested build Tested build, some function can't work --- App.config | 6 + DDS Header Generator.csproj | 84 ++ DDS Header Generator.sln | 25 + Form1.Designer.cs | 247 +++++ Form1.cs | 97 ++ Form1.resx | 120 +++ Program.cs | 22 + Properties/AssemblyInfo.cs | 36 + Properties/Resources.Designer.cs | 71 ++ Properties/Resources.resx | 117 +++ Properties/Settings.Designer.cs | 30 + Properties/Settings.settings | 7 + bin/Debug/DDS Header Generator.exe | Bin 0 -> 29184 bytes bin/Debug/DDS Header Generator.exe.config | 6 + bin/Debug/DDS Header Generator.pdb | Bin 0 -> 40448 bytes codecList.cs | 955 ++++++++++++++++++ codecsList.cs | 46 + ...r Generator.csproj.AssemblyReference.cache | Bin 0 -> 6030 bytes ...r Generator.csproj.CoreCompileInputs.cache | 1 + ...ader Generator.csproj.FileListAbsolute.txt | 11 + ...er Generator.csproj.GenerateResource.cache | Bin 0 -> 126 bytes ...tor.csproj.SuggestedBindingRedirects.cache | 0 obj/Debug/DDS Header Generator.exe | Bin 0 -> 29184 bytes obj/Debug/DDS Header Generator.pdb | Bin 0 -> 40448 bytes .../DDS_Header_Generator.Form1.resources | Bin 0 -> 180 bytes ...r_Generator.Properties.Resources.resources | Bin 0 -> 180 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 2117 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7154 bytes 28 files changed, 1881 insertions(+) create mode 100644 App.config create mode 100644 DDS Header Generator.csproj create mode 100644 DDS Header Generator.sln create mode 100644 Form1.Designer.cs create mode 100644 Form1.cs create mode 100644 Form1.resx create mode 100644 Program.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx create mode 100644 Properties/Settings.Designer.cs create mode 100644 Properties/Settings.settings create mode 100644 bin/Debug/DDS Header Generator.exe create mode 100644 bin/Debug/DDS Header Generator.exe.config create mode 100644 bin/Debug/DDS Header Generator.pdb create mode 100644 codecList.cs create mode 100644 codecsList.cs create mode 100644 obj/Debug/DDS Header Generator.csproj.AssemblyReference.cache create mode 100644 obj/Debug/DDS Header Generator.csproj.CoreCompileInputs.cache create mode 100644 obj/Debug/DDS Header Generator.csproj.FileListAbsolute.txt create mode 100644 obj/Debug/DDS Header Generator.csproj.GenerateResource.cache create mode 100644 obj/Debug/DDS Header Generator.csproj.SuggestedBindingRedirects.cache create mode 100644 obj/Debug/DDS Header Generator.exe create mode 100644 obj/Debug/DDS Header Generator.pdb create mode 100644 obj/Debug/DDS_Header_Generator.Form1.resources create mode 100644 obj/Debug/DDS_Header_Generator.Properties.Resources.resources create mode 100644 obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/App.config b/App.config new file mode 100644 index 0000000..5754728 --- /dev/null +++ b/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DDS Header Generator.csproj b/DDS Header Generator.csproj new file mode 100644 index 0000000..bf9db6d --- /dev/null +++ b/DDS Header Generator.csproj @@ -0,0 +1,84 @@ + + + + + Debug + AnyCPU + {B5F572D0-C5CB-4739-8982-D9C2C7C4CD4C} + WinExe + DDS_Header_Generator + DDS Header Generator + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/DDS Header Generator.sln b/DDS Header Generator.sln new file mode 100644 index 0000000..ca80f82 --- /dev/null +++ b/DDS Header Generator.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33829.357 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DDS Header Generator", "DDS Header Generator.csproj", "{B5F572D0-C5CB-4739-8982-D9C2C7C4CD4C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B5F572D0-C5CB-4739-8982-D9C2C7C4CD4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5F572D0-C5CB-4739-8982-D9C2C7C4CD4C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5F572D0-C5CB-4739-8982-D9C2C7C4CD4C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5F572D0-C5CB-4739-8982-D9C2C7C4CD4C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A6606F05-7920-4011-80AE-818FEB12CA0B} + EndGlobalSection +EndGlobal diff --git a/Form1.Designer.cs b/Form1.Designer.cs new file mode 100644 index 0000000..754c0b1 --- /dev/null +++ b/Form1.Designer.cs @@ -0,0 +1,247 @@ +namespace DDS_Header_Generator +{ + partial class Form1 + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.fileBTN = new System.Windows.Forms.Button(); + this.okBTN = new System.Windows.Forms.Button(); + this.folderBTN = new System.Windows.Forms.Button(); + this.cancelBTN = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.wInput = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.hInput = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.cInput = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.offsetInput = new System.Windows.Forms.NumericUpDown(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.wInput)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.hInput)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.offsetInput)).BeginInit(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.fileBTN, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.okBTN, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.folderBTN, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.cancelBTN, 1, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 215); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 53F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 47F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(200, 70); + this.tableLayoutPanel1.TabIndex = 0; + // + // fileBTN + // + this.fileBTN.Location = new System.Drawing.Point(3, 3); + this.fileBTN.Name = "fileBTN"; + this.fileBTN.Size = new System.Drawing.Size(94, 31); + this.fileBTN.TabIndex = 0; + this.fileBTN.Text = "Open file"; + this.fileBTN.UseVisualStyleBackColor = true; + this.fileBTN.Click += new System.EventHandler(this.folderOpen); + // + // okBTN + // + this.okBTN.Location = new System.Drawing.Point(103, 3); + this.okBTN.Name = "okBTN"; + this.okBTN.Size = new System.Drawing.Size(94, 31); + this.okBTN.TabIndex = 1; + this.okBTN.Text = "Save file(s)"; + this.okBTN.UseVisualStyleBackColor = true; + // + // folderBTN + // + this.folderBTN.Location = new System.Drawing.Point(3, 40); + this.folderBTN.Name = "folderBTN"; + this.folderBTN.Size = new System.Drawing.Size(94, 27); + this.folderBTN.TabIndex = 2; + this.folderBTN.Text = "Open folder"; + this.folderBTN.UseVisualStyleBackColor = true; + // + // cancelBTN + // + this.cancelBTN.Location = new System.Drawing.Point(103, 40); + this.cancelBTN.Name = "cancelBTN"; + this.cancelBTN.Size = new System.Drawing.Size(94, 27); + this.cancelBTN.TabIndex = 3; + this.cancelBTN.Text = "Cansel"; + this.cancelBTN.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(10, 10); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(35, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Width"; + // + // wInput + // + this.wInput.Location = new System.Drawing.Point(10, 30); + this.wInput.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.wInput.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.wInput.Name = "wInput"; + this.wInput.Size = new System.Drawing.Size(200, 20); + this.wInput.TabIndex = 2; + this.wInput.Value = new decimal(new int[] { + 1024, + 0, + 0, + 0}); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(10, 60); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(38, 13); + this.label2.TabIndex = 3; + this.label2.Text = "Hieght"; + // + // hInput + // + this.hInput.Location = new System.Drawing.Point(10, 80); + this.hInput.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.hInput.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.hInput.Name = "hInput"; + this.hInput.Size = new System.Drawing.Size(200, 20); + this.hInput.TabIndex = 4; + this.hInput.Value = new decimal(new int[] { + 1024, + 0, + 0, + 0}); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(10, 110); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(38, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Codec"; + // + // cInput + // + this.cInput.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.cInput.FormattingEnabled = true; + this.cInput.Location = new System.Drawing.Point(10, 130); + this.cInput.Name = "cInput"; + this.cInput.Size = new System.Drawing.Size(200, 21); + this.cInput.TabIndex = 6; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(10, 160); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(35, 13); + this.label4.TabIndex = 7; + this.label4.Text = "Offset"; + // + // offsetInput + // + this.offsetInput.Location = new System.Drawing.Point(10, 180); + this.offsetInput.Maximum = new decimal(new int[] { + 1410065408, + 2, + 0, + 0}); + this.offsetInput.Name = "offsetInput"; + this.offsetInput.Size = new System.Drawing.Size(200, 20); + this.offsetInput.TabIndex = 8; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(224, 301); + this.Controls.Add(this.offsetInput); + this.Controls.Add(this.label4); + this.Controls.Add(this.cInput); + this.Controls.Add(this.label3); + this.Controls.Add(this.hInput); + this.Controls.Add(this.label2); + this.Controls.Add(this.wInput); + this.Controls.Add(this.label1); + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "Form1"; + this.Text = "DDS HG"; + this.tableLayoutPanel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.wInput)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.hInput)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.offsetInput)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button fileBTN; + private System.Windows.Forms.Button okBTN; + private System.Windows.Forms.Button folderBTN; + private System.Windows.Forms.Button cancelBTN; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown wInput; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.NumericUpDown hInput; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox cInput; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.NumericUpDown offsetInput; + } +} + diff --git a/Form1.cs b/Form1.cs new file mode 100644 index 0000000..906db95 --- /dev/null +++ b/Form1.cs @@ -0,0 +1,97 @@ +using System; +using System.IO; +using System.Windows.Forms; + +namespace DDS_Header_Generator +{ + public partial class Form1 : Form + + { + private string fileName = string.Empty; + private CodecList codecList; + + public Form1() + { + InitializeComponent(); + + codecList = new CodecList(); + + string[] codecs = codecList.GetCodecList(); + cInput.Items.AddRange(codecs); + cInput.SelectedIndex = Array.IndexOf(codecs, "BC3_UNORM"); + + okBTN.Click += dds_save; + cancelBTN.Click += (s, e) => this.Close(); + fileBTN.Click += fileOpen; + folderBTN.Click += folderOpen; + } + + private void folderOpen(object sender, EventArgs e) + { + FolderBrowserDialog folderDialog = new FolderBrowserDialog(); + DialogResult result = folderDialog.ShowDialog(); + if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(folderDialog.SelectedPath)) + { + fileName = folderDialog.SelectedPath; + Console.WriteLine(fileName); + } + } + + private void fileOpen(object sender, EventArgs e) + { + OpenFileDialog openFileDialog = new OpenFileDialog(); + DialogResult result = openFileDialog.ShowDialog(); + if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(openFileDialog.FileName)) + { + fileName = openFileDialog.FileName; + Console.WriteLine(fileName); + } + } + + + private void dds_save(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(fileName)) + { + MessageBox.Show("Файл не выбран!", "ВНИМАНИЕ!", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + using (FileStream sf = new FileStream(fileName, FileMode.Open, FileAccess.Read)) + { + sf.Seek((long)offsetInput.Value, SeekOrigin.Begin); + byte[] data = new byte[sf.Length - sf.Position]; + sf.Read(data, 0, data.Length); + + int x = (int)wInput.Value; + int y = (int)hInput.Value; + string codec = cInput.SelectedItem.ToString(); + byte[] bpp = codecList.GetBPP(codec); + byte[] cdc = codecList.GetCodec(codec); + byte[] flags = codecList.GetCodecFlags(codec); + byte[] rgbaMask = codecList.GetRGBAMask(codec); + byte[] h_flg = codecList.GetHeadFlags(codec); + + using (FileStream ddsFile = new FileStream("temp.dds", FileMode.Create, FileAccess.Write)) + { + ddsFile.Write(new byte[] { 0x44, 0x44, 0x53, 0x20, 0x7C, 0x00, 0x00, 0x00 }, 0, 8); // DDS Header + ddsFile.Write(h_flg, 0, h_flg.Length); + ddsFile.Write(BitConverter.GetBytes(x), 0, 4); // Height + ddsFile.Write(BitConverter.GetBytes(y), 0, 4); // Width + ddsFile.Write(BitConverter.GetBytes(0), 0, 4); // Linear size + ddsFile.Write(BitConverter.GetBytes(0), 0, 4); // Depth + ddsFile.Write(BitConverter.GetBytes(0), 0, 4); // Mipmap count + ddsFile.Write(BitConverter.GetBytes(0), 0, 44); // Reserved + ddsFile.Write(flags, 0, flags.Length); // Flags + ddsFile.Write(cdc, 0, cdc.Length); // FourCC + ddsFile.Write(bpp, 0, bpp.Length); // BPP + ddsFile.Write(rgbaMask, 0, rgbaMask.Length); + ddsFile.Write(BitConverter.GetBytes(0x08), 0, 4); // Caps + ddsFile.Write(BitConverter.GetBytes(0x1040), 0, 4); // Caps2 + ddsFile.Write(BitConverter.GetBytes(0), 0, 16); // Reserved + ddsFile.Write(data, 0, data.Length); + } + } + } + } +} diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..abf6877 --- /dev/null +++ b/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DDS_Header_Generator +{ + internal static class Program + { + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1844e98 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанных со сборкой. +[assembly: AssemblyTitle("DDS Header Generator")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DDS Header Generator")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, следует установить атрибут ComVisible в TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("b5f572d0-c5cb-4739-8982-d9c2c7c4cd4c")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..a23e98f --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программным средством. +// Версия среды выполнения: 4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если +// код создан повторно. +// +//------------------------------------------------------------------------------ + +namespace DDS_Header_Generator.Properties +{ + + + /// + /// Класс ресурсов со строгим типом для поиска локализованных строк и пр. + /// + // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder + // класс с помощью таких средств, как ResGen или Visual Studio. + // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen + // с параметром /str или заново постройте свой VS-проект. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DDS_Header_Generator.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Переопределяет свойство CurrentUICulture текущего потока для всех + /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..ffecec8 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..2f70c62 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DDS_Header_Generator.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..abf36c5 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/bin/Debug/DDS Header Generator.exe b/bin/Debug/DDS Header Generator.exe new file mode 100644 index 0000000000000000000000000000000000000000..3a7f40b5b20ae816441a2cb35592897c5e1b295d GIT binary patch literal 29184 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 + + + + + \ No newline at end of file diff --git a/bin/Debug/DDS Header Generator.pdb b/bin/Debug/DDS Header Generator.pdb new file mode 100644 index 0000000000000000000000000000000000000000..41d6801d61bd318ca9b87fc65e1800d2f7097733 GIT binary patch literal 40448 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 BnXUi; literal 0 HcmV?d00001 diff --git a/codecList.cs b/codecList.cs new file mode 100644 index 0000000..8094310 --- /dev/null +++ b/codecList.cs @@ -0,0 +1,955 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +public class CodecList +{ + public Dictionary> CodecData { get; private set; } + + public CodecList() + { + CodecData = new Dictionary> + { + {"A8_UNORM", new Dictionary + { + {"bpp", new byte[] {0x08, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[] {0x02, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[] {0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00}} + } + }, + + {"AYUV", new Dictionary + { + {"bpp", new byte[] {0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[] {0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[] {0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + } + }, + + {"B4G4R4A4_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x10, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x41, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x0f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00}} + + } + }, + + {"B5G5R5A1_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x10, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x41, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x7C, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00}} + + } + }, + + + {"B8G8R8A8_UNORM", new Dictionary + { + + {"bpp", new byte[] {0x20, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x41, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}} + + } + }, + + {"B8G8R8A8_UNORM_SRGB", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"B8G8R8X8_UNORM", new Dictionary + { + + {"bpp", new byte[] {0x20, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x40, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"B8G8R8X8_UNORM_SRGB", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC1_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x44, 0x58, 0x54, 0x31}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC1_UNORM_SRGB", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC2_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x44, 0x58, 0x54, 0x33}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC2_UNORM_SRGB", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC3_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x44, 0x58, 0x54, 0x35}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC3_UNORM_SRGB", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + { "codec", new byte[] { 0x44, 0x58, 0x31, 0x30 }}, + { "flags", new byte[] { 0x04, 0x00, 0x00, 0x00 }}, + { "head_flg", new byte[] { 0x07, 0x10, 0x0A, 0x00 }}, + { "rgb_mask", new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }} + + } + }, + + {"BC4_SNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x42, 0x43, 0x34, 0x53}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC4_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x42, 0x43, 0x34, 0x55}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC5_SNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x42, 0x43, 0x35, 0x53}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + } + }, + + {"BC5_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x42, 0x43, 0x35, 0x55}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC6H_SF16", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC6H_UF16", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC7_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"BC7_UNORM_SRGB", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x07, 0x10, 0x0A, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"G8R8_G8B8_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x47, 0x52, 0x47, 0x42}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R10G10B10A2_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R10G10B10A2_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R10G10B10_XR_BIAS_A2_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R11G11B10_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16B16A16_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x71, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16B16A16_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16B16A16_SNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x6E, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16B16A16_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16B16A16_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x24, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x70, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16_SNORM", new Dictionary + { + + {"bpp", new byte[] {0x20, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x00, 0x00, 0x08, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16G16_UNORM", new Dictionary + { + + {"bpp", new byte[] {0x20, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x40, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x6f, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16_SNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R16_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x10, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x00, 0x00, 0x02, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32B32A32_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x74, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32B32A32_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32B32A32_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32B32_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32B32_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32B32_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x73, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32G32_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32_FLOAT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x72, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R32_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8B8A8_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8B8A8_SNORM", new Dictionary + { + + {"bpp", new byte[] {0x20, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x00, 0x00, 0x08, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff}} + + } + }, + + {"R8G8B8A8_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8B8A8_UNORM", new Dictionary + { + + {"bpp", new byte[] {0x20, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x41, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff}} + + } + }, + + {"R8G8B8A8_UNORM_SRGB", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8_B8G8_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x52, 0x47, 0x42, 0x47}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8_SNORM", new Dictionary + { + + {"bpp", new byte[]{0x10, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x00, 0x00, 0x08, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8G8_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x10, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x01, 0x00, 0x02, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00}} + + } + }, + + {"R8_SINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8_SNORM", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8_UINT", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R8_UNORM", new Dictionary + { + + {"bpp", new byte[]{0x08, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[]{0x00, 0x00, 0x02, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"R9G9B9E5_SHAREDEXP", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"Y210", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"Y216", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"Y410", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"Y416", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[]{0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + + } + }, + + {"YUY2", new Dictionary + { + + {"bpp", new byte[]{0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x59, 0x55, 0x59, 0x32}}, + {"flags", new byte[]{0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[]{0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }} + + } + }, + }; + } + + public string[] GetCodecList() + { + // Извлекаем ключи (названия кодеков) из словаря и преобразуем их в массив строк + string[] codecArray = CodecData.Keys.ToArray(); + return codecArray; + } + + public byte[] GetBPP(string codecName) + { + if (CodecData.TryGetValue(codecName, out var codecProperties) && codecProperties.TryGetValue("bpp", out var bppData)) + { + return bppData; + } + + return null; + } + + public byte[] GetCodec(string codecName) + { + if (CodecData.TryGetValue(codecName, out var codecProperties) && codecProperties.TryGetValue("codec", out var bppData)) + { + return bppData; + } + + return null; + } + + public byte[] GetCodecFlags(string codecName) + { + if (CodecData.TryGetValue(codecName, out var codecProperties) && codecProperties.TryGetValue("flags", out var bppData)) + { + return bppData; + } + + return null; + } + + public byte[] GetRGBAMask(string codecName) + { + if (CodecData.TryGetValue(codecName, out var codecProperties) && codecProperties.TryGetValue("rgb_mask", out var bppData)) + { + return bppData; + } + + return null; + } + + public byte[] GetHeadFlags(string codecName) + { + if (CodecData.TryGetValue(codecName, out var codecProperties) && codecProperties.TryGetValue("head_flg", out var bppData)) + { + return bppData; + } + + return null; + } +} diff --git a/codecsList.cs b/codecsList.cs new file mode 100644 index 0000000..c98c1c1 --- /dev/null +++ b/codecsList.cs @@ -0,0 +1,46 @@ +using System.Collections.Generic; + +public class CodecList +{ + public Dictionary> CodecData { get; private set; } + + public CodecList() + { + CodecData = new Dictionary> + { + {"A8_UNORM", new Dictionary + { + {"bpp", new byte[] {0x08, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x00, 0x00, 0x00, 0x00}}, + {"flags", new byte[] {0x02, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[] {0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00}} + } + }, + {"AYUV", new Dictionary + { + {"bpp", new byte[] {0x00, 0x00, 0x00, 0x00}}, + {"codec", new byte[] {0x44, 0x58, 0x31, 0x30}}, + {"flags", new byte[] {0x04, 0x00, 0x00, 0x00}}, + {"head_flg", new byte[] {0x0f, 0x10, 0x02, 0x00}}, + {"rgb_mask", new byte[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}} + } + }, + // Add other codec data here + }; + } + + // Optionally, add methods to access and retrieve specific codec information + public byte[] GetBpp(string codecName) + { + if (CodecData.TryGetValue(codecName, out var codecProperties) && codecProperties.TryGetValue("bpp", out var bppData)) + { + return bppData; + } + + // If codec not found, return null or throw an exception, depending on your requirements. + return null; + } + + // Add other methods as needed +} diff --git a/obj/Debug/DDS Header Generator.csproj.AssemblyReference.cache b/obj/Debug/DDS Header Generator.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..9f80ff2bc600dfa8d3937acfe7d8ef7cdc2b71b9 GIT binary patch literal 6030 zcmeHLO>fgc5cLWuAuXT+0#)iEN088}(29>$?3cms}ou{=f`$RWzw(d_KJ_hxox4Q)7%gGh7V`yisBAYr4!0xBDi z&tJWG;vLcf6_oq5aUdlPdjX@;d(V6k$!MUwj{ZNLMdH-M-S*M%)pQTP#LvA@`jH4& z5BGxrA-#|DXzS(40kRS4Ra20&4do2nms4FZqAtVL6^zH_}mVv>E-te@8j0qk1z2X zZRJ6-O*7&HHk=5eSi}oi{PyPfa`URbZ!Ojni=V@wke#$=##%bcqbj4UoyG4MKg$WX zp$k~JVSj-go~NZHdj=P1(Q^ly(#l)u_&hf%L?eE zQUTF%5Y0o%RgR2qLdwW8&87ZCFf}iQA(WmVv<;Spt$aQ)-j8MycXTUJj7qEOUgmW{ zX60m)rRA_vS}q*U;Us9s0s+584XW$OM!M2&rArllt5n{7=bsBTkkYad4y)vHO3pcq zu0v*7IK?CMKVuuFEG9jFYvOVHz}NQ&$$Bg(TO&7<>q%=_;!Bm>rz=;nRErc7pw$S4_5lwXiqRFaum921mU doL^d$oLY>e5w|?ZocvpD=MMCN%mLZL005&KC1U^p literal 0 HcmV?d00001 diff --git a/obj/Debug/DDS Header Generator.csproj.SuggestedBindingRedirects.cache b/obj/Debug/DDS Header Generator.csproj.SuggestedBindingRedirects.cache new file mode 100644 index 0000000..e69de29 diff --git a/obj/Debug/DDS Header Generator.exe b/obj/Debug/DDS Header Generator.exe new file mode 100644 index 0000000000000000000000000000000000000000..3a7f40b5b20ae816441a2cb35592897c5e1b295d GIT binary patch literal 29184 zcmeHw3v^spdG3FXMl++)b0k}mor0S*#S&25ug7Q7_glux@|^%BzIih8B`6AcYG}!wM`2+^)c)EjQ4W z-0$CK&OGFCGD)jkchMuyfA;?OzyJO1fB*Y&_SrK&_~tvQg@_#Zyz~;$!?^RcN6?oi z%Si4T`dk-1)b@?d4@(EWv3c@juIO7ZjX5(j@5^Qi1*7Df)_vw;!Ivxel7}aJ^Tv!m z+S%#ZT2?)tB03qDjz5{n3KKJ3n=zO@z7H)*d$%LXQi?PYnN>3a^_-cYr$mE4t2hS5NNJ6A3vPnJ*X~)&Wa?3dpK(0Q2 z8@=}pM2LIkk+q^tC(3TP4^muEa@`WSGYC@x+-#m z6}eEA`@{xd7+Ht>b{4qV!ce!Rd#K$9PbWL0aRry-G;f5+#Yk)gRTSHv*tk-AEubrG zz2++e>Jfm-Mc6np4RLJiAL^-Su7a`Q)gl;DDuT^I*!BdBRcA39%{%_Tpc%OYnh#$J zjjvMWRj>_=+t4Q!9EBEhe52I-ut80(nOfG@8ZHKU7#9OWfTof>pM}BhBLIAKJP)miUL}5iG0@ zf)|=au*z-Wbu=0$ntz%dtZp4O|1f*yiYdw7{@C6S%b);lf}93Q+)a9n7JqxsFt!B?}NYc2n_^;_Gy+XfnL>wcjj zqK3X&S{+|~wpj$L?5nQUMgwaDORO@E?UxCT{g(-j++~8}-Ob|YA1ba+Pr1KY1gq?! zk6b1=o@^FJ|B$&lE%M`L5v+2H{Q5G%(dN87#?WmIaWuakd`*kw&6ijtYYoA?{u9eo zLmbT;rT;a(IlYus&NW2y`dj5so5rzaMf*1K9_&@@dVH;E9ILx8_q~QVUd0miH9TM1 zOVsrZm#EJ-MD+T5N{g$};MTll`Umda_HS9h4|O&)&$@=NUVrmkb(!FJ<7I+le?uHi zAKm#kcuKkL?M<4S8v=R#9psM71jqX>6C5ABOmN(Pnc(<%(>R7#b0!|aIYTF1jdOVt z;fx(074(ukf|Gbo1BZG%9NO-2wr?lb)qVaJ!bwa%BWlaE^pb%Y+OwnEDNgM5N(Nql zd$vpc9qt{iS4=|u_ z2iW!cb~e_>?1uW*`yIsgfEnPMR$&aswT?U%k<1)ga$Gw)P4WkduDw;BeR0BtcJ$h582?n=Q#pWu28=*VMVyE>(a++W)oL-X;VhF?wFAb{YUJXvTt3U@9Ga^yoOz~JQ@9XXS-5BjyKs@^a82P> zYPoQ3nsq}Xbv0z3nX4&;8K~jx^7Da@#p!aZ)lIA$4@BSW4cPhG{BX@0h*NFlXlsI#tOmY%W$h%8^LDUv%L z6mP0i%*-p^2ZzMhAbj_|OQMeyZv+nGCJRh$@<2K1cs0p6pR<8B5eA zudoCsnZK=p#EeFk5ISs^s8#5@*b+RlRxH6004~%4W~SNJR_)G0YNaKZx!x{QWEtQr zY6<&efg=9ZdLnPF9SZC$f7e}i2x&j^*;a0IIFTdA7) zW}rs35M1fx%-mS3*Sx-_LOhE=_d_dnGr!Wh^rQC4k8B$ltoL;mF%Q-h&x}UR$ox%Z z1Q@x$ya!}lDc%gjjl5M@Z(w9f+wx2xyy@KDbY^PyF`slyB-2Lv|rwi@%YOh143t1^?%SYZL89A^6% zR=9t}k{!`m4BylmnH7OsX=IKA{Uay&Rs2!G1KN|9f0t}j3 z34rJT3f=N{eAf~85g2C6M9It*=87!w44z8Ajmm8~IzbO@v%V|1W$)3kB+?#5{J%Jm zrslbo#3f^tzVYq{u4?1T{6-294l;A;7_h}x^+s^#XKc6;0W4v^T%@yj3qDYXhe2yi ziYkaS*ifudSr7E%I^wZv7>7cq(RSu@1g$=3{HAWC*yfg;Q1GUWIc3x=;sJ~=%)hV9o-z>(!uhd zcQVe8b~8QR&SiZNFN#8~3U3901t?_Q;LS7fsI|Th-;Pg|h=er&c{h3JJ z4Sqkp*TbAIBkZJe#27+?|AkiOzh5ByAI@Xle@9OW{6T@|-NFLDMu|=u^e)0mPr)+m z731tY@EHE?-s7QVsfRw({#d61OTpP8ne6&Z7st>mk+!4zGhO%7 znzG{_hfamo(mLvc%Wa4I{V83Am_(-w@KAbij&<5?r+5O`LX~+#L_d zF3Oi0b=Ui*?RC_|i&eN72^cs?}mSrs}Js@{cyNKOI zeI3uh2d)&cJ4AUsUTfL=ju5{JE@K3XTj z3D7HHPv&3gKj-an@cBG>om zK=-HUF6mL{XDK5+==lQOBR$oF-hxv8iY`dkwSR-26Ox~j2HJms@NoMNq2XQ5AJZd} z;rbc9AX2{~9e4eZ9+MvJ>5(Ml-6%atTd<@1OX=&~qtXk~zV--csC_r6+{yHMry^3v zr0>xe+sCEz^fk{9=>=({ds1qX-Q6c7ul$_L37qUzk65J$`k0_k3i>@kFG#n+*Vf5T zV}yHzb_4$-^jz1hbd~&cXI|PYC!Hnf5xTzntdv0byrh8t-z3zo<4(}Ds|WH2MXuj; zeNehVLh>=lT#!EB(?c2gLuk7TQpvNHeu?^i9QFN4`=>y^FX&Fs zr%euS z=?_q&3-l~3aF6^{*E7;R@;`O|2(-WRIq816&GiE48m}yGM(J)@0Y%;Aw>sC$J~~T} zw`?xcJLuajqgeC&P#&c|`WfhYY6E8r^@47v9iSmW-zcai`1>gc{)FJXMbIq037k_@ z0xi<{mOVoM7(Ga5963QBqz};Fw>(IHg3=!psb4MA56~vZvm%VG38ebu_k!~5!K;;> zbSwQKeT=?M&(p7IT6$jUk^3=h$$OlaZY$*e0ApG`Z>RiSj8fLcB_F~n?P1(GTtwInyCmqn zv=<+7DG60cClZPlk0s)vbUKtsL;^}U>G#JHX}_waBZ+i4pafJc9!mMsiBw2Sg%FSV zqlrLJ_0z7=Y{@XMo1U5qPWfppRal(Y&CGOOza>EV%(R{lP>G`lGE2r{X*^S4PTDZ% z12k4Bg@P0dDseRtO=!_*DyeBfC7FyT6N;(=Q#6{?Vu_>{PevlaKsp&ur2L6!R7(WY z@lZ0FipIl1N`!)_LeQ_Iqfvi4nTo{x;dne5)*^{WD6R$KS}Gik05LM96478pLt*J) zG@=G#nvx1qGM6poj6%j-x+Q2~4pJbk_#?4cB&5X?Ate?`rh-}^tf+}VBBCYJaV?^R z!-}FocQTlaXn{yFoB*&;B&nvOk&vY)M8QB%3B|(UXd)g^gPNKSh2trID&kLuqUlH~ zs77O`FaRpSu$o9GLeW$z6;suSKNX9F!(oa90?{NMBx10*5>IOWuo_FJw18hlsmVw( ztpoybSjQhqC6h`DX<@~$MZ=*~LWzdeumvPc{zxR04kpx;8V)D4xE4*uQ^10vLMrqI zV3W8%8c@@k77O`P3WoB^-wp6g3tL2Gy_zy_y;h#8ZK|8ikL+s;NK_HA|;ruxBtFK(i-l$K{Xi)p^1YDf^0|=vVkQ07M=(6!8BAx z{OLd-mIy}DK}ADrzyZ=pH4+M@(^@1ROlyjgRuhzrMq`PvKZZ)eFXIYaAQB2C)L1wX z38QPERpM!MuaKsM6RCif4k)3B5)Huv{DH8Rpg=4h4TjTd3i#1YB4JcrgB6riDiYCx zF_mC4FpuA+OKt1$G^y zkkm_=Tpn*6;wt-NBpnZH!HA#phr@m~8c1s~)vqL?N+6-BF)bR3s!4xTWg{v9MNI|J ztZ~4mq>6qONWd+$R8mO?f_`*yfK!qR)Sxpcsy_-_swqwL$3ls8ObMpIN^7BLC=yfA zuVRseKNbt6qw#n!0K-SoYXWhMZJ_`hOH*Kg09q^%QX{b_28=)|f!-HYl?V@q7`GCE zq=J$H33zQfmBt9*PX|LuEt*Q8ITH#zSyNG>AA?p<4Tgaxs=-Nl+0koGEOnY zuODUgJcnkD{ETjLXkw{Y(&tCV4%1$}q>hi%oL-vJ@QX;SJEdIGFhEw^x4c}zBE=SmbgZu0A;acOk^{8 z9ZsfG8ubX0i6|kB~GfdrTA=G~nVbMP2u&Eb~MKh~w<+!?7Dj5YeQ`AXWSjgwHqMJ?V zq8W;UujLJ-TK2$QpI)4sgI}1&?ZP}fsKazKIn3fKm;xw;Qzyb{=lzW4c+y=vK{TC&Gtj zb90L@LBr&vUd)=gh5AIxxFW|9J)b!vLdA=9kDC~3v!#m@G-F}O%*~x_m^8nTDJ)g< zl=}vkiE^fM`CO?cRb4`3vnLC06^>|yCe0;u7%P05J(*@^ic`hRX*gJN!nY6JqMN?5 zdl=@Ze#UZR92~ z^TAvpH@`S%Q>|l-%iGMo*tzD`6uxXTkLa`I38mH&HN$On#;FysN8QG$Woy+W9-h7xjaS3i zuP@caxP8ZsBHRs?vxZZiG3XFK$KH&y9&Bp%H``3cR20Joki7)31Pi#E&dQg|NIO=Dp~H&5rX`bEh$=!??J z6)!dfF)E(*@H>Il#B~WFc=Q5lp3{q?wjGPLdBm)Rp3EKR6;)s%z&)$Rctz1dFrPh> zTMXNkirjU1uoD4pq%3B6yqN);jcP^gS=DM;#Y8$gPub(F2=~H@;cm|mfi;$h!=zROrW1zbAZ?|sTMHoHtU@gkVcq%3f5vh!eJbly{nFs%A1EX0@#l#~mrV;DT zwz4O1O3g2nmatReRq#8UQ*@LL;deWa5Vp8o)3ks;YR{5EGk717MR*o(`Z6?!9WwHs z1TTY>Dg4N09z615prC2Q=fN*xFOAw1Iu4!Kvfijt7`rlI=nj*DPhD9^jUY9G)Cf`o z7p2CL8b@jzsVi{4K?UbhsZ-eFJAzbIAgIdS^s-u3rq*cbQ?cWAF}{_&l{tbJ)kvdy z-pU-I207|^D|4_-C#vlykgl+^;9;xdB01*Ow7rmv;@3-AGL8C1@oJfCZt;%R@nZFP z(Uy34tmD-n9kN?$O0*fbU0unWkDxR^(wM4(DrHNJp>C7dl)SV=#djkY%S_Qt@PsMo z9D@%{AY|*U3voib>(_(UZuo}R83hGsY)po zsT%#TCN?6`E=*NH6+!Dtgf%ZERl)EwG8F{yl9hVu%GuZ`y;4HM)QWD{u&TRGE396d zQqi}9U(p0Rv3#8lSkvNFa#uK&eCv6Pn~i$^^>gfSPqaD~Sqi+2>WY7nn&wmSTd zgyW44AMJKTK!c9`j(}qixVs&jN$Tr$Y;+7dHaL33eJ%66CCu9MnAb-!b7Nl%<7o-A z^)zO1oH#&e3A6nom4GONlQlZ{0iy0%yvJn;731I`%ms&`K}Wg|bH9~BI3IG#PG2{H z+@~Q?O&>v7S0U#t^ykHT!nCCaYPD5UsV^%qWCe z`$-%=za1@B07|Y)tsLyuxes!9@P{0yoxFr(2pYBO+NU#n3Ar$I9EKfcQA3?I4j47D z8WinmXft7bVC_tzzm+lJ&NES z5qEAm6YDhQ5xs4`XY(8W?+)$Gj?bO?`!D|U`^n*xBzKFCq*esHUXFG#kwtv0)hA0` zT~1D0zGtmVUfX+v+$G4y*7B{Rmgg!nUC7smb1iKoOTEjV@-Bbc>5?~gZR~3I(c0eS zM`TXy#C!9Nn>hXzX%n@0P?F10Rs(c^285d5Wg`JYj&cliY;Ngmu#IgiJCUV?6q%h%#&HAr$J39JoZ zNz7^`zO}g6mehOR%Qo?zU)KSc?%wlj1#_bt!oADifizN~hAn-5vq;-!30`IKc8WS% z0ze|<5}c`n6(ZAa>y{FE$2bDLEqD#eHJ1TK>OI=#YC*m4!ap}jz2|T6oUC4E}19VVG+}wNqX7^`*@5Hfn;b-3C{^a#j@9=)db8V-yw#{3dy>5Jt<8w1U z8GLkna`?eD|G{HZ5&Ov5ls#I!S~R#y|=aE^x5)V zg5C{V3zT3Dc8%02YIO@Srgu9)2i=l58;G~sd~|D4?!VE@EMN~dbtbEeO-StX;(1kq zoQq!=T5Wcuae>u(hi1*s#w<^i9+Q~!RiLXq+#TXqu5k43Uk;L#%}zKov1G6 z`1Og4&v6QH$0gc-FqburqA^<*nULi&tSx;MqEl7Z7>9 zvNz)nRH_Y(av3E(gupky{`?mi_FeeoFT!jCUa>C5lLXNEb|tEU)^X@_}@<){P3?1 zbDL?`p5Qkc#S>#E;032j#=?n49q5EHeJcd;DyCub=)%l2?Z2a1rp{qsHC`LC|0@lP zhwUgcbw(GPxWYAbeRL+Dw-R64M!r2FhDiO=8j|vA6g(4&VgJFRYsg zARXU7Xj5~=(| zQN-$>SF<^!7DPJHCmlaPH zY}J-E57(qEi1L?E+l-Jai@+9ZA!Q>^iq&&g;8>``SzWPL*XX_mYjoD@$4aEC^B8pE zokvZb16Z^BD<6y#;w(5@ji1j<+%vFK6=}0&k0SROeE8ajljstj>G(;9wXua3@O;M> zEEy+8=yw7Xmsn51H(VIm*4wuW|mgJIc+j5Ls z2;(OHtf!xsw`Fa8-Xz+|dj6TglTH@4s#>Udoot)1XrFprD_d!08^uK)1-0epym|4= zyaY?VQoaozCHk4&oly4kpa0UX>(9*ReRvnfuSj+eW2rRk(+gQ+1`Da(!$&96JLAJX zJ{dBD_qhdq_wbTl9KQa#PEV(2SEl@q-v8=&Nx3#t zoF6?M81~I)3b|RmSh5#TqC6<``6|lBX7Dl(@5bve@xpM}SHJ>v_wd1`n)4TRJ5shliY+zNYdO;(Y5rVSl=!_ zwmvFqt#zfcpW2poQL%MbYt_}RtyR0$ZPnUVTenziU2UoM`+sli6BAfq-Z*;#WvqSl^V}mRKQc9}9 z9{lz1+d`9={Bu}qAld(ib@z3-^6yowSnyb{XVbT?^d4UJ)s(M1y71(i-}uc>(zh<~ z@B3~0;#uj{&!#^##q-|lz2u>zo|$~vuJogeF1_-+ftTF4V_1f*!G_8SHTkda+;j9R zjZgP``mFRThHSpEURcl)kMb-lmZ<%%W?_*gX1UHyM{;i(lD4>_}T`v=!F&OhnTQ!c;Z z?VE4iGOqFLi9fhx$F}0nek_$w7TRSE$j?9Bo11>KMB-n@9>=#)E$ zkNN)gzdZl_1fj{BLq-GL)&IAA{>ue*GynAdq>DyZXN({pQm)ZT;)8@N1!`Zn-hL^6}+6|NS?g-hK6;qiWu*y=_lp zg3#p6A)|rr>i_5az1lDPGd-W}yZx#DyOxi9yR2qG$TT=v zkpvBVu;+t4Is!C88$QJ+l%E!jG)2pol$S)J>zW%H%S%dDW-N|`t0GMqiz4-rrf_pZ zQ+Z`WRituhZL~SFGU|DiCzNk6xoXR+Y_6)RXvSJUS50EBI-9G#qDmW@)@Mshd!}j|duwZGU&lq!=6KHb%3R*mP}3A%-w|PrEm=Asr7_afTpNj&pBjlaY-p;CL^C_n zP-MG;n&Jg@vfZwrm67J=+WML6zL5Gzb9G$E=Msg4t&nhn zkWTcqtL>8d>V}TgGtkSfF15CZ5!PnhgQ@tVe_}Afis)to@v}iC7xCvwPL6Klx(=Gb zL82R=7yJW7#CYB;^Vjo!1onpi1o$t4(rtVa{t+7Z)T>#co$4|h0+%jozu249fspdu zpX0M?6ik9t_ULh2bJudMboIE>B9IFj8IE_-o`MI&tC1sKr3HC4njG&*e>wL!@oIF5 zS7||BjWoymG+@Yt{^=n!zV)n z>iGc-fg})Yexu zoEOcMZ;1cNPZZL;94|HXi3PuV?AvEPzhw7>J}D30yYn29yfUwZG|x+A4yn!>=Njfc z4W@Z-gR3CF4I$GWZcX}PT@c6wCPplsgJ;IZHku#eZ*8-OMUcty|@PxqQv zy&>5L1zjt^f5-&sWR~s!jkZ?(0<{}P|DQ6`_J2*Jc}+>AI=rE-Su7_UNarY8dhZV} zI!jAU^HOv@j5zg~8+R|MFv3tD%-`YgpXuagR#vj?fWIAm9FQj&>fgDL--eLq+9ng1 zWh8kXeQ5fZu}nYm+yV#iR7=Mq3suH=$gfW*UQcx^^)$gB1J}p`_RlDPl#deG>WNZ9}ydGx!y0*V*>+i+_ zEFOAIyM;QMq(zZtqc$y>Nt6AYOTrFFc^uy;FT>bj^kz`yn5A}MQ&aeSU*8>>bJ8Jm z&aZRBuuyQ$?Y867%>l{6CZ>HWQ0JoM%S~P1qMjS!7q3enYwL=P#JaMywM#r~X-2x* zALOZMY&3&Mb(w#l`HW0wKU`ZhpF(p&8&mrG?a8sWYby*2!S>Mfv{wV|F?|4!^#3qr zFC~xo9nV2-(*>?gZd|R^!)QdI^p44hwmDYu8co3>x^4-RhPk9{Qq1LVfJ$wnl zc40TtiURFAbx~1a8Bc!ksarq%{TFrM)!UU8Y?n z=;Ei4bm908m3F!3p86ofe~dj7G^d@dBQCbcJ30Q06pwi6PZL`6F7;L$-o>Q)_B#}} z`x@@<8HC=9uhkb+Sv>I_ z!QiDJzKwU8DNkkPL!XM5S4Wy}>q7Bys?%8<-Ez@W^pa4(s6f|B_)P%`fZ+auGT!)?plP8pK(qr+8ilG#Bd5pgH3FutCUCQ2ku!i~YKD zl5I!84^zI~ka%5s&<`6JSg$Qvrgh@J*Ke}#d6csYx)*xT%9H=Vt$e9OAA@I|{0Gq~ z2l63!9;&W`AgPX951%Mx{5YO2slB`urS%ATn@=-5T1)!t;n%D_iimdsJCs&E+3KUZ zp^g_L%Nir~#+DC(U;QS2$Kz}{CO+N}I1U*QQ-|`~=&CF4FFax2d)+Vp`-scVDMH&Eyfk<8f_D3$zKRufCM5u2rs0 zL7r}D)9BDSDY5Gl+VrwIm@vt4G?N{G-}hm${qg>bR{Q1jW-x7p|5q@MvHWVcsuAR`GOH!OERDZl+D0owO$f&0 z?wfJJm`I2>>j9ew-6o{rTbue)PC|TTRi!CQ_9!T$+IJh-tI0^`d7F^dR8tXl{+HUs zxJpQ0yQaFXhB)ahpGGy)fXV3L#eg1|D+zh%1`QF@cW(X)&pOZ?MxkyUKt0U(o<`Xz zgF>4_q0Ku&7abS6Xi4azjiHNng)Z6?x_DCP;`e6PJq`bit zroQ${YNL$}Q4N#!txe!_c13yI{)P;SKW}|I@|2Z(i#oste4n&=PVSQW+Geal?FEtI zhV_jN^^tll6S2$fSd&t5=CAhP(H` zpP`;!DJ0 z^l~dGe-C?L_Uh16Ona8-KQ;zrQpYrww3n9;4gr^f>_x>Y!DGOG0+EZ=@%M`E1+`c7 z2&lcHK5+T|+&JV+hVr4Q&?0C8G#fe|nrisezO9h|j0hRq%B|YuZP5i`6y>U2qe0E* z43N5e)HyaDl)rgAIF|cK;5bmvP|{)r-~_M`oCx}LI|=#opekae5AAQwf~K2m@wj^V zcE0U;VNy-KnC7Nl%q3GVbeK@D>D;ScnV{-511ta;YNlSDQ@=SNZO}R+rgu^EK=u24a5=aD zl!gkxMz9Fn3>Jgx{}S+P;6iXGSPE(!ECPQ5E(Tu#mw<19Cxah=jH%d%U>P_fWWJ#j zlfA?>ip>F$9XknJ0iFe(3Z4tD1TO$rfmed~D6w0>)4}cF8KC^c)!+}oGrz;1b^H#&_BbOE9LgSg!@8h z1~k>u0#M^CAJTOJG@o4Of`ge~YoQaN;x?$nrp*RLg-|K97*g6CQ--OKt&_WU<9H(x zzFiL)dyic(wxZ55YW|}Z*~FN}huS>^eK3-IlG$dlcd{20`qc!l8n?$3P&$=Dh*zar+6@Yx)|i z;*Zx!U<3D>pBI3dpO=7|pIbrZN=&v;^YR{0^HSqi^YURZ3;ZFN2mTbKx6Sy~e9{_4 z^JoG{U1IY=&7(8G6F{w5P6V}X(Y(4D)V#VI)V%snQ1j{+U;+3pSP1q=@#oPnu#|g^ zH_aohaTbG1K+U7Gz>~llQ1j^vpyti>pyth8pyti}pythEpytgB;41JnQ1jzGQ1hct z4}X4)0yRITf|?(5LCudPU>H0btN4*nYaI`}SlFW4{5tYc#u*Kpp}+Z zgJW&nrJ!gbR1C@Q5UqfeKO5R?X{o(e`SMW;q2nR>0dpXwD@}3AEB{6BHRZ#o%o&hm z$j?!^Cqk-QFn*ei7mw;BR2yX{^-fK3>6VnHIw(zXZRK%s`^!^m^9JRdOk57+(wrQX z=i(f{;>0f*xi($;k>4az-fT#1+ZRbkV<7d5e83f!P6yS#vGM1_c+dIRZSR#1XPivo z`S}ifgCOjQ2|u!k9rjkGc-~ql2Hgtngr0(A@Ag7NushSB5@;rNRt?~ z)|4LhLdxs-6~BY~_n@)RQMQ~BtXowc?cuTR2hJum>Pq$T>vVuM7J77RPwB$#t)vVI z#bUh3RvB*1B|l7|pAY8m5b~TDY*#VcIvbiIO6BYP^2-K*@>d3e@>eE-$cz!kjKn^JIUqg?GuMM(Yn!RuspI8q zJ_t=R*Xejt?w!8cWAWw)FQP#M0STjp_4Cq=f5Vonk+It*&8IsR163T~`LwXO^ok8Dv8_{RRALYZze!N2As>(L5g-=ii zp?p8#0E5{WhL) zVfcsI^yh4Rp~b)1a^~22jj{Kib@^?+^)~%GHvMv&{)$cCY%y%*ooUmxhT>BGn!$PY z{?`^4+I;_K`H!=5R#^Oj&3CQE5baZf(j@_61f{!G$#AE~% z-rI|PgtNU7{bA&p?~R9KPi0pYL#v>3AU*fCLbpQqKs%v_p{JmqL9an?L3^RzC`9if zGN5TtK2!oNhsvR~P%{*Ru7YlY?t<=vc0-Rtdhhfyq<2s6L8+*05TreVWH@p(FxZ=5 zd?QV*9`=CeFmG}oE^Ag6A)5#7hyZU-a~Q1UFkmoGPtWFI^I(|Gb0OvT^z1=Ct{uN0 zZ~5~RWrSKCICFVaSKi{9dSwObRbb*151P3=ewxjLv*6k-`6241^M#JrkF&fu6t3Mm zvla3Z4|BOZewxjLzwFxmmdm5VR0PNG$6J2J<@I@N-s+b2Yp*rMOMEHo^7v_fo@|`Mpng-^&~K`H{_>o2b(8;? zYM!Sb-B@vQd>$(&@Z6K{=;v+Oyl{E^G@FO#o_of~k4*IvHy&IbKh5Uh**D4?X#5TS zuv92sRyK9b!usZ>^VckIsP*53AJJ3rpf*l6{=7cfA-ap-L5#X)g!k5YpW^y;=E`Nz zG_IF|E)3)1Sab7-hh5x5Fvho?)ChWg0!{hI>wJvL~9DBw-)6M3nmp3bWVNPkT6}o?!L-l^b zgcyH2Ds!d%$+b7LG&jGrbhh^06!tH(kKVEEGfc_Q(HBg4lYX|GF~!TDRXQ^#Yc`J) z6ZT*B(QzL}Yv|VFVQxvdzNU`fl9e=6ZdlLZn&_0AoZQ^J+={B{;ry9%rsrjcbEnVA zs?3@`r>Z)fot0gk9iB6DzBjwHsH8Bb1T*SQe;`vo1vNqYc&&rd6yKJ^ptPf);O|?w zH9=`Qx2$@%4ocG*WK8}?g3@$WcwcEc)4Q*%ckAvvRqK2@yVQFhbN?WlKVws7@Z;=tdL(-@R+SZpE7wN68TEW7CF;$H zHdW5>Kk`#i*HF36kErGm9-UFynNI?l0y~yJ{;{7<=M8=}rW1wm%@k)+I+xp77tY4p z5A<}sMy^a&U;Za{x>#hFK48-|wY2^aO@D?dj=6b&ZFvgeK1$w;ekt^3h zk5`Ts7}xAyLA^>|2dSJNGv>AKd=t{E%WYG5X+^GP$dMOD(xgd{ z&cLzVLKZgkMtvvu`kiHTAW@sn<^9~x;`|Lc*DL}DzfxY0-nn7~p z6Uo13yFq6U%_&nY0p;_k#=raDfYq>fW(s^gA<&bfS3=42-)$-A2#AZ(hW6Svcjhp8{_mq5FCFT=rshiPptR)qKVK`sv8L47`4J+T=6`u8M*`+I9e5P#MpOz)h|3%9W@NXI> z&;PajD|zm$UgAGsmpuP>NLvk^iz{IA|0B=;>CD;5&{9a}|4N`m&|+u_bP^HO^zxt|NogZO4ox1Rqiq`V@i7%GJpLPyg1zcSjB44+&L{2kj} BnXUi; literal 0 HcmV?d00001 diff --git a/obj/Debug/DDS_Header_Generator.Form1.resources b/obj/Debug/DDS_Header_Generator.Form1.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/obj/Debug/DDS_Header_Generator.Properties.Resources.resources b/obj/Debug/DDS_Header_Generator.Properties.Resources.resources new file mode 100644 index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279 GIT binary patch literal 180 zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh literal 0 HcmV?d00001 diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000000000000000000000000000000000000..a943e6dd17780fb395edf837b95bd244f745efa1 GIT binary patch literal 2117 zcmcgs%TB^T6zxPM1bl?V#E`gPsfn4O5Fcy|0oiE`7L7k~qUyV3`2ykzzOX7ri>($I+ZMn8u%VzE63|*un2%Nbeo>`!B$MXZNp1`6f)Nw?E*&9kRx9T*v z&NTDT8Z|+Ee^YohUe9xf%~;g4xlJ|e%*0+bUke;3FR9BKLY{PnO0)`N(^tmw!m(kW z&#|*aWu58nvSLtGOz(mc^^(^;Az6;qD7aw9QyT2+S=Unh{oRvV>RMAD^V?NCyU~An zmEpiXmA+kQ-n<*RUrDwe}Kb z7XnXnm$jE%*VOWonhg{yuo{!h166q`+;&hulAYerEo6uc6B3IJgB*&-;{-k+V?%$A z6q`yj*W46vzLv&-Gk<0tliV`jfwMkl4-W2_0yklwIsx0GTz*{WPAzK5y?WYkl_jLZ ztG&Cmgcs{xS8H{ZE?dhh*|o(bmU**QN#AA1Cu(XGeyH@=WY+_Jg5RqArc^y!khYA&QZ6tqn@x6UreBhYlP`L_H)0sk!T zlygj-XyKQ0xuUVnD6mo^WF8c_U0GC*VL~;i<22xzCE!8@ri63aCB8l4V_MWYV#&|Y z-boNoubR~1^)1s#3T8~>45Mqc5gJXVP(gdv=g>~LiaTT)T4T_gF&8t7*|p>s@ONx1 zh5p13nL%MTxaZpBF|-q=?KosMY_T(zLYL#-3G)2heH{Qq&Sz2s$t@R|)RuzHeG#0zu|s9fx(Gybj5N5#|oYtFt#NughI`8tt<~=-w%JeRcJ`%Pn{H zCYqbYBP#vS2TuWxMgrF%mLbeDfUzTi=`vr*LZs(_bQ&d6j%sS6fHUu?lgGU8c=#ty|aZ zC7`)cqW#J}TQroJ7t&SX2EPGFD@w@UTqgwjHfm2I&^zw^j%W$|VI0u80iEk>;iBK! zP)Irsp