| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index d0c526b1700aab2727466da756410591d8c17e99..d9727415b254a3bc1471b4f9196908dd23acab1f 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -396,7 +396,8 @@ void SkGpuDevice::drawPaint(const SkDraw& draw, const SkPaint& paint) {
|
| GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawPaint", fContext);
|
|
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -446,7 +447,8 @@ void SkGpuDevice::drawPoints(const SkDraw& draw, SkCanvas::PointMode mode,
|
| if (paint.getPathEffect() && 2 == count && SkCanvas::kLines_PointMode == mode) {
|
| GrStrokeInfo strokeInfo(paint, SkPaint::kStroke_Style);
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
| SkPath path;
|
| @@ -466,7 +468,8 @@ void SkGpuDevice::drawPoints(const SkDraw& draw, SkCanvas::PointMode mode,
|
| }
|
|
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -518,7 +521,8 @@ void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect, const SkPaint
|
| }
|
|
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -536,7 +540,8 @@ void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect,
|
| CHECK_SHOULD_DRAW(draw);
|
|
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -611,7 +616,8 @@ void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer,
|
|
|
| if (stroke.isFillStyle() && !paint.getMaskFilter() && !paint.getPathEffect()) {
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -655,7 +661,8 @@ void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint
|
| }
|
|
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -1139,7 +1146,8 @@ void SkGpuDevice::internalDrawBitmap(const SkBitmap& bitmap,
|
|
|
| GrPaint grPaint;
|
| if (!SkPaintToGrPaintWithTexture(this->context(), paint, viewMatrix, fp,
|
| - kAlpha_8_SkColorType == bitmap.colorType(), &grPaint)) {
|
| + kAlpha_8_SkColorType == bitmap.colorType(),
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -1233,7 +1241,8 @@ void SkGpuDevice::drawSprite(const SkDraw& draw, const SkBitmap& bitmap,
|
| } else {
|
| fp.reset(GrFragmentProcessor::MulOutputByInputAlpha(fp));
|
| }
|
| - if (!SkPaintToGrPaintReplaceShader(this->context(), paint, fp, &grPaint)) {
|
| + if (!SkPaintToGrPaintReplaceShader(this->context(), paint, fp,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -1393,7 +1402,8 @@ void SkGpuDevice::drawDevice(const SkDraw& draw, SkBaseDevice* device,
|
| fp.reset(GrFragmentProcessor::MulOutputByInputAlpha(fp));
|
| }
|
|
|
| - if (!SkPaintToGrPaintReplaceShader(this->context(), paint, fp, &grPaint)) {
|
| + if (!SkPaintToGrPaintReplaceShader(this->context(), paint, fp,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -1532,7 +1542,8 @@ void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* produc
|
| &kMode));
|
| GrPaint grPaint;
|
| if (!SkPaintToGrPaintWithTexture(this->context(), paint, *draw.fMatrix, fp,
|
| - producer->isAlphaOnly(), &grPaint)) {
|
| + producer->isAlphaOnly(),
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -1599,7 +1610,8 @@ void SkGpuDevice::drawVertices(const SkDraw& draw, SkCanvas::VertexMode vmode,
|
|
|
| GrPaint grPaint;
|
| // we ignore the shader if texs is null.
|
| - if (!SkPaintToGrPaintNoShader(this->context(), copy, &grPaint)) {
|
| + if (!SkPaintToGrPaintNoShader(this->context(), copy,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -1671,12 +1683,14 @@ void SkGpuDevice::drawVertices(const SkDraw& draw, SkCanvas::VertexMode vmode,
|
| colorMode = SkXfermode::kModulate_Mode;
|
| }
|
| if (!SkPaintToGrPaintWithXfermode(this->context(), paint, *draw.fMatrix, colorMode,
|
| - false, &grPaint)) {
|
| + false, this->surfaceProps().allowSRGBInputs(),
|
| + &grPaint)) {
|
| return;
|
| }
|
| } else {
|
| // We have a shader, but no colors to blend it against.
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
| }
|
| @@ -1684,12 +1698,15 @@ void SkGpuDevice::drawVertices(const SkDraw& draw, SkCanvas::VertexMode vmode,
|
| if (colors) {
|
| // We have colors, but either have no shader or no texture coords (which implies that
|
| // we should ignore the shader).
|
| - if (!SkPaintToGrPaintWithPrimitiveColor(this->context(), paint, &grPaint)) {
|
| + if (!SkPaintToGrPaintWithPrimitiveColor(this->context(), paint,
|
| + this->surfaceProps().allowSRGBInputs(),
|
| + &grPaint)) {
|
| return;
|
| }
|
| } else {
|
| // No colors and no shaders. Just draw with the paint color.
|
| - if (!SkPaintToGrPaintNoShader(this->context(), paint, &grPaint)) {
|
| + if (!SkPaintToGrPaintNoShader(this->context(), paint,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
| }
|
| @@ -1727,11 +1744,12 @@ void SkGpuDevice::drawAtlas(const SkDraw& draw, const SkImage* atlas, const SkRS
|
| GrPaint grPaint;
|
| if (colors) {
|
| if (!SkPaintToGrPaintWithXfermode(this->context(), p, *draw.fMatrix, mode, true,
|
| - &grPaint)) {
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
| } else {
|
| - if (!SkPaintToGrPaint(this->context(), p, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), p, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
| }
|
| @@ -1750,7 +1768,8 @@ void SkGpuDevice::drawText(const SkDraw& draw, const void* text,
|
| GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawText", fContext);
|
|
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
| @@ -1768,7 +1787,8 @@ void SkGpuDevice::drawPosText(const SkDraw& draw, const void* text, size_t byteL
|
| CHECK_SHOULD_DRAW(draw);
|
|
|
| GrPaint grPaint;
|
| - if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
|
| + if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix,
|
| + this->surfaceProps().allowSRGBInputs(), &grPaint)) {
|
| return;
|
| }
|
|
|
|
|