Add srgb and f16 modes to fiddle
BUG=skia:5945 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4546 Change-Id: I29b87a3b2eb20b8d28f8fb970b5192807bebdc48 Reviewed-on: https://skia-review.googlesource.com/4546 Reviewed-by: Joe Gregorio <jcgregorio@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
This commit is contained in:
parent
a4d861a5b4
commit
a2f7126ed4
@ -13,7 +13,7 @@
|
||||
DrawOptions GetDrawOptions() {
|
||||
// path *should* be absolute.
|
||||
static const char path[] = "resources/color_wheel.png";
|
||||
return DrawOptions(256, 256, true, true, true, true, path);
|
||||
return DrawOptions(256, 256, true, true, true, true, true, true, path);
|
||||
}
|
||||
void draw(SkCanvas* canvas) {
|
||||
canvas->clear(SK_ColorWHITE);
|
||||
|
@ -105,9 +105,19 @@ int main() {
|
||||
}
|
||||
}
|
||||
sk_sp<SkData> rasterData, gpuData, pdfData, skpData;
|
||||
SkColorType colorType = kN32_SkColorType;
|
||||
sk_sp<SkColorSpace> colorSpace = nullptr;
|
||||
if (options.f16) {
|
||||
SkASSERT(options.srgb);
|
||||
colorType = kRGBA_F16_SkColorType;
|
||||
colorSpace = SkColorSpace::MakeNamed(SkColorSpace::kSRGBLinear_Named);
|
||||
} else if (options.srgb) {
|
||||
colorSpace = SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named);
|
||||
}
|
||||
SkImageInfo info = SkImageInfo::Make(options.size.width(), options.size.height(), colorType,
|
||||
kPremul_SkAlphaType, colorSpace);
|
||||
if (options.raster) {
|
||||
auto rasterSurface =
|
||||
SkSurface::MakeRaster(SkImageInfo::MakeN32Premul(options.size));
|
||||
auto rasterSurface = SkSurface::MakeRaster(info);
|
||||
srand(0);
|
||||
draw(rasterSurface->getCanvas());
|
||||
rasterData.reset(encode_snapshot(rasterSurface));
|
||||
@ -117,10 +127,7 @@ int main() {
|
||||
if (!grContext) {
|
||||
fputs("Unable to get GrContext.\n", stderr);
|
||||
} else {
|
||||
auto surface = SkSurface::MakeRenderTarget(
|
||||
grContext.get(),
|
||||
SkBudgeted::kNo,
|
||||
SkImageInfo::MakeN32Premul(options.size));
|
||||
auto surface = SkSurface::MakeRenderTarget(grContext.get(), SkBudgeted::kNo, info);
|
||||
if (!surface) {
|
||||
fputs("Unable to get render surface.\n", stderr);
|
||||
exit(1);
|
||||
|
@ -24,18 +24,26 @@ extern SkBitmap source;
|
||||
extern sk_sp<SkImage> image;
|
||||
|
||||
struct DrawOptions {
|
||||
DrawOptions(int w, int h, bool r, bool g, bool p, bool k, const char* s)
|
||||
DrawOptions(int w, int h, bool r, bool g, bool p, bool k, bool srgb, bool f16, const char* s)
|
||||
: size(SkISize::Make(w, h))
|
||||
, raster(r)
|
||||
, gpu(g)
|
||||
, pdf(p)
|
||||
, skp(k)
|
||||
, source(s) {}
|
||||
, srgb(srgb)
|
||||
, f16(f16)
|
||||
, source(s)
|
||||
{
|
||||
// F16 mode is only valid for color correct backends.
|
||||
SkASSERT(srgb || !f16);
|
||||
}
|
||||
SkISize size;
|
||||
bool raster;
|
||||
bool gpu;
|
||||
bool pdf;
|
||||
bool skp;
|
||||
bool srgb;
|
||||
bool f16;
|
||||
const char* source;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user