当前位置: 首页>>代码示例>>C++>>正文


C++ CRGBA::add方法代码示例

本文整理汇总了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;
			}
		}
	}
}
开发者ID:AzyxWare,项目名称:ryzom,代码行数:38,代码来源:misc.cpp


注:本文中的CRGBA::add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。