1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2021 Google LLC 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef SkSLDebuggerSlide_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define SkSLDebuggerSlide_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkRefCnt.h" 12*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkScalar.h" 13*c8dee2aaSAndroid Build Coastguard Worker #include "src/sksl/tracing/SkSLDebugTracePlayer.h" 14*c8dee2aaSAndroid Build Coastguard Worker #include "src/sksl/tracing/SkSLDebugTracePriv.h" 15*c8dee2aaSAndroid Build Coastguard Worker #include "tools/viewer/Slide.h" 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker class SkCanvas; 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard Worker namespace skui { 20*c8dee2aaSAndroid Build Coastguard Worker enum class InputState; 21*c8dee2aaSAndroid Build Coastguard Worker enum class ModifierKey; 22*c8dee2aaSAndroid Build Coastguard Worker } // namespace sk 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Worker class SkSLDebuggerSlide : public Slide { 25*c8dee2aaSAndroid Build Coastguard Worker public: 26*c8dee2aaSAndroid Build Coastguard Worker SkSLDebuggerSlide(); 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Worker void draw(SkCanvas* canvas) override; 29*c8dee2aaSAndroid Build Coastguard Worker bool animate(double nanos) override; 30*c8dee2aaSAndroid Build Coastguard Worker resize(SkScalar winWidth,SkScalar winHeight)31*c8dee2aaSAndroid Build Coastguard Worker void resize(SkScalar winWidth, SkScalar winHeight) override {} 32*c8dee2aaSAndroid Build Coastguard Worker void load(SkScalar winWidth, SkScalar winHeight) override; 33*c8dee2aaSAndroid Build Coastguard Worker void unload() override; 34*c8dee2aaSAndroid Build Coastguard Worker onMouse(SkScalar x,SkScalar y,skui::InputState state,skui::ModifierKey modifiers)35*c8dee2aaSAndroid Build Coastguard Worker bool onMouse(SkScalar x, SkScalar y, skui::InputState state, 36*c8dee2aaSAndroid Build Coastguard Worker skui::ModifierKey modifiers) override { return true; } 37*c8dee2aaSAndroid Build Coastguard Worker 38*c8dee2aaSAndroid Build Coastguard Worker private: 39*c8dee2aaSAndroid Build Coastguard Worker void showRootGUI(); 40*c8dee2aaSAndroid Build Coastguard Worker void showLoadTraceGUI(); 41*c8dee2aaSAndroid Build Coastguard Worker void showDebuggerGUI(); 42*c8dee2aaSAndroid Build Coastguard Worker void showStackTraceTable(); 43*c8dee2aaSAndroid Build Coastguard Worker void showVariableTable(); 44*c8dee2aaSAndroid Build Coastguard Worker void showCodeTable(); 45*c8dee2aaSAndroid Build Coastguard Worker 46*c8dee2aaSAndroid Build Coastguard Worker static constexpr int kNumTopRows = 12; 47*c8dee2aaSAndroid Build Coastguard Worker 48*c8dee2aaSAndroid Build Coastguard Worker sk_sp<SkSL::DebugTracePriv> fTrace; 49*c8dee2aaSAndroid Build Coastguard Worker SkSL::SkSLDebugTracePlayer fPlayer; 50*c8dee2aaSAndroid Build Coastguard Worker bool fRefresh = false; 51*c8dee2aaSAndroid Build Coastguard Worker 52*c8dee2aaSAndroid Build Coastguard Worker char fTraceFile[256] = "SkSLDebugTrace.json"; 53*c8dee2aaSAndroid Build Coastguard Worker }; 54*c8dee2aaSAndroid Build Coastguard Worker 55*c8dee2aaSAndroid Build Coastguard Worker #endif // SkSLDebuggerSlide_DEFINED 56