using System.Runtime.InteropServices;
namespace Raylib_cs;
///
/// Pixel formats
/// NOTE: Support depends on OpenGL version and platform
///
public enum PixelFormat
{
///
/// 8 bit per pixel (no alpha)
///
UncompressedGrayscale = 1,
///
/// 8*2 bpp (2 channels)
///
UncompressedGrayAlpha,
///
/// 16 bpp
///
UncompressedR5G6B5,
///
/// 24 bpp
///
UncompressedR8G8B8,
///
/// 16 bpp (1 bit alpha)
///
UncompressedR5G5B5A1,
///
/// 16 bpp (4 bit alpha)
///
UncompressedR4G4B4A4,
///
/// 32 bpp
///
UncompressedR8G8B8A8,
///
/// 32 bpp (1 channel - float)
///
UncompressedR32,
///
/// 32*3 bpp (3 channels - float)
///
UncompressedR32G32B32,
///
/// 32*4 bpp (4 channels - float)
///
UncompressedR32G32B32A32,
///
/// 16 bpp (1 channel - half float)
///
UncompressedR16,
///
/// 16*3 bpp (3 channels - half float)
///
UncompressedR16G16B16,
///
/// 16*4 bpp (4 channels - half float)
///
UncompressedR16G16B16A16,
///
/// 4 bpp (no alpha)
///
CompressedDxt1Rgb,
///
/// 4 bpp (1 bit alpha)
///
CompressedDxt1Rgba,
///
/// 8 bpp
///
CompressedDxt3Rgba,
///
/// 8 bpp
///
CompressedDxt5Rgba,
///
/// 4 bpp
///
CompressedEtc1Rgb,
///
/// 4 bpp
///
CompressedEtc2Rgb,
///
/// 8 bpp
///
CompressedEtc2EacRgba,
///
/// 4 bpp
///
CompressedPvrtRgb,
///
/// 4 bpp
///
CompressedPvrtRgba,
///
/// 8 bpp
///
CompressedAstc4X4Rgba,
///
/// 2 bpp
///
CompressedAstc8X8Rgba
}
///
/// Image, pixel data stored in CPU memory (RAM)
///
[StructLayout(LayoutKind.Sequential)]
public unsafe partial struct Image
{
///
/// Image raw data
///
public void* Data;
///
/// Image base width
///
public int Width;
///
/// Image base height
///
public int Height;
///
/// Mipmap levels, 1 by default
///
public int Mipmaps;
///
/// Data format (PixelFormat type)
///
public PixelFormat Format;
}