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,
}