using OpenTK.Graphics.OpenGL4;
namespace SM.OGL.Texture
{
///
/// Stores information how pixels are stored in textures.
///
public struct PixelInformation
{
///
/// RGB without Alpha channel, Low Dynamic Range (0 - 1)
///
public static PixelInformation RGB_LDR = new PixelInformation(PixelInternalFormat.Rgb, PixelFormat.Rgb, PixelType.UnsignedByte);
///
/// RGB without Alpha channel, High Dynamic Range (0 - n)
///
public static PixelInformation RGB_HDR = new PixelInformation(PixelInternalFormat.Rgb16f, PixelFormat.Rgb, PixelType.Float);
///
/// RGB with Alpha channel, Low Dynamic Range (0 - 1)
///
public static PixelInformation RGBA_LDR = new PixelInformation(PixelInternalFormat.Rgba, PixelFormat.Rgba, PixelType.UnsignedByte);
///
/// RGB with Alpha channel, High Dynamic Range (0 - n)
///
public static PixelInformation RGBA_HDR = new PixelInformation(PixelInternalFormat.Rgba16f, PixelFormat.Rgba, PixelType.Float);
///
/// The internal format of the pixels.
///
public PixelInternalFormat InternalFormat { get; }
///
/// The format of the pixels.
///
public PixelFormat Format { get; }
///
/// The data type of the pixels,
///
public PixelType DataType { get; }
///
/// The constructor
///
///
///
///
public PixelInformation(PixelInternalFormat internalFormat, PixelFormat format, PixelType dataType)
{
InternalFormat = internalFormat;
Format = format;
DataType = dataType;
}
}
}