//
// Copyright (c) 2010-2021 Antmicro
// Copyright (c) 2011-2015 Realtime Embedded
// Copyright (c) 2020-2021 Microsoft
//
// This file is licensed under the MIT License.
// Full license text is available in 'licenses/MIT.txt'.
//
namespace Antmicro.Renode.Backends.Display
{
public interface IPixelConverter
{
///
/// Converts pixels stored in and having the format, into pixels having the format, and stores the result in .
///
/// input buffer
/// buffer containing the LUT for each input pixel. Used if Input uses indexed colors (L mode)
/// fixed alpha value
/// controls how gets used to compute the alpha of output pixels
/// output buffer
void Convert(byte[] inBuffer, byte[] clutBuffer, byte alpha, PixelBlendingMode alphaReplaceMode, ref byte[] outBuffer);
///
/// Converts pixels stored in and having the format, into pixels having the format, and stores the result in .
///
/// input buffer
/// output buffer
void Convert(byte[] inBuffer, ref byte[] outBuffer);
///
/// Pixel format of the conversion input
///
PixelFormat Input { get; }
///
/// Pixel format of the conversion output
///
PixelFormat Output { get; }
}
}