MapTemplatePixelKernel MapGenerator::getKernel(const Surface& surface, const ::Int2& position) const { const Int2 positionL = position + Int2(-1, 0); const Int2 positionR = position + Int2( 1, 0); const Int2 positionD = position + Int2( 0, -1); const Int2 positionU = position + Int2( 0, 1); return MapTemplatePixelKernel( surface[position], surface.isInside(positionL) ? surface[positionL] : RGBA32(0, 0, 0, 0), surface.isInside(positionR) ? surface[positionR] : RGBA32(0, 0, 0, 0), surface.isInside(positionD) ? surface[positionD] : RGBA32(0, 0, 0, 0), surface.isInside(positionU) ? surface[positionU] : RGBA32(0, 0, 0, 0) ); }
uint32_t Image::GetPixel( int32_t x, int32_t y ) { if ( this->pixels ) { uint8_t * pix = this->GetPixelPointer( x, y ); if (pix) { return (uint32_t)RGBA32(pix[0], pix[1], pix[2], pix[3]); } } return 0; }
void Image::toSurface(flowerpot::Surface& surface, const Real exposure) { lock_guard<mutex> lock(_dataLock); if (surface.getWidth() != getWidth() || surface.getHeight() != surface.getHeight()) { surface = Surface(getWidth(), getHeight()); } surface.loop([&](RGBA32& pixel, const int x, const int y) { pixel = RGBA32( sampleComponentToPixelComponent(at(x, y).color.x, exposure), sampleComponentToPixelComponent(at(x, y).color.y, exposure), sampleComponentToPixelComponent(at(x, y).color.z, exposure), 255 ); }); }
Color toColor(const WebKit::WebColor& color) { return WebCore::Color(RGBA32(color)); }
uint32_t getPixel( uint8_t * pixels, int32_t p ) { uint8_t * pix = pixels; pix += (p*4); return (uint32_t)RGBA32(pix[0], pix[1], pix[2], pix[3]); }