本文整理汇总了C++中bitmap_argb32::fill方法的典型用法代码示例。如果您正苦于以下问题:C++ bitmap_argb32::fill方法的具体用法?C++ bitmap_argb32::fill怎么用?C++ bitmap_argb32::fill使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bitmap_argb32
的用法示例。
在下文中一共展示了bitmap_argb32::fill方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render_triangle
void ui_menu::render_triangle(bitmap_argb32 &dest, bitmap_argb32 &source, const rectangle &sbounds, void *param)
{
int halfwidth = dest.width() / 2;
int height = dest.height();
int x, y;
// start with all-transparent
dest.fill(rgb_t(0x00,0x00,0x00,0x00));
// render from the tip to the bottom
for (y = 0; y < height; y++)
{
int linewidth = (y * (halfwidth - 1) + (height / 2)) * 255 * 2 / height;
UINT32 *target = &dest.pix32(y, halfwidth);
// don't antialias if height < 12
if (dest.height() < 12)
{
int pixels = (linewidth + 254) / 255;
if (pixels % 2 == 0) pixels++;
linewidth = pixels * 255;
}
// loop while we still have data to generate
for (x = 0; linewidth > 0; x++)
{
int dalpha;
// first column we only consume one pixel
if (x == 0)
{
dalpha = MIN(0xff, linewidth);
target[x] = rgb_t(dalpha,0xff,0xff,0xff);
}
// remaining columns consume two pixels, one on each side
else
{
dalpha = MIN(0x1fe, linewidth);
target[x] = target[-x] = rgb_t(dalpha/2,0xff,0xff,0xff);
}
// account for the weight we consumed */
linewidth -= dalpha;
}
}
}