simplify gm matrices
rm gm that appears to have been there solely for pdf, but we don't use it for that now. Bug: skia: Change-Id: I3cf88db923c2445b7c95dda14da679a594117643 Reviewed-on: https://skia-review.googlesource.com/31760 Reviewed-by: Derek Sollenberger <djsollen@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
This commit is contained in:
parent
95db9b3cb1
commit
bdc3afa577
@ -70,7 +70,6 @@ GMSrc::GMSrc(skiagm::GMRegistry::Factory factory) : fFactory(factory) {}
|
||||
|
||||
Error GMSrc::draw(SkCanvas* canvas) const {
|
||||
std::unique_ptr<skiagm::GM> gm(fFactory(nullptr));
|
||||
canvas->concat(gm->getInitialTransform());
|
||||
gm->draw(canvas);
|
||||
return "";
|
||||
}
|
||||
|
@ -16,7 +16,6 @@ GM::GM() {
|
||||
fBGColor = SK_ColorWHITE;
|
||||
fCanvasIsDeferred = false;
|
||||
fHaveCalledOnceBeforeDraw = false;
|
||||
fStarterMatrix.reset();
|
||||
}
|
||||
|
||||
GM::~GM() {}
|
||||
|
17
gm/gm.h
17
gm/gm.h
@ -72,16 +72,6 @@ namespace skiagm {
|
||||
return SkIntToScalar(this->getISize().height());
|
||||
}
|
||||
|
||||
// TODO(vandebo) Instead of exposing this, we should run all the GMs
|
||||
// with and without an initial transform.
|
||||
// Most GMs will return the identity matrix, but some PDFs tests
|
||||
// require setting the initial transform.
|
||||
SkMatrix getInitialTransform() const {
|
||||
SkMatrix matrix = fStarterMatrix;
|
||||
matrix.preConcat(this->onGetInitialTransform());
|
||||
return matrix;
|
||||
}
|
||||
|
||||
SkColor getBGColor() const { return fBGColor; }
|
||||
void setBGColor(SkColor);
|
||||
|
||||
@ -94,11 +84,6 @@ namespace skiagm {
|
||||
fCanvasIsDeferred = isDeferred;
|
||||
}
|
||||
|
||||
const SkMatrix& getStarterMatrix() { return fStarterMatrix; }
|
||||
void setStarterMatrix(const SkMatrix& matrix) {
|
||||
fStarterMatrix = matrix;
|
||||
}
|
||||
|
||||
bool animate(const SkAnimTimer&);
|
||||
bool handleKey(SkUnichar uni) {
|
||||
return this->onHandleKey(uni);
|
||||
@ -118,7 +103,6 @@ namespace skiagm {
|
||||
|
||||
virtual bool onAnimate(const SkAnimTimer&) { return false; }
|
||||
virtual bool onHandleKey(SkUnichar uni) { return false; }
|
||||
virtual SkMatrix onGetInitialTransform() const { return SkMatrix::I(); }
|
||||
|
||||
private:
|
||||
Mode fMode;
|
||||
@ -126,7 +110,6 @@ namespace skiagm {
|
||||
SkColor fBGColor;
|
||||
bool fCanvasIsDeferred; // work-around problem in srcmode.cpp
|
||||
bool fHaveCalledOnceBeforeDraw;
|
||||
SkMatrix fStarterMatrix;
|
||||
};
|
||||
|
||||
typedef sk_tools::Registry<GM*(*)(void*)> GMRegistry;
|
||||
|
@ -1,106 +0,0 @@
|
||||
/*
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "gm.h"
|
||||
#include "SkGradientShader.h"
|
||||
|
||||
namespace skiagm {
|
||||
|
||||
static sk_sp<SkShader> MakeLinear(SkScalar width, SkScalar height, bool alternate,
|
||||
const SkMatrix& localMatrix) {
|
||||
SkPoint pts[2] = { {0, 0}, {width, height}};
|
||||
SkColor colors[2] = {SK_ColorRED, SK_ColorGREEN};
|
||||
if (alternate) {
|
||||
pts[1].fY = 0;
|
||||
colors[0] = SK_ColorBLUE;
|
||||
colors[1] = SK_ColorYELLOW;
|
||||
}
|
||||
return SkGradientShader::MakeLinear(pts, colors, nullptr, 2, SkShader::kClamp_TileMode,
|
||||
0, &localMatrix);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class ShaderBoundsGM : public GM {
|
||||
public:
|
||||
typedef sk_sp<SkShader> (*ShaderGenFunc)(SkScalar width, SkScalar height,
|
||||
bool alternate, const SkMatrix& localMatrix);
|
||||
ShaderBoundsGM(ShaderGenFunc maker, const SkString& name)
|
||||
: fShaderMaker(maker),
|
||||
fName(name) {
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
SkString onShortName() override {
|
||||
return fName;
|
||||
}
|
||||
|
||||
SkISize onISize() override { return SkISize::Make(320, 240); }
|
||||
|
||||
SkMatrix onGetInitialTransform() const override {
|
||||
SkMatrix result;
|
||||
SkScalar scale = 0.8f;
|
||||
result.setScale(scale, scale);
|
||||
result.postTranslate(SkIntToScalar(7), SkIntToScalar(23));
|
||||
return result;
|
||||
}
|
||||
|
||||
void onDraw(SkCanvas* canvas) override {
|
||||
// The PDF device has already clipped to the content area, but we
|
||||
// do it again here so that the raster and pdf results are consistent.
|
||||
canvas->clipRect(SkRect::MakeWH(SkIntToScalar(320),
|
||||
SkIntToScalar(240)));
|
||||
|
||||
SkMatrix canvasScale;
|
||||
SkScalar scale = 0.7f;
|
||||
canvasScale.setScale(scale, scale);
|
||||
canvas->concat(canvasScale);
|
||||
|
||||
// Background shader.
|
||||
SkPaint paint;
|
||||
paint.setShader(MakeShader(559, 387, false));
|
||||
SkRect r = SkRect::MakeXYWH(SkIntToScalar(-12), SkIntToScalar(-41),
|
||||
SkIntToScalar(571), SkIntToScalar(428));
|
||||
canvas->drawRect(r, paint);
|
||||
|
||||
// Constrained shader.
|
||||
paint.setShader(MakeShader(101, 151, true));
|
||||
r = SkRect::MakeXYWH(SkIntToScalar(43), SkIntToScalar(71),
|
||||
SkIntToScalar(101), SkIntToScalar(151));
|
||||
canvas->clipRect(r);
|
||||
canvas->drawRect(r, paint);
|
||||
}
|
||||
|
||||
sk_sp<SkShader> MakeShader(int width, int height, bool background) {
|
||||
SkScalar scale = 0.5f;
|
||||
if (background) {
|
||||
scale = 0.6f;
|
||||
}
|
||||
SkScalar shaderWidth = width / scale;
|
||||
SkScalar shaderHeight = height / scale;
|
||||
SkMatrix shaderScale = SkMatrix::MakeScale(scale);
|
||||
return fShaderMaker(shaderWidth, shaderHeight, background, shaderScale);
|
||||
}
|
||||
|
||||
private:
|
||||
typedef GM INHERITED;
|
||||
|
||||
ShaderGenFunc fShaderMaker;
|
||||
SkString fName;
|
||||
|
||||
sk_sp<SkShader> MakeShader(bool background);
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static GM* MyFactory(void*) {
|
||||
return new ShaderBoundsGM(MakeLinear, SkString("shaderbounds_linear"));
|
||||
}
|
||||
static GMRegistry reg(MyFactory);
|
||||
|
||||
}
|
@ -252,7 +252,6 @@ gm_sources = [
|
||||
"$_gm/samplerstress.cpp",
|
||||
"$_gm/savelayer.cpp",
|
||||
"$_gm/scaledstrokes.cpp",
|
||||
"$_gm/shaderbounds.cpp",
|
||||
"$_gm/shadertext.cpp",
|
||||
"$_gm/shadertext2.cpp",
|
||||
"$_gm/shadertext3.cpp",
|
||||
|
@ -42,7 +42,6 @@ struct GMStream : Stream {
|
||||
Status draw(SkCanvas* canvas) override {
|
||||
this->init();
|
||||
canvas->clear(0xffffffff);
|
||||
canvas->concat(gm->getInitialTransform());
|
||||
gm->draw(canvas);
|
||||
return Status::OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user