Adjust how GM::gpuSetup is handled in the tools
Change-Id: I7a49ff49030b4c8aba1f0798a3742641030fe44f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/298710
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 45d4fbd..9e20ddb 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -848,6 +848,10 @@
Viewer::~Viewer() {
+ for(auto& slide : fSlides) {
+ slide->gpuTeardown();
+ }
+
fWindow->detach();
delete fWindow;
}
@@ -1182,6 +1186,11 @@
fCachedShaders.reset();
fBackendType = backendType;
+ // The active context is going away in 'detach'
+ for(auto& slide : fSlides) {
+ slide->gpuTeardown();
+ }
+
fWindow->detach();
#if defined(SK_BUILD_FOR_WIN)
@@ -2585,6 +2594,9 @@
if (stateValue.equals(kBackendTypeStrings[i])) {
if (fBackendType != i) {
fBackendType = (sk_app::Window::BackendType)i;
+ for(auto& slide : fSlides) {
+ slide->gpuTeardown();
+ }
fWindow->detach();
fWindow->attach(backend_type_for_window(fBackendType));
}