59 lines
1.8 KiB
C
59 lines
1.8 KiB
C
|
/*
|
||
|
* Copyright 2018 Google Inc.
|
||
|
*
|
||
|
* Use of this source code is governed by a BSD-style license that can be
|
||
|
* found in the LICENSE file.
|
||
|
*/
|
||
|
#ifndef skqp_model_DEFINED
|
||
|
#define skqp_model_DEFINED
|
||
|
|
||
|
#include <cstdint>
|
||
|
#include <string>
|
||
|
|
||
|
#include "SkBitmap.h"
|
||
|
|
||
|
#include "skqp.h"
|
||
|
|
||
|
class SkQPAssetManager;
|
||
|
class SkStreamAsset;
|
||
|
|
||
|
namespace skqp {
|
||
|
|
||
|
/** Prefered colortype for comparing test outcomes. */
|
||
|
constexpr SkColorType kColorType = kRGBA_8888_SkColorType;
|
||
|
|
||
|
/** Prefered alphatype for comparing test outcomes. */
|
||
|
constexpr SkAlphaType kAlphaType = kUnpremul_SkAlphaType;
|
||
|
|
||
|
/** Where to find the maximum and minimum of the model. */
|
||
|
constexpr char kMaxPngPath[] = "max.png";
|
||
|
constexpr char kMinPngPath[] = "min.png";
|
||
|
|
||
|
struct ModelResult {
|
||
|
SkBitmap fErrors; // Correct pixels are white, failing pixels scale from black
|
||
|
// (1 value off) to red (255 off in some channel).
|
||
|
sk_sp<SkData> fMinPng; // original model data, PNG encoded image.
|
||
|
sk_sp<SkData> fMaxPng; // original model data, PNG encoded image.
|
||
|
SkQP::RenderOutcome fOutcome;
|
||
|
std::string fErrorString; // if non-empty, an error occured.
|
||
|
};
|
||
|
|
||
|
SkQP::RenderOutcome Check(const SkPixmap& minImg,
|
||
|
const SkPixmap& maxImg,
|
||
|
const SkPixmap& img,
|
||
|
unsigned tolerance,
|
||
|
SkBitmap* errorOut);
|
||
|
|
||
|
/** Check if the given test image matches the expected results.
|
||
|
|
||
|
@param name the name of the rendering test that produced the image
|
||
|
@param image the image to be tested. Should be kRGBA_8888_SkColorType
|
||
|
and kUnpremul_SkAlphaType.
|
||
|
@param assetManager provides model data files
|
||
|
*/
|
||
|
|
||
|
ModelResult CheckAgainstModel(const char* name, const SkPixmap& image,
|
||
|
SkQPAssetManager* assetManager);
|
||
|
}
|
||
|
#endif // skqp_model_DEFINED
|