aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--samplecode/SampleApp.cpp9
-rw-r--r--src/core/SkColor.cpp12
-rw-r--r--src/core/SkPM4fPriv.h4
-rw-r--r--tests/SkColor4fTest.cpp66
-rw-r--r--tools/skiaserve/Request.cpp6
-rw-r--r--tools/skiaserve/Request.h1
-rw-r--r--tools/skiaserve/skiaserve.cpp1
-rw-r--r--tools/skiaserve/urlhandlers/SRGBModeHandler.cpp42
-rw-r--r--tools/skiaserve/urlhandlers/UrlHandler.h13
9 files changed, 6 insertions, 148 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index b80ea44d30..a1e42e3aac 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -834,8 +834,6 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
itemID = fAppMenu->appendList("ColorType", "ColorType", sinkID, 0,
gConfig[0].fName, gConfig[1].fName, gConfig[2].fName, nullptr);
fAppMenu->assignKeyEquivalentToItem(itemID, 'C');
- itemID = fAppMenu->appendSwitch("sRGB SkColor", "sRGB SkColor", sinkID, gTreatSkColorAsSRGB);
- fAppMenu->assignKeyEquivalentToItem(itemID, 'S');
itemID = fAppMenu->appendList("Device Type", "Device Type", sinkID, 0,
"Raster",
@@ -1549,8 +1547,7 @@ bool SampleWindow::onEvent(const SkEvent& evt) {
SkOSMenu::FindListIndex(evt, "Hinting", &fHintingState) ||
SkOSMenu::FindSwitchState(evt, "Clip", &fUseClip) ||
SkOSMenu::FindSwitchState(evt, "Zoomer", &fShowZoomer) ||
- SkOSMenu::FindSwitchState(evt, "Magnify", &fMagnify) ||
- SkOSMenu::FindSwitchState(evt, "sRGB SkColor", &gTreatSkColorAsSRGB))
+ SkOSMenu::FindSwitchState(evt, "Magnify", &fMagnify))
{
this->inval(nullptr);
this->updateTitle();
@@ -2060,10 +2057,6 @@ void SampleWindow::updateTitle() {
title.appendf(" %d bpc", fDevManager->getColorBits());
}
- if (gTreatSkColorAsSRGB) {
- title.append(" sRGB");
- }
-
this->setTitle(title.c_str());
}
diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp
index 985790dfe5..a1404a27e3 100644
--- a/src/core/SkColor.cpp
+++ b/src/core/SkColor.cpp
@@ -9,8 +9,6 @@
#include "SkColorPriv.h"
#include "SkFixed.h"
-bool gTreatSkColorAsSRGB;
-
SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
return SkPremultiplyARGBInline(a, r, g, b);
}
@@ -158,17 +156,15 @@ SkColor4f SkColor4f::FromColor(SkColor c) {
Sk4f value = SkNx_shuffle<2,1,0,3>(SkNx_cast<float>(Sk4b::Load(&c)));
SkColor4f c4;
(value * Sk4f(1.0f / 255)).store(&c4);
- if (gTreatSkColorAsSRGB) {
- c4.fR = srgb_to_linear(c4.fR);
- c4.fG = srgb_to_linear(c4.fG);
- c4.fB = srgb_to_linear(c4.fB);
- }
+ c4.fR = srgb_to_linear(c4.fR);
+ c4.fG = srgb_to_linear(c4.fG);
+ c4.fB = srgb_to_linear(c4.fB);
return c4;
}
SkColor SkColor4f::toSkColor() const {
SkColor result;
- Sk4f value = SkNx_shuffle<2, 1, 0, 3>(Sk4f::Load(this->vec()));
+ Sk4f value = Sk4f(linear_to_srgb(fB), linear_to_srgb(fG), linear_to_srgb(fR), fA);
SkNx_cast<uint8_t>(value * Sk4f(255) + Sk4f(0.5f)).store(&result);
return result;
}
diff --git a/src/core/SkPM4fPriv.h b/src/core/SkPM4fPriv.h
index 12bf7d0f36..fa5498f90a 100644
--- a/src/core/SkPM4fPriv.h
+++ b/src/core/SkPM4fPriv.h
@@ -11,8 +11,6 @@
#include "SkColorPriv.h"
#include "SkPM4f.h"
-extern bool gTreatSkColorAsSRGB;
-
static inline float get_alpha(const Sk4f& f4) {
return f4[SkPM4f::A];
}
@@ -108,7 +106,7 @@ static inline Sk4f Sk4f_fromS32(uint32_t src) {
// SkColor has an ordering of (b, g, r, a) if cast to an Sk4f, so the code swizzles r and b to
// produce the needed (r, g, b, a) ordering.
static inline Sk4f Sk4f_from_SkColor(SkColor color) {
- return swizzle_rb(gTreatSkColorAsSRGB ? Sk4f_fromS32(color) : Sk4f_fromL32(color));
+ return swizzle_rb(Sk4f_fromS32(color));
}
static inline uint32_t Sk4f_toL32(const Sk4f& x4) {
diff --git a/tests/SkColor4fTest.cpp b/tests/SkColor4fTest.cpp
index 1dacfb2d95..0cbd5ce4c6 100644
--- a/tests/SkColor4fTest.cpp
+++ b/tests/SkColor4fTest.cpp
@@ -43,7 +43,6 @@ DEF_TEST(SkColor4f_FromColor, reporter) {
{ SK_ColorGREEN, { 0, 1, 0, 1 } },
{ SK_ColorBLUE, { 0, 0, 1, 1 } },
{ 0, { 0, 0, 0, 0 } },
- { 0x55AAFF00, { 2/3.0f, 1, 0, 1 / 3.0f } },
};
for (const auto& r : recs) {
@@ -97,35 +96,6 @@ static sk_sp<SkColorFilter> make_compose_cf() {
return SkColorFilter::MakeComposeFilter(make_mode_cf(), make_mx_cf());
}
-static sk_sp<SkShader> make_color_sh() { return SkShader::MakeColorShader(0xFFBB8855); }
-
-static sk_sp<SkShader> make_image_sh() {
- const SkImageInfo info = SkImageInfo::MakeN32Premul(2, 2);
- const SkPMColor pixels[] {
- SkPackARGB32(0xFF, 0xBB, 0x88, 0x55),
- SkPackARGB32(0xFF, 0xBB, 0x88, 0x55),
- SkPackARGB32(0xFF, 0xBB, 0x88, 0x55),
- SkPackARGB32(0xFF, 0xBB, 0x88, 0x55),
- };
- sk_sp<SkImage> image(SkImage::MakeRasterCopy(SkPixmap(info, pixels, sizeof(SkPMColor) * 2)));
- return image->makeShader(SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);
-}
-
-static sk_sp<SkShader> make_grad_sh() {
-#if 0
- const SkPoint pts[] {{ 0, 0 }, { 100, 100 }};
- const SkColor colors[] { SK_ColorRED, SK_ColorBLUE };
- return SkGradientShader::CreateLinear(pts, colors, nullptr, 2, SkShader::kClamp_TileMode);
-#else
- // TODO: need to convert new gradient code to enforce PM4f --> RGBA order
- return make_color_sh();
-#endif
-}
-
-static sk_sp<SkShader> make_cf_sh() {
- return make_color_sh()->makeWithColorFilter(make_mx_cf());
-}
-
static bool compare_spans(const SkPM4f span4f[], const SkPMColor span4b[], int count,
float tolerance = 1.0f/255) {
for (int i = 0; i < count; ++i) {
@@ -138,42 +108,6 @@ static bool compare_spans(const SkPM4f span4f[], const SkPMColor span4b[], int c
return true;
}
-DEF_TEST(Color4f_shader, reporter) {
- struct {
- sk_sp<SkShader> (*fFact)();
- bool fSupports4f;
- float fTolerance;
- } recs[] = {
- { make_color_sh, true, 1.0f/255 },
- // PMColor 4f gradients are interpolated in 255-multiplied values, so we need a
- // slightly relaxed tolerance to accommodate the cumulative precision deviation.
- { make_grad_sh, true, 1.001f/255 },
- { make_image_sh, false, 1.0f/255 },
- { make_cf_sh, true, 1.0f/255 },
- };
-
- SkPaint paint;
- for (const auto& rec : recs) {
- uint32_t storage[kSkBlitterContextSize];
- paint.setShader(rec.fFact());
- // Encourage 4f context selection. At some point we may need
- // to instantiate two separate contexts for optimal 4b/4f selection.
- const SkShader::ContextRec contextRec(paint, SkMatrix::I(), nullptr,
- SkShader::ContextRec::kPM4f_DstType);
- SkASSERT(paint.getShader()->contextSize(contextRec) <= sizeof(storage));
- SkShader::Context* ctx = paint.getShader()->createContext(contextRec, storage);
- if (rec.fSupports4f) {
- const int N = 100;
- SkPM4f buffer4f[N];
- ctx->shadeSpan4f(0, 0, buffer4f, N);
- SkPMColor buffer4b[N];
- ctx->shadeSpan(0, 0, buffer4b, N);
- REPORTER_ASSERT(reporter, compare_spans(buffer4f, buffer4b, N, rec.fTolerance));
- }
- ctx->~Context();
- }
-}
-
DEF_TEST(Color4f_colorfilter, reporter) {
struct {
sk_sp<SkColorFilter> (*fFact)();
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp
index 756f70e24d..f2f10acad1 100644
--- a/tools/skiaserve/Request.cpp
+++ b/tools/skiaserve/Request.cpp
@@ -201,11 +201,6 @@ bool Request::setColorMode(int mode) {
return enableGPU(fGPUEnabled);
}
-bool Request::setSRGBMode(bool enable) {
- gTreatSkColorAsSRGB = enable;
- return true;
-}
-
bool Request::enableGPU(bool enable) {
if (enable) {
SkSurface* surface = this->createGPUSurface();
@@ -258,7 +253,6 @@ SkData* Request::getJsonOps(int n) {
root["mode"] = Json::Value(fGPUEnabled ? "gpu" : "cpu");
root["drawGpuBatchBounds"] = Json::Value(fDebugCanvas->getDrawGpuBatchBounds());
root["colorMode"] = Json::Value(fColorMode);
- root["srgbMode"] = Json::Value(gTreatSkColorAsSRGB);
SkDynamicMemoryWStream stream;
stream.writeText(Json::FastWriter().write(root).c_str());
diff --git a/tools/skiaserve/Request.h b/tools/skiaserve/Request.h
index 6cb969170d..f3af6b72ee 100644
--- a/tools/skiaserve/Request.h
+++ b/tools/skiaserve/Request.h
@@ -42,7 +42,6 @@ struct Request {
SkBitmap* getBitmapFromCanvas(SkCanvas* canvas);
bool enableGPU(bool enable);
bool setColorMode(int mode);
- bool setSRGBMode(bool enable);
bool hasPicture() const { return SkToBool(fPicture.get()); }
int getLastOp() const { return fDebugCanvas->getSize() - 1; }
diff --git a/tools/skiaserve/skiaserve.cpp b/tools/skiaserve/skiaserve.cpp
index e26af78f9e..3e547a8d70 100644
--- a/tools/skiaserve/skiaserve.cpp
+++ b/tools/skiaserve/skiaserve.cpp
@@ -45,7 +45,6 @@ public:
fHandlers.push_back(new BatchesHandler);
fHandlers.push_back(new BatchBoundsHandler);
fHandlers.push_back(new ColorModeHandler);
- fHandlers.push_back(new SRGBModeHandler);
fHandlers.push_back(new QuitHandler);
}
diff --git a/tools/skiaserve/urlhandlers/SRGBModeHandler.cpp b/tools/skiaserve/urlhandlers/SRGBModeHandler.cpp
deleted file mode 100644
index 1dd9789191..0000000000
--- a/tools/skiaserve/urlhandlers/SRGBModeHandler.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2016 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "UrlHandler.h"
-
-#include "microhttpd.h"
-#include "../Request.h"
-#include "../Response.h"
-
-using namespace Response;
-
-bool SRGBModeHandler::canHandle(const char* method, const char* url) {
- static const char* kBasePath = "/srgbMode/";
- return 0 == strcmp(method, MHD_HTTP_METHOD_POST) &&
- 0 == strncmp(url, kBasePath, strlen(kBasePath));
-}
-
-int SRGBModeHandler::handle(Request* request, MHD_Connection* connection,
- const char* url, const char* method,
- const char* upload_data, size_t* upload_data_size) {
- SkTArray<SkString> commands;
- SkStrSplit(url, "/", &commands);
-
- if (commands.count() != 2) {
- return MHD_NO;
- }
-
- int enable;
- if (1 != sscanf(commands[1].c_str(), "%d", &enable)) {
- return MHD_NO;
- }
-
- bool success = request->setSRGBMode(SkToBool(enable));
- if (!success) {
- return SendError(connection, "Unable to set requested mode");
- }
- return SendOK(connection);
-}
diff --git a/tools/skiaserve/urlhandlers/UrlHandler.h b/tools/skiaserve/urlhandlers/UrlHandler.h
index 76547c5348..2702f480fc 100644
--- a/tools/skiaserve/urlhandlers/UrlHandler.h
+++ b/tools/skiaserve/urlhandlers/UrlHandler.h
@@ -142,19 +142,6 @@ public:
const char* upload_data, size_t* upload_data_size) override;
};
-/**
- * Controls the global sRGB flag (is SkColor treated as sRGB or not).
- * Posting to /srgbMode/0 causes SkColor to be linear, /colorMode/1
- * causes SkColor to be sRGB;
- */
-class SRGBModeHandler : public UrlHandler {
-public:
- bool canHandle(const char* method, const char* url) override;
- int handle(Request* request, MHD_Connection* connection,
- const char* url, const char* method,
- const char* upload_data, size_t* upload_data_size) override;
-};
-
class QuitHandler : public UrlHandler {
public:
bool canHandle(const char* method, const char* url) override;