9 : m_image(Overlay->w, Overlay->h, QImage::Format_Indexed8),
17 : m_image(Overlay->w, Overlay->h, QImage::Format_ARGB32),
28 QVector<QRgb> rgbpalette;
29 for (
int i = 0; i < 256; i++)
32 int cr = Palette[i].Cr;
33 int cb = Palette[i].Cb;
35 int r =
std::clamp(
int(y + (1.4022 * (cr - 128))), 0, 0xff);
36 int b =
std::clamp(
int(y + (1.7710 * (cb - 128))), 0, 0xff);
37 int g =
std::clamp(
int((1.7047 * y) - (0.1952 * b) - (0.5647 * r)), 0, 0xff);
38 rgbpalette.push_back(
static_cast<uint>((a << 24) | (r << 16) | (g << 8) | b));
40 m_image.setColorTable(rgbpalette);
50 if (
m_image.format() == QImage::Format_Indexed8)
53 int32_t offset = (Top *
m_image.bytesPerLine()) + Left;
54 for (
int i = 0; i < Height; i++ )
56 memset(&data[offset], 0xff,
static_cast<size_t>(Width));
57 offset +=
m_image.bytesPerLine();
62 QColor transparent(0, 0, 0, 255);
64 painter.setCompositionMode(QPainter::CompositionMode_Source);
65 painter.fillRect(Left, Top, Width, Height, transparent);
void SetPalette(const BD_PG_PALETTE_ENTRY *Palette)
static eu8 clamp(eu8 value, eu8 low, eu8 high)