Axiom.Media.PixelUtil.GetFormatForBitDepths C# (CSharp) Метод

GetFormatForBitDepths() публичный статический Метод

public static GetFormatForBitDepths ( PixelFormat format, ushort integerBits, ushort floatBits ) : PixelFormat
format PixelFormat
integerBits ushort
floatBits ushort
Результат PixelFormat
		public static PixelFormat GetFormatForBitDepths( PixelFormat format, ushort integerBits, ushort floatBits )
		{
			switch ( integerBits )
			{
				case 16:
					switch ( format )
					{
						case PixelFormat.R8G8B8:
						case PixelFormat.X8R8G8B8:
							return PixelFormat.R5G6B5;

						case PixelFormat.B8G8R8:
						case PixelFormat.X8B8G8R8:
							return PixelFormat.B5G6R5;

						case PixelFormat.A8R8G8B8:
						case PixelFormat.R8G8B8A8:
						case PixelFormat.A8B8G8R8:
						case PixelFormat.B8G8R8A8:
							return PixelFormat.A4R4G4B4;

						default:
							// use the original format
							break;
					}
					break;

				case 32:
					switch ( format )
					{
						case PixelFormat.R5G6B5:
							return PixelFormat.X8R8G8B8;

						case PixelFormat.B5G6R5:
							return PixelFormat.X8B8G8R8;

						case PixelFormat.A4R4G4B4:
							return PixelFormat.A8R8G8B8;

						case PixelFormat.A1R5G5B5:
							return PixelFormat.A2R10G10B10;

						default:
							// use the original format
							break;
					}
					break;

				default:
					// use the original format
					break;
			}

			switch ( floatBits )
			{
				case 16:
					switch ( format )
					{
						case PixelFormat.FLOAT32_R:
							return PixelFormat.FLOAT16_R;

						case PixelFormat.FLOAT32_RGB:
							return PixelFormat.FLOAT16_RGB;

						case PixelFormat.FLOAT32_RGBA:
							return PixelFormat.FLOAT16_RGBA;

						default:
							// use original image format
							break;
					}
					break;

				case 32:
					switch ( format )
					{
						case PixelFormat.FLOAT16_R:
							return PixelFormat.FLOAT32_R;

						case PixelFormat.FLOAT16_RGB:
							return PixelFormat.FLOAT32_RGB;

						case PixelFormat.FLOAT16_RGBA:
							return PixelFormat.FLOAT32_RGBA;

						default:
							// use original image format
							break;
					}
					break;

				default:
					// use original image format
					break;

			}

			return format;
		}
	}