本文整理汇总了C++中CRGBA::add方法的典型用法代码示例。如果您正苦于以下问题:C++ CRGBA::add方法的具体用法?C++ CRGBA::add怎么用?C++ CRGBA::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRGBA
的用法示例。
在下文中一共展示了CRGBA::add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawDisc
// ***************************************************************************
void drawDisc(CBitmap &dest, float x, float y, float radius, const CRGBA &color, bool additif /*= false*/, uint numSegs /*= 127*/)
{
CPolygon2D poly;
poly.Vertices.resize(numSegs);
for(uint k = 0; k < numSegs; ++k)
{
poly.Vertices[k].set(x + radius * (float) cos(k / (float) numSegs * 2 * Pi), y + radius * (float) sin(k / (float) numSegs * 2 * Pi));
}
CPolygon2D::TRasterVect rasters;
sint minY;
poly.computeOuterBorders(rasters, minY);
sint maxY = std::min((sint) dest.getHeight(), (sint) rasters.size() + minY);
for (sint y = std::max((sint) 0, minY); y < maxY; ++y)
{
nlassert(y >= 0 && y < (sint) dest.getHeight());
sint minX = std::max((sint) 0, rasters[y - minY].first);
sint maxX = std::min((sint) dest.getWidth(), rasters[y - minY].second);
if (maxX > minX)
{
CRGBA *pt = (CRGBA *) &dest.getPixels(0)[0];
pt += y * dest.getWidth() + minX;
const CRGBA *endPt = pt + (maxX - minX);
while (pt != endPt)
{
if (additif)
{
pt->add(*pt, color);
}
else
{
*pt = color;
}
++ pt;
}
}
}
}