aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/viewer/ImGuiLayer.cpp5
-rw-r--r--tools/viewer/ImGuiLayer.h1
-rw-r--r--tools/viewer/Viewer.cpp7
3 files changed, 10 insertions, 3 deletions
diff --git a/tools/viewer/ImGuiLayer.cpp b/tools/viewer/ImGuiLayer.cpp
index e55ac9c9c6..fe55a61279 100644
--- a/tools/viewer/ImGuiLayer.cpp
+++ b/tools/viewer/ImGuiLayer.cpp
@@ -22,6 +22,7 @@ using namespace sk_app;
ImGuiLayer::ImGuiLayer() {
// ImGui initialization:
+ ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO();
// Keymap...
@@ -59,6 +60,10 @@ ImGuiLayer::ImGuiLayer() {
io.Fonts->TexID = &fFontPaint;
}
+ImGuiLayer::~ImGuiLayer() {
+ ImGui::DestroyContext();
+}
+
void ImGuiLayer::onAttach(Window* window) {
fWindow = window;
}
diff --git a/tools/viewer/ImGuiLayer.h b/tools/viewer/ImGuiLayer.h
index 1cefcd4097..d9e1571b60 100644
--- a/tools/viewer/ImGuiLayer.h
+++ b/tools/viewer/ImGuiLayer.h
@@ -16,6 +16,7 @@
class ImGuiLayer : public sk_app::Window::Layer {
public:
ImGuiLayer();
+ ~ImGuiLayer() override;
typedef std::function<void(SkCanvas*)> SkiaWidgetFunc;
void skiaWidget(const ImVec2& size, SkiaWidgetFunc func);
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 3675cc4fe2..81c1851783 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -1418,13 +1418,13 @@ static bool ImGui_DragQuad(SkPoint* pts) {
void Viewer::drawImGui() {
// Support drawing the ImGui demo window. Superfluous, but gives a good idea of what's possible
if (fShowImGuiTestWindow) {
- ImGui::ShowTestWindow(&fShowImGuiTestWindow);
+ ImGui::ShowDemoWindow(&fShowImGuiTestWindow);
}
if (fShowImGuiDebugWindow) {
// We have some dynamic content that sizes to fill available size. If the scroll bar isn't
// always visible, we can end up in a layout feedback loop.
- ImGui::SetNextWindowSize(ImVec2(400, 400), ImGuiSetCond_FirstUseEver);
+ ImGui::SetNextWindowSize(ImVec2(400, 400), ImGuiCond_FirstUseEver);
DisplayParams params = fWindow->getRequestedDisplayParams();
bool paramsChanged = false;
if (ImGui::Begin("Tools", &fShowImGuiDebugWindow,
@@ -1827,7 +1827,8 @@ void Viewer::drawImGui() {
}
if (fShowZoomWindow && fLastImage) {
- if (ImGui::Begin("Zoom", &fShowZoomWindow, ImVec2(200, 200))) {
+ ImGui::SetNextWindowSize(ImVec2(200, 200), ImGuiCond_FirstUseEver);
+ if (ImGui::Begin("Zoom", &fShowZoomWindow)) {
static int zoomFactor = 8;
if (ImGui::Button("<<")) {
zoomFactor = SkTMax(zoomFactor / 2, 4);