diff options
Diffstat (limited to 'samplecode/SampleSGInval.cpp')
-rw-r--r-- | samplecode/SampleSGInval.cpp | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/samplecode/SampleSGInval.cpp b/samplecode/SampleSGInval.cpp deleted file mode 100644 index 44cdcb91d9..0000000000 --- a/samplecode/SampleSGInval.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2017 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SampleCode.h" -#include "SkCanvas.h" -#include "SkSGColor.h" -#include "SkSGDraw.h" -#include "SkSGGroup.h" -#include "SkSGInvalidationController.h" -#include "SkSGRect.h" -#include "SkSGTransform.h" -#include "SkAnimTimer.h" - -#include <cmath> - -class SGInvalView final : public SampleView { -public: - SGInvalView() {} - -protected: - void onOnceBeforeDraw() override { - fRect1 = sksg::Rect::Make(SkRect::MakeLTRB(100, 100, 100, 100)); - fRect2 = sksg::Rect::Make(SkRect::MakeLTRB(300, 200, 300, 200)); - fColor1 = sksg::Color::Make(0); - fColor2 = sksg::Color::Make(0); - - fRoot = sksg::Group::Make(); - fRoot->addChild(sksg::Draw::Make(fRect1, fColor1)); - fRoot->addChild(sksg::Transform::Make(sksg::Draw::Make(fRect2, fColor2), - SkMatrix::MakeScale(1.5f, 1.5f))); - } - - bool onQuery(SkEvent* evt) override { - if (SampleCode::TitleQ(*evt)) { - SampleCode::TitleR(evt, "SGInval"); - return true; - } - - return this->INHERITED::onQuery(evt); - } - - void onDrawContent(SkCanvas* canvas) override { - sksg::InvalidationController ic; - fRoot->revalidate(&ic, SkMatrix::I()); - - // TODO: clip/cull - fRoot->render(canvas); - - SkPaint p; - p.setColor(0xffff0000); - p.setStyle(SkPaint::kStroke_Style); - p.setAntiAlias(true); - p.setStrokeWidth(0); - - for (const auto& r : ic) { - canvas->drawRect(r, p); - } - } - - bool onAnimate(const SkAnimTimer& timer) override { - if (!fRoot) { - return true; - } - - static constexpr SkScalar kSize = 50; - static constexpr SkScalar kRate = 1.0f / 500; - const auto t = timer.msec() * kRate; - - fRect1->setR(fRect1->getL() + kSize * (1 + std::sin(t))); - fRect1->setB(fRect1->getT() + kSize * (1 + std::cos(t))); - fRect2->setR(fRect2->getL() + kSize * (1 + std::cos(SK_ScalarPI / 2 + t))); - fRect2->setB(fRect2->getT() + kSize * (1 + std::sin(SK_ScalarPI / 2 + t))); - - fColor1->setColor(SkColorSetARGB(128 * (1 + std::sin(t)), 0, 0x80, 0)); - fColor2->setColor(SkColorSetARGB(128 * (1 + std::cos(t)), 0, 0, 0x80)); - return true; - } - -private: - typedef SampleView INHERITED; - - sk_sp<sksg::Rect> fRect1, - fRect2; - sk_sp<sksg::Color> fColor1, - fColor2; - sk_sp<sksg::Group> fRoot; -}; - -static SkView* SGInvalFactory() { return new SGInvalView; } -static SkViewRegister reg(SGInvalFactory); |