1f19ce2272
This reverts commite89b50ae05
. Reason for revert: landed Android fix at http://ag/13544365 (master) and http://ag/13554983 (sc-dev) Original change's description: > Android roll broke with a compilation error: > frameworks/base/libs/hwui/jni/Shader.cpp:243:37: error: no matching function for call to 'get' > sk_sp<SkRuntimeEffect> effect = std::get<0>(result) > > Revert "Remove deprecated form of SkRuntimeEffect::Make." > > This reverts commit1cda194366
. > > Reason for revert: <INSERT REASONING HERE> > > Original change's description: > > Remove deprecated form of SkRuntimeEffect::Make. > > > > Chromium has migrated to the new API at https://crrev.com/c/2675855. > > > > Change-Id: Id4af77db2c462348e8031d28f56e543ad619c19c > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/367060 > > Reviewed-by: Brian Osman <brianosman@google.com> > > Commit-Queue: Brian Osman <brianosman@google.com> > > Commit-Queue: John Stiles <johnstiles@google.com> > > Auto-Submit: John Stiles <johnstiles@google.com> > > TBR=mtklein@google.com,brianosman@google.com,johnstiles@google.com > > Change-Id: Ie18f865f3b7f5b0263db1e52b19cf6faa0500fdd > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368616 > Reviewed-by: Stan Iliev <stani@google.com> > Commit-Queue: Stan Iliev <stani@google.com> TBR=mtklein@google.com,brianosman@google.com,stani@google.com,johnstiles@google.com Change-Id: I9d679013cb275dc80aaaa977b7f1f4da31f36d1e No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369037 Reviewed-by: John Stiles <johnstiles@google.com> Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: John Stiles <johnstiles@google.com>
58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
/*
|
|
* Copyright 2019 Google LLC
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#include "gm/gm.h"
|
|
#include "include/core/SkCanvas.h"
|
|
#include "include/core/SkData.h"
|
|
#include "include/core/SkPaint.h"
|
|
#include "include/core/SkSize.h"
|
|
#include "include/core/SkString.h"
|
|
#include "include/effects/SkRuntimeEffect.h"
|
|
|
|
static const char* RUNTIME_FUNCTIONS_SRC = R"(
|
|
uniform half4 gColor;
|
|
|
|
half scale(float x) {
|
|
return x / 255;
|
|
}
|
|
|
|
half4 blackAndWhite(half4 raw) {
|
|
half value = raw.r * 0.22 + raw.g * 0.67 + raw.b * 0.11;
|
|
return half4(value.xxx, raw.a);
|
|
}
|
|
|
|
half4 main(float2 p) {
|
|
return blackAndWhite(half4(scale(p.x), scale(p.y), gColor.b, 1));
|
|
}
|
|
)";
|
|
|
|
class RuntimeFunctions : public skiagm::GM {
|
|
bool runAsBench() const override { return true; }
|
|
|
|
SkString onShortName() override { return SkString("runtimefunctions"); }
|
|
|
|
SkISize onISize() override { return {256, 256}; }
|
|
|
|
void onDraw(SkCanvas* canvas) override {
|
|
sk_sp<SkRuntimeEffect> gEffect =
|
|
SkRuntimeEffect::Make(SkString(RUNTIME_FUNCTIONS_SRC)).effect;
|
|
SkASSERT(gEffect);
|
|
|
|
SkMatrix localM;
|
|
localM.setRotate(90, 128, 128);
|
|
|
|
SkColor4f inputColor = { 1, 0, 0, 1 };
|
|
auto shader = gEffect->makeShader(SkData::MakeWithCopy(&inputColor, sizeof(inputColor)),
|
|
nullptr, 0, &localM, true);
|
|
SkPaint p;
|
|
p.setShader(std::move(shader));
|
|
canvas->drawRect({0, 0, 256, 256}, p);
|
|
}
|
|
};
|
|
|
|
DEF_GM(return new RuntimeFunctions;)
|