/*
 * Copyright 2021 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/SkRect.h"
#include "include/effects/SkRuntimeEffect.h"
#include "tools/Resources.h"

namespace skiagm {

DEF_SIMPLE_GM(destcolor, canvas, 640, 640) {
    // Draw the mandrill.
    canvas->drawImage(GetResourceAsImage("images/mandrill_512.png"), 0, 0);

    // Now let's add our test effect on top. It reads back the original image and inverts it.
    auto [effect, error] = SkRuntimeEffect::MakeForBlender(SkString(R"(
        half4 main(half4 src, half4 dst) {
            return (half4(1) - dst).rgb1;
        }
    )"));
    SkASSERT(effect);
    SkPaint invertPaint;
    invertPaint.setAntiAlias(true);
    invertPaint.setBlender(effect->makeBlender(nullptr));
    canvas->drawOval(SkRect::MakeLTRB(128, 128, 640, 640), invertPaint);
}

} // namespace skiagm
