mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-01-27 11:01:08 +00:00
Addd public properties and documentation.
This commit is contained in:
parent
53e9ad11d7
commit
e0ec10d11c
|
@ -10,12 +10,23 @@ using System.Globalization;
|
||||||
|
|
||||||
namespace OpenTK
|
namespace OpenTK
|
||||||
{
|
{
|
||||||
|
/// <summary>Defines a color mode for OpenGL rendering.</summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// <para>A ColorMode contains Red, Green, Blue and Alpha components that descibe
|
||||||
|
/// the allocated bits per pixel for the corresponding color.</para>
|
||||||
|
/// </remarks>
|
||||||
public class ColorMode
|
public class ColorMode
|
||||||
{
|
{
|
||||||
public byte Red, Green, Blue, Alpha;
|
byte red, green, blue, alpha;
|
||||||
public bool IsIndexed = false;
|
bool isIndexed = false;
|
||||||
public int BitsPerPixel;
|
int bitsPerPixel;
|
||||||
|
|
||||||
|
#region --- Constructors ---
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructs a new ColorMode with the specified aggregate bits per pixel.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="bpp">The bits per pixel sum for the Red, Green, Blue and Alpha color channels.</param>
|
||||||
public ColorMode(int bpp)
|
public ColorMode(int bpp)
|
||||||
{
|
{
|
||||||
Red = Green = Blue = Alpha = 0;
|
Red = Green = Blue = Alpha = 0;
|
||||||
|
@ -37,16 +48,33 @@ namespace OpenTK
|
||||||
Red = Green = Blue = 5;
|
Red = Green = Blue = 5;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
|
Red = Green = 3;
|
||||||
|
Blue = 2;
|
||||||
IsIndexed = true;
|
IsIndexed = true;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
Red = Green = 2;
|
||||||
|
Blue = 1;
|
||||||
|
IsIndexed = true;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
IsIndexed = true;
|
IsIndexed = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Red = Blue = Alpha = (byte)(bpp / 4);
|
||||||
|
Green = (byte)((bpp / 4) + (bpp % 4));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Constructs a new ColorMode with the specified bits per pixel for
|
||||||
|
/// the Red, Green, Blue and Alpha color channels.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="red">Bits per pixel for the Red color channel.</param>
|
||||||
|
/// <param name="green">Bits per pixel for the Green color channel.</param>
|
||||||
|
/// <param name="blue">Bits per pixel for the Blue color channel.</param>
|
||||||
|
/// <param name="alpha">Bits per pixel for the Alpha color channel.</param>
|
||||||
public ColorMode(int red, int green, int blue, int alpha)
|
public ColorMode(int red, int green, int blue, int alpha)
|
||||||
{
|
{
|
||||||
Red = (byte)red;
|
Red = (byte)red;
|
||||||
|
@ -54,8 +82,31 @@ namespace OpenTK
|
||||||
Blue = (byte)blue;
|
Blue = (byte)blue;
|
||||||
Alpha = (byte)alpha;
|
Alpha = (byte)alpha;
|
||||||
BitsPerPixel = red + green + blue + alpha;
|
BitsPerPixel = red + green + blue + alpha;
|
||||||
|
if (BitsPerPixel < 15)
|
||||||
|
IsIndexed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region --- Public Methods ---
|
||||||
|
|
||||||
|
/// <summary>Gets the bits per pixel for the Red channel.</summary>
|
||||||
|
public int Red { get { return red; } private set { red = (byte)value; } }
|
||||||
|
/// <summary>Gets the bits per pixel for the Green channel.</summary>
|
||||||
|
public int Green { get { return green; } private set { green = (byte)value; } }
|
||||||
|
/// <summary>Gets the bits per pixel for the Blue channel.</summary>
|
||||||
|
public int Blue { get { return blue; } private set { blue = (byte)value; } }
|
||||||
|
/// <summary>Gets the bits per pixel for the Alpha channel.</summary>
|
||||||
|
public int Alpha { get { return alpha; } private set { alpha = (byte)value; } }
|
||||||
|
/// <summary>Gets a System.Boolean indicating whether this ColorMode is indexed.</summary>
|
||||||
|
public bool IsIndexed { get { return isIndexed; } private set { isIndexed = value; } }
|
||||||
|
/// <summary>Gets the sum of Red, Green, Blue and Alpha bits per pixel.</summary>
|
||||||
|
public int BitsPerPixel { get { return bitsPerPixel; } private set { bitsPerPixel = value; } }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region --- Overrides ---
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
{
|
{
|
||||||
return (obj is ColorMode) ? (this == (ColorMode)obj) : false;
|
return (obj is ColorMode) ? (this == (ColorMode)obj) : false;
|
||||||
|
@ -90,5 +141,7 @@ namespace OpenTK
|
||||||
{
|
{
|
||||||
return string.Format("{0} ({1})", BitsPerPixel, (IsIndexed ? " indexed" : Red.ToString() + Green.ToString() + Blue.ToString() + Alpha.ToString()));
|
return string.Format("{0} ({1})", BitsPerPixel, (IsIndexed ? " indexed" : Red.ToString() + Green.ToString() + Blue.ToString() + Alpha.ToString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue