static void FromColor_D565(void* dst, const SkColor src[], int width, int x, int y) { uint16_t* d = (uint16_t*)dst; DITHER_565_SCAN(y); for (int stop = x + width; x < stop; x++) { SkColor c = *src++; *d++ = SkDitherRGBTo565(SkColorGetR(c), SkColorGetG(c), SkColorGetB(c), DITHER_VALUE(x)); } }
void SkPerlinNoiseShader::PerlinNoiseShaderContext::shadeSpan16( int x, int y, uint16_t result[], int count) { SkPoint point = SkPoint::Make(SkIntToScalar(x), SkIntToScalar(y)); StitchData stitchData; DITHER_565_SCAN(y); for (int i = 0; i < count; ++i) { unsigned dither = DITHER_VALUE(x); result[i] = SkDitherRGB32To565(shade(point, stitchData), dither); DITHER_INC_X(x); point.fX += SK_Scalar1; } }