namespace AcDream.Content; // MP1a follow-up (2026-07-05): Content-owned upload-format hint enums. // AcDream.Content must stay Silk.NET-free (the MP1b bake tool must not ship // GL binaries), so the moved MeshBatchData/TextureBatchData records carry // these. The underlying values are the OpenGL ABI constants — a stable // specification ABI that cannot drift between library versions — which is // what let App's world-texture stack (WorldTextureArray.cs, // TextureFormatExtensions.cs) adopt this same vocabulary directly at // Campaign V slice V11, once Silk.NET.OpenGL.PixelFormat/PixelType were // deleted along with the rest of the raw-GL arm. Before that slice, App held // a separate Silk.NET-typed enum and cast across the boundary // (`(Silk.NET.OpenGL.PixelFormat?)batch.UploadPixelFormat`); now it's the // same type on both sides of AcDream.Content's assembly boundary. // // Members are ONLY the values a decode path actually assigns. Add new // members with their GL constant if a future one needs them — never // renumber. /// /// GL pixel-format upload hint computed at extraction time. /// Numeric values = OpenGL GL_* constants (= Silk.NET.OpenGL.PixelFormat). /// public enum UploadPixelFormat { /// GL_RGBA. Rgba = 0x1908, /// /// GL_RGB. Added at Campaign V slice V11: App's /// TextureFormatExtensions.ToPixelFormat needs the full expected-format /// vocabulary once it stopped returning Silk.NET.OpenGL.PixelFormat /// (the deleted GL backend's own enum), not just the values extraction emits. /// Rgb = 0x1907, /// GL_RED. See 's remark — same V11 motivation. Red = 0x1903, } /// /// GL pixel-type upload hint computed at extraction time. /// Numeric values = OpenGL GL_* constants (= Silk.NET.OpenGL.PixelType). /// public enum UploadPixelType { /// GL_UNSIGNED_BYTE. UnsignedByte = 0x1401, /// /// GL_FLOAT. Added at Campaign V slice V11 for the same reason as /// . /// Float = 0x1406, }