blob: e5042a246f9a92dfe91cf3abb7892772a2684d70 [file]
/*
* Copyright 2023 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef Draw_DEFINED
#define Draw_DEFINED
#include "gm/gm.h"
#include "include/core/SkBitmap.h"
#include "include/core/SkSurface.h"
#include <string>
// Holds the result of the draw() function.
struct GMOutput {
skiagm::GM::DrawResult result;
std::string msg;
SkBitmap bitmap;
GMOutput(skiagm::GM::DrawResult result = skiagm::DrawResult::kFail,
std::string msg = "",
SkBitmap bitmap = SkBitmap())
: result(result), msg(msg), bitmap(bitmap) {}
};
// Draws a GM on a surface.
//
// To make the Bazel build more modular, multiple implementations of this function exist. Each
// implementation lives in a separate .cpp files that is conditionally included based on the
// //gm/vias:via Bazel config flag.
GMOutput draw(skiagm::GM* gm, SkSurface* surface, std::string via);
#endif // Draw_DEFINED