Reland "Remove use of legacy display globals."
This is a reland of c1916c34febe0c6f9805b5d9fc18349ec8b74008
As it turns out, benches are not always given a canvas.
Original change's description:
> Remove use of legacy display globals.
>
> In the ongoing effort to remove the display globals from Skia, allow
> their use only if SK_LEGACY_SURFACE_PROPS is defined. Do not define this
> in a normal Skia build and remove all use from Skia code.
>
> Change-Id: I9ff550f5db246b9024aac687a1bc01321f1be4c8
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319343
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I61a2ac058fafc99653e3304876cf4b97350dac8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/322490
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index daafba4..61c68a0 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -369,6 +369,7 @@
displayParams.fGrContextOptions.fShaderErrorHandler = &gShaderErrorHandler;
displayParams.fGrContextOptions.fSuppressPrints = true;
fWindow->setRequestedDisplayParams(displayParams);
+ fDisplay = fWindow->getRequestedDisplayParams();
fRefresh = FLAGS_redraw;
// Configure timers
@@ -493,8 +494,9 @@
fCommands.addCommand('G', "Modes", "Geometry", [this]() {
DisplayParams params = fWindow->getRequestedDisplayParams();
uint32_t flags = params.fSurfaceProps.flags();
- if (!fPixelGeometryOverrides) {
- fPixelGeometryOverrides = true;
+ SkPixelGeometry defaultPixelGeometry = fDisplay.fSurfaceProps.pixelGeometry();
+ if (!fDisplayOverrides.fSurfaceProps.fPixelGeometry) {
+ fDisplayOverrides.fSurfaceProps.fPixelGeometry = true;
params.fSurfaceProps = SkSurfaceProps(flags, kUnknown_SkPixelGeometry);
} else {
switch (params.fSurfaceProps.pixelGeometry()) {
@@ -511,8 +513,8 @@
params.fSurfaceProps = SkSurfaceProps(flags, kBGR_V_SkPixelGeometry);
break;
case kBGR_V_SkPixelGeometry:
- params.fSurfaceProps = SkSurfaceProps(flags, SkSurfaceProps::kLegacyFontHost_InitType);
- fPixelGeometryOverrides = false;
+ params.fSurfaceProps = SkSurfaceProps(flags, defaultPixelGeometry);
+ fDisplayOverrides.fSurfaceProps.fPixelGeometry = false;
break;
}
}
@@ -1022,7 +1024,7 @@
}
const DisplayParams& params = fWindow->getRequestedDisplayParams();
- if (fPixelGeometryOverrides) {
+ if (fDisplayOverrides.fSurfaceProps.fPixelGeometry) {
switch (params.fSurfaceProps.pixelGeometry()) {
case kUnknown_SkPixelGeometry:
title.append( " Flat");
@@ -1410,7 +1412,7 @@
}
auto make_surface = [=](int w, int h) {
- SkSurfaceProps props(SkSurfaceProps::kLegacyFontHost_InitType);
+ SkSurfaceProps props(fWindow->getRequestedDisplayParams().fSurfaceProps);
slideCanvas->getProps(&props);
SkImageInfo info = SkImageInfo::Make(w, h, colorType, kPremul_SkAlphaType, colorSpace);
@@ -1828,7 +1830,7 @@
}
int pixelGeometryIdx = 0;
- if (fPixelGeometryOverrides) {
+ if (fDisplayOverrides.fSurfaceProps.fPixelGeometry) {
pixelGeometryIdx = params.fSurfaceProps.pixelGeometry() + 1;
}
if (ImGui::Combo("Pixel Geometry", &pixelGeometryIdx,
@@ -1836,10 +1838,11 @@
{
uint32_t flags = params.fSurfaceProps.flags();
if (pixelGeometryIdx == 0) {
- fPixelGeometryOverrides = false;
- params.fSurfaceProps = SkSurfaceProps(flags, SkSurfaceProps::kLegacyFontHost_InitType);
+ fDisplayOverrides.fSurfaceProps.fPixelGeometry = false;
+ SkPixelGeometry pixelGeometry = fDisplay.fSurfaceProps.pixelGeometry();
+ params.fSurfaceProps = SkSurfaceProps(flags, pixelGeometry);
} else {
- fPixelGeometryOverrides = true;
+ fDisplayOverrides.fSurfaceProps.fPixelGeometry = true;
SkPixelGeometry pixelGeometry = SkTo<SkPixelGeometry>(pixelGeometryIdx - 1);
params.fSurfaceProps = SkSurfaceProps(flags, pixelGeometry);
}