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 0000000..3a7f40b
Binary files /dev/null and b/bin/Debug/DDS Header Generator.exe differ
diff --git a/bin/Debug/DDS Header Generator.exe.config b/bin/Debug/DDS Header Generator.exe.config
new file mode 100644
index 0000000..5754728
--- /dev/null
+++ b/bin/Debug/DDS Header Generator.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ 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 0000000..41d6801
Binary files /dev/null and b/bin/Debug/DDS Header Generator.pdb differ
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 0000000..9f80ff2
Binary files /dev/null and b/obj/Debug/DDS Header Generator.csproj.AssemblyReference.cache differ
diff --git a/obj/Debug/DDS Header Generator.csproj.CoreCompileInputs.cache b/obj/Debug/DDS Header Generator.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..ba1c915
--- /dev/null
+++ b/obj/Debug/DDS Header Generator.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+697e72e8ee6039e552397dcbd3262a57ae7d65da
diff --git a/obj/Debug/DDS Header Generator.csproj.FileListAbsolute.txt b/obj/Debug/DDS Header Generator.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..8f9031d
--- /dev/null
+++ b/obj/Debug/DDS Header Generator.csproj.FileListAbsolute.txt
@@ -0,0 +1,11 @@
+C:\Users\I\Desktop\DDS Header Generator\bin\Debug\DDS Header Generator.exe.config
+C:\Users\I\Desktop\DDS Header Generator\bin\Debug\DDS Header Generator.exe
+C:\Users\I\Desktop\DDS Header Generator\bin\Debug\DDS Header Generator.pdb
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS Header Generator.csproj.AssemblyReference.cache
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS Header Generator.csproj.SuggestedBindingRedirects.cache
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS_Header_Generator.Form1.resources
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS_Header_Generator.Properties.Resources.resources
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS Header Generator.csproj.GenerateResource.cache
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS Header Generator.csproj.CoreCompileInputs.cache
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS Header Generator.exe
+C:\Users\I\Desktop\DDS Header Generator\obj\Debug\DDS Header Generator.pdb
diff --git a/obj/Debug/DDS Header Generator.csproj.GenerateResource.cache b/obj/Debug/DDS Header Generator.csproj.GenerateResource.cache
new file mode 100644
index 0000000..7d4db03
Binary files /dev/null and b/obj/Debug/DDS Header Generator.csproj.GenerateResource.cache differ
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 0000000..3a7f40b
Binary files /dev/null and b/obj/Debug/DDS Header Generator.exe differ
diff --git a/obj/Debug/DDS Header Generator.pdb b/obj/Debug/DDS Header Generator.pdb
new file mode 100644
index 0000000..41d6801
Binary files /dev/null and b/obj/Debug/DDS Header Generator.pdb differ
diff --git a/obj/Debug/DDS_Header_Generator.Form1.resources b/obj/Debug/DDS_Header_Generator.Form1.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/obj/Debug/DDS_Header_Generator.Form1.resources differ
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 0000000..6c05a97
Binary files /dev/null and b/obj/Debug/DDS_Header_Generator.Properties.Resources.resources differ
diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..a943e6d
Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..0df1d31
Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ