/** * @fn void bitmap_t::fill(UINT32 color, const rectangle &cliprect) * * @brief ------------------------------------------------- * fill -- fill a bitmap with a solid color * -------------------------------------------------. * * @param color The color. * @param bounds The bounds. */ public void fill(uint64_t color, rectangle bounds) { // if we have a cliprect, intersect with that rectangle fill = bounds; fill &= m_cliprect; if (!fill.empty()) { // based on the bpp go from there switch (m_bpp) { case 8: for (int32_t y = fill.top(); y <= fill.bottom(); y++) { std.fill_n(pixt <uint8_t, PixelType_operators_u8>(y, fill.left()), (size_t)fill.width(), (uint8_t)color); //std::fill_n(&pixt<uint8_t>(y, fill.left()), fill.width(), uint8_t(color)); } break; case 16: for (int32_t y = fill.top(); y <= fill.bottom(); ++y) { std.fill_n((PointerU16)pixt <uint16_t, PixelType_operators_u16>(y, fill.left()), (size_t)fill.width(), (uint16_t)color); //std::fill_n(&pixt<uint16_t>(y, fill.left()), fill.width(), uint16_t(color)); } break; case 32: for (int32_t y = fill.top(); y <= fill.bottom(); ++y) { std.fill_n((PointerU32)pixt <uint32_t, PixelType_operators_u32>(y, fill.left()), (size_t)fill.width(), (uint32_t)color); //std::fill_n(&pixt<uint32_t>(y, fill.left()), fill.width(), uint32_t(color)); } break; case 64: for (int32_t y = fill.top(); y <= fill.bottom(); ++y) { std.fill_n((PointerU64)pixt <uint64_t, PixelType_operators_u64>(y, fill.left()), (size_t)fill.width(), (uint64_t)color); //std::fill_n(&pixt<uint64_t>(y, fill.left()), fill.width(), uint64_t(color)); } break; } } }