|
libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
|
An ImGui window that visualises and inspects an N64 display list in real-time. More...
#include <GfxDebuggerWindow.h>
Public Member Functions | |
| GfxDebuggerWindow (const std::string &consoleVariable, const std::string &name, std::shared_ptr< Fast::Fast3dWindow > fast3dWindow, std::shared_ptr< Fast::GfxDebugger > gfxDebugger, std::shared_ptr< Ship::ResourceManager > resourceManager) | |
| Constructs a GfxDebuggerWindow with constructor-injected dependencies. | |
| virtual | ~GfxDebuggerWindow () |
Public Member Functions inherited from Ship::GuiWindow | |
| GuiWindow (std::shared_ptr< ConsoleVariable > consoleVariable, std::shared_ptr< Window > window, const std::string &visibilityCvar, bool isVisible, const std::string &name, ImVec2 originalSize, uint32_t windowFlags) | |
| Full constructor with constructor-injected dependencies, explicit size and window flags. | |
| GuiWindow (const std::string &consoleVariable, bool isVisible, const std::string &name, ImVec2 originalSize) | |
| Constructor with explicit size, using default ImGui window flags. | |
| GuiWindow (const std::string &consoleVariable, bool isVisible, const std::string &name, ImVec2 originalSize, uint32_t windowFlags) | |
| GuiWindow (const std::string &consoleVariable, bool isVisible, const std::string &name) | |
| Minimal constructor using default size and flags. | |
| GuiWindow (const std::string &consoleVariable, const std::string &name, ImVec2 originalSize, uint32_t windowFlags) | |
| Constructor deriving initial visibility from the CVar value. | |
| GuiWindow (const std::string &consoleVariable, const std::string &name, ImVec2 originalSize) | |
| Constructor deriving visibility from CVar, with default flags. | |
| GuiWindow (const std::string &consoleVariable, const std::string &name) | |
| Minimal constructor deriving visibility from CVar. | |
| void | Draw () override |
| Calls ImGui::Begin(), invokes DrawElement(), and calls ImGui::End(). | |
Public Member Functions inherited from Ship::GuiElement | |
| GuiElement (const std::string &name, bool isVisible) | |
| Constructs a GuiElement with an explicit initial visibility. | |
| GuiElement (const std::string &name) | |
| Constructs a GuiElement that starts hidden. | |
| virtual | ~GuiElement () |
| void | Update () |
| Updates element state for the current frame (called before Draw). | |
| void | Show () |
| Makes the element visible (equivalent to SetVisibility(true)). | |
| void | Hide () |
| Hides the element (equivalent to SetVisibility(false)). | |
| void | ToggleVisibility () |
| Flips the visibility state between shown and hidden. | |
| bool | IsVisible () |
| Returns true if the element is currently visible. | |
Public Member Functions inherited from Ship::Component | |
| Component (const std::string &name, std::shared_ptr< Context > context=nullptr) | |
| Constructs a Component with the given name. | |
| virtual | ~Component () |
| void | Init (const nlohmann::json &initArgs=nlohmann::json::object()) |
| Performs one-time initialization of this component. | |
| bool | IsInitialized () const |
| Returns true once Init() (or MarkInitialized()) has completed successfully. | |
| const std::string & | GetName () const |
| Returns the name of this Component. | |
| std::string | ToString () const |
| Returns a human-readable string representation (e.g. "Name (id)"). | |
| std::string | ToTreeString (int depth=0) const |
| Returns a human-readable tree representation of this component and its children. | |
| operator std::string () const | |
| Conversion operator to std::string; equivalent to ToString(). | |
| ParentComponentList & | GetParents () |
| Returns a mutable reference to the parent list. | |
| const ParentComponentList & | GetParents () const |
| Returns a const reference to the parent list. | |
| ComponentList & | GetChildren () |
| Returns a mutable reference to the child list. | |
| const ComponentList & | GetChildren () const |
| Returns a const reference to the child list. | |
| virtual std::shared_ptr< Component > | TryGetSharedComponent () noexcept |
| Returns a shared_ptr to this Component when available, otherwise nullptr. | |
| virtual std::shared_ptr< Component > | GetSharedComponent () |
| Returns a shared_ptr to this Component via the correct enable_shared_from_this base. | |
| template<typename T > | |
| bool | HasInChildren () const |
| Checks whether any descendant Component matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< T > | GetFirstInChildren () const |
| Returns the first descendant that matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< std::vector< std::shared_ptr< T > > > | GetInChildren () const |
| Returns all descendants that match type T via BFS. | |
| template<typename T > | |
| bool | HasInParents () const |
| Checks whether any ancestor Component matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< T > | GetFirstInParents () const |
| Returns the first ancestor that matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< std::vector< std::shared_ptr< T > > > | GetInParents () const |
| Returns all ancestors that match type T via BFS. | |
Public Member Functions inherited from Ship::Part | |
| Part () | |
| Constructs a Part and assigns it a unique ID. | |
| Part (std::shared_ptr< Context > context) | |
| Constructs a Part with an explicit Context reference and unique ID. | |
| virtual | ~Part ()=default |
| uint64_t | GetId () const |
| Returns the unique identifier for this Part. | |
| bool | operator== (const Part &other) const |
| Compares two Parts for equality by their unique IDs. | |
| std::shared_ptr< Context > | GetContext () const |
| Returns the Context this Part belongs to, or nullptr if unset. | |
| void | SetContext (std::shared_ptr< Context > ctx) |
| Sets the Context this Part belongs to. | |
Protected Member Functions | |
| void | OnInit (const nlohmann::json &initArgs=nlohmann::json::object()) override |
| Caches a weak reference to the Fast3D interpreter on first init. | |
| void | UpdateElement () override |
| Polls the interpreter for a new display list when debugging is requested. | |
| void | DrawElement () override |
| Renders the disassembly tree for the captured display list. | |
Protected Member Functions inherited from Ship::GuiWindow | |
| void | SetVisibility (bool visible) override |
| Overrides SetVisibility to also write the new state to the backing CVar. | |
| void | BeginGroupPanel (const char *name, const ImVec2 &size) |
| Begins a visually grouped labelled panel. | |
| void | EndGroupPanel (float minHeight) |
| Ends the previously opened group panel, adding a bottom margin. | |
| void | SyncVisibilityConsoleVariable () |
| Reads the CVar and updates mIsVisible accordingly. | |
| void | OnInit (const nlohmann::json &initArgs={}) override |
| Component initialization hook. | |
| std::shared_ptr< Window > | GetWindow () const |
| Returns the Window this GuiWindow belongs to. | |
Protected Member Functions inherited from Ship::Component | |
| void | MarkInitialized () |
| Marks this component as initialized without going through Init(). | |
| template<typename T > | |
| std::shared_ptr< T > | RequireDependency (const std::shared_ptr< T > &dependency, const std::string &dependencyName) const |
| Returns a cached dependency after validating it exists and is initialized. | |
Protected Member Functions inherited from Ship::Part | |
| virtual void | OnAdded (bool forced) |
| Called after this Part has been added to a PartList. | |
| virtual void | OnRemoved (bool forced) |
| Called after this Part has been removed from a PartList. | |
Additional Inherited Members | |
Protected Attributes inherited from Ship::GuiElement | |
| bool | mIsVisible |
| Current visibility state. Subclasses may read this directly. | |
An ImGui window that visualises and inspects an N64 display list in real-time.
GfxDebuggerWindow provides a tree-based disassembly view of the display list currently being executed by the Fast3D interpreter. When the user requests debugging (via the menu or GfxDebuggerRequestDebugging()), the window captures a single frame's display list and renders an expandable node tree where each node corresponds to one or more graphics microcode commands.
The window is registered in the GUI as "Gfx Debugger" and is accessible via Gui::GetGuiWindow("Gfx Debugger").
| LUS::GfxDebuggerWindow::GfxDebuggerWindow | ( | const std::string & | consoleVariable, |
| const std::string & | name, | ||
| std::shared_ptr< Fast::Fast3dWindow > | fast3dWindow, | ||
| std::shared_ptr< Fast::GfxDebugger > | gfxDebugger, | ||
| std::shared_ptr< Ship::ResourceManager > | resourceManager | ||
| ) |
Constructs a GfxDebuggerWindow with constructor-injected dependencies.
| consoleVariable | CVar name controlling window visibility. |
| name | Window title. |
| fast3dWindow | Fast3dWindow whose interpreter and GUI are used. |
| gfxDebugger | GfxDebugger used to capture/inspect display lists. |
| resourceManager | ResourceManager for archive lookups. |
|
virtual |
|
overrideprotectedvirtual |
Renders the disassembly tree for the captured display list.
Implements Ship::GuiElement.
|
overrideprotectedvirtual |
Caches a weak reference to the Fast3D interpreter on first init.
Reimplemented from Ship::Component.
|
overrideprotectedvirtual |
Polls the interpreter for a new display list when debugging is requested.
Implements Ship::GuiElement.