Esempio n. 1
0
void VectorBlur::drawArrowMap()
{
	gl::ScopedColor blue(Color(0, 0, 1));
	Surface pix(fboBlurMap->getColorTexture()->createSource());
	int inc = 8;
	float arrowLength = 5.0f;
	Surface::Iter iter = pix.getIter(fboBlurMap->getBounds());
	while (iter.line()) {
		while (iter.pixel()) {
			ivec2 pos = iter.getPos();
			if (pos.x%inc == 0 && pos.y%inc == 0) {
				vec2 dir(iter.r(), iter.g());
				dir = dir / 255.0f * 2.0f - vec2(1, 1);
				glm::normalize(dir);
				vec2 p0 = pos;
				vec2 p1 = p0 + dir*arrowLength;
				gl::drawLine(p0, p1);
			}
		}
	}
}