yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::gui::Canvas Class Reference

Modern, robust canvas for drawing and manipulating graphics. More...

#include <canvas.h>

Public Types

using CanvasMenuItem = gui::CanvasMenuItem
 

Public Member Functions

 Canvas ()
 
 ~Canvas ()
 
 Canvas (const std::string &id)
 
 Canvas (const std::string &id, ImVec2 canvas_size)
 
 Canvas (const std::string &id, ImVec2 canvas_size, CanvasGridSize grid_size)
 
 Canvas (const std::string &id, ImVec2 canvas_size, CanvasGridSize grid_size, float global_scale)
 
 Canvas (gfx::IRenderer *renderer)
 
 Canvas (gfx::IRenderer *renderer, const std::string &id)
 
 Canvas (gfx::IRenderer *renderer, const std::string &id, ImVec2 canvas_size)
 
 Canvas (gfx::IRenderer *renderer, const std::string &id, ImVec2 canvas_size, CanvasGridSize grid_size)
 
 Canvas (gfx::IRenderer *renderer, const std::string &id, ImVec2 canvas_size, CanvasGridSize grid_size, float global_scale)
 
void SetRenderer (gfx::IRenderer *renderer)
 
gfx::IRendererrenderer () const
 
void SetGridSize (CanvasGridSize grid_size)
 
void SetCanvasGridSize (CanvasGridSize grid_size)
 
CanvasGridSize grid_size () const
 
void UpdateColorPainter (gfx::IRenderer *renderer, gfx::Bitmap &bitmap, const ImVec4 &color, const std::function< void()> &event, int tile_size, float scale=1.0f)
 
void UpdateInfoGrid (ImVec2 bg_size, float grid_size=64.0f, int label_id=0)
 
void Begin (ImVec2 canvas_size=ImVec2(0, 0))
 Begin canvas rendering (ImGui-style)
 
void End ()
 End canvas rendering (ImGui-style)
 
void DrawBackground (ImVec2 canvas_size=ImVec2(0, 0))
 
void DrawContextMenu ()
 
void AddContextMenuItem (const gui::CanvasMenuItem &item)
 
void ClearContextMenuItems ()
 
CanvasMenuDefinitioneditor_menu ()
 
const CanvasMenuDefinitioneditor_menu () const
 
void SetContextMenuEnabled (bool enabled)
 
void OpenPersistentPopup (const std::string &popup_id, std::function< void()> render_callback)
 
void ClosePersistentPopup (const std::string &popup_id)
 
void RenderPersistentPopups ()
 
PopupRegistryGetPopupRegistry ()
 
const PopupRegistryGetPopupRegistry () const
 
void ShowAdvancedCanvasProperties ()
 
void ShowScalingControls ()
 
void SetZoomToFit (const gfx::Bitmap &bitmap)
 
void ResetView ()
 
void ApplyConfigSnapshot (const CanvasConfig &snapshot)
 
void ApplyScaleSnapshot (const CanvasConfig &snapshot)
 
CanvasConfigGetConfig ()
 
const CanvasConfigGetConfig () const
 
CanvasSelectionGetSelection ()
 
const CanvasSelectionGetSelection () const
 
void InitializePaletteEditor (Rom *rom)
 
void ShowPaletteEditor ()
 
void ShowColorAnalysis ()
 
bool ApplyROMPalette (int group_index, int palette_index)
 
void ShowBppFormatSelector ()
 
void ShowBppAnalysis ()
 
void ShowBppConversionDialog ()
 
bool ConvertBitmapFormat (gfx::BppFormat target_format)
 
gfx::BppFormat GetCurrentBppFormat () const
 
void InitializeEnhancedComponents ()
 
void SetUsageMode (CanvasUsage usage)
 
auto usage_mode () const
 
void RecordCanvasOperation (const std::string &operation_name, double time_ms)
 
void ShowPerformanceUI ()
 
void ShowUsageReport ()
 
CanvasInteractionHandlerGetInteractionHandler ()
 
const CanvasInteractionHandlerGetInteractionHandler () const
 
CanvasAutomationAPIGetAutomationAPI ()
 
void InitializeDefaults ()
 
void Cleanup ()
 
ImVec2 GetMinimumSize () const
 
ImVec2 GetPreferredSize () const
 
ImVec2 GetCurrentSize () const
 
void SetAutoResize (bool auto_resize)
 
bool IsAutoResize () const
 
void ReserveTableSpace (const std::string &label="")
 
bool BeginTableCanvas (const std::string &label="")
 
void EndTableCanvas ()
 
bool HasValidSelection () const
 
bool WasClicked (ImGuiMouseButton button=ImGuiMouseButton_Left) const
 
bool WasDoubleClicked (ImGuiMouseButton button=ImGuiMouseButton_Left) const
 
ImVec2 GetLastClickPosition () const
 
bool DrawTilePainter (const Bitmap &bitmap, int size, float scale=1.0f)
 
bool DrawSolidTilePainter (const ImVec4 &color, int size)
 
void DrawTileOnBitmap (int tile_size, gfx::Bitmap *bitmap, ImVec4 color)
 
void DrawOutline (int x, int y, int w, int h)
 
void DrawOutlineWithColor (int x, int y, int w, int h, ImVec4 color)
 
void DrawOutlineWithColor (int x, int y, int w, int h, uint32_t color)
 
void DrawRect (int x, int y, int w, int h, ImVec4 color)
 
void DrawText (const std::string &text, int x, int y)
 
void DrawGridLines (float grid_step)
 
void DrawInfoGrid (float grid_step=64.0f, int tile_id_offset=8, int label_id=0)
 
void DrawLayeredElements ()
 
int GetTileIdFromMousePos ()
 
void DrawCustomHighlight (float grid_step)
 
bool IsMouseHovering () const
 
void ZoomIn ()
 
void ZoomOut ()
 
const ImVector< ImVec2 > & points () const
 
ImVector< ImVec2 > * mutable_points ()
 
auto push_back (ImVec2 pos)
 
auto draw_list () const
 
auto zero_point () const
 
auto scrolling () const
 
void set_scrolling (ImVec2 scroll)
 
auto drawn_tile_position () const
 
auto canvas_size () const
 
void set_global_scale (float scale)
 
void set_draggable (bool draggable)
 
bool IsSelectRectActive () const
 
const std::vector< ImVec2 > & GetSelectedTiles () const
 
ImVec2 GetSelectedTilePos () const
 
void SetSelectedTilePos (ImVec2 pos)
 
void SetCanvasSize (ImVec2 canvas_size)
 
float GetGlobalScale () const
 
void SetGlobalScale (float scale)
 
bool * GetCustomLabelsEnabled ()
 
float GetGridStep () const
 
void SetClampRectToLocalMaps (bool clamp)
 
bool GetClampRectToLocalMaps () const
 
float GetCanvasWidth () const
 
float GetCanvasHeight () const
 
auto select_rect_active () const
 
auto selected_tiles () const
 
auto selected_tile_pos () const
 
void set_selected_tile_pos (ImVec2 pos)
 
auto global_scale () const
 
auto custom_labels_enabled ()
 
auto custom_step () const
 
auto width () const
 
auto height () const
 
auto canvas_id () const
 
void DrawBitmap (Bitmap &bitmap, int border_offset, float scale)
 
void DrawBitmap (Bitmap &bitmap, int x_offset, int y_offset, float scale=1.0f, int alpha=255)
 
void DrawBitmap (Bitmap &bitmap, ImVec2 dest_pos, ImVec2 dest_size, ImVec2 src_pos, ImVec2 src_size)
 
void DrawBitmapTable (const BitmapTable &gfx_bin)
 
void DrawBitmapGroup (std::vector< int > &group, gfx::Tilemap &tilemap, int tile_size, float scale=1.0f, int local_map_size=0x200, ImVec2 total_map_size=ImVec2(0x1000, 0x1000))
 Draw group of bitmaps for multi-tile selection preview.
 
bool DrawTilemapPainter (gfx::Tilemap &tilemap, int current_tile)
 
void DrawSelectRect (int current_map, int tile_size=0x10, float scale=1.0f)
 
bool DrawTileSelector (int size, int size_y=0)
 
void DrawGrid (float grid_step=64.0f, int tile_id_offset=8)
 
void DrawOverlay ()
 
auto labels (int i)
 
auto mutable_labels (int i)
 
auto set_current_labels (int i)
 
auto set_highlight_tile_id (int i)
 
auto mutable_selected_tiles ()
 
auto mutable_selected_points ()
 
auto selected_points () const
 
auto hover_mouse_pos () const
 
void set_rom (Rom *rom)
 
Romrom () const
 

Public Attributes

std::unique_ptr< gui::BppFormatUIbpp_format_ui_
 
std::unique_ptr< gui::BppConversionDialogbpp_conversion_dialog_
 
std::unique_ptr< gui::BppComparisonToolbpp_comparison_tool_
 
std::unique_ptr< CanvasModalsmodals_
 
std::unique_ptr< CanvasContextMenucontext_menu_
 
std::shared_ptr< CanvasUsageTrackerusage_tracker_
 
std::shared_ptr< CanvasPerformanceIntegrationperformance_integration_
 
CanvasInteractionHandler interaction_handler_
 

Private Member Functions

void DrawContextMenuItem (const gui::CanvasMenuItem &item)
 

Private Attributes

gfx::IRendererrenderer_ = nullptr
 
CanvasConfig config_
 
CanvasSelection selection_
 
std::unique_ptr< PaletteEditorWidgetpalette_editor_
 
CanvasState state_
 
std::unique_ptr< CanvasAutomationAPIautomation_api_
 
bool is_hovered_ = false
 
bool refresh_graphics_ = false
 
CanvasMenuDefinition editor_menu_
 
bool context_menu_enabled_ = true
 
PopupRegistry popup_registry_
 
int current_labels_ = 0
 
int highlight_tile_id = -1
 
uint16_t edit_palette_index_ = 0
 
uint64_t edit_palette_group_name_index_ = 0
 
uint64_t edit_palette_sub_index_ = 0
 
Bitmapbitmap_ = nullptr
 
Romrom_ = nullptr
 
ImDrawList * draw_list_ = nullptr
 
ImVec2 scrolling_
 
ImVec2 canvas_sz_
 
ImVec2 canvas_p0_
 
ImVec2 canvas_p1_
 
ImVec2 drawn_tile_pos_
 
ImVec2 mouse_pos_in_canvas_
 
ImVector< ImVec2 > points_
 
ImVector< ImVector< std::string > > labels_
 
std::string canvas_id_ = "Canvas"
 
std::string context_id_ = "CanvasContext"
 
std::vector< ImVec2 > selected_tiles_
 
ImVector< ImVec2 > selected_points_
 
ImVec2 selected_tile_pos_ = ImVec2(-1, -1)
 
bool select_rect_active_ = false
 
float custom_step_ = 32.0f
 
float global_scale_ = 1.0f
 
bool enable_grid_ = true
 
bool enable_hex_tile_labels_ = false
 
bool enable_custom_labels_ = false
 
bool enable_context_menu_ = true
 
bool custom_canvas_size_ = false
 
bool draggable_ = false
 

Detailed Description

Modern, robust canvas for drawing and manipulating graphics.

Following ImGui design patterns, this Canvas class provides:

  • Modular configuration through CanvasConfig
  • Separate selection state management
  • Enhanced palette management integration
  • Performance-optimized rendering
  • Comprehensive context menu system

Definition at line 59 of file canvas.h.

Member Typedef Documentation

◆ CanvasMenuItem

Constructor & Destructor Documentation

◆ Canvas() [1/10]

yaze::gui::Canvas::Canvas ( )

Definition at line 19 of file canvas.cc.

References InitializeDefaults().

Here is the call graph for this function:

◆ ~Canvas()

yaze::gui::Canvas::~Canvas ( )
default

◆ Canvas() [2/10]

yaze::gui::Canvas::Canvas ( const std::string &  id)
explicit

Definition at line 22 of file canvas.cc.

References InitializeDefaults().

Here is the call graph for this function:

◆ Canvas() [3/10]

yaze::gui::Canvas::Canvas ( const std::string &  id,
ImVec2  canvas_size 
)
explicit

Definition at line 27 of file canvas.cc.

References canvas_size(), yaze::gui::CanvasConfig::canvas_size, config_, yaze::gui::CanvasConfig::custom_canvas_size, and InitializeDefaults().

Here is the call graph for this function:

◆ Canvas() [4/10]

yaze::gui::Canvas::Canvas ( const std::string &  id,
ImVec2  canvas_size,
CanvasGridSize  grid_size 
)
explicit

◆ Canvas() [5/10]

yaze::gui::Canvas::Canvas ( const std::string &  id,
ImVec2  canvas_size,
CanvasGridSize  grid_size,
float  global_scale 
)
explicit

◆ Canvas() [6/10]

yaze::gui::Canvas::Canvas ( gfx::IRenderer renderer)
explicit

Definition at line 52 of file canvas.cc.

References InitializeDefaults().

Here is the call graph for this function:

◆ Canvas() [7/10]

yaze::gui::Canvas::Canvas ( gfx::IRenderer renderer,
const std::string &  id 
)
explicit

Definition at line 54 of file canvas.cc.

References InitializeDefaults().

Here is the call graph for this function:

◆ Canvas() [8/10]

yaze::gui::Canvas::Canvas ( gfx::IRenderer renderer,
const std::string &  id,
ImVec2  canvas_size 
)
explicit

Definition at line 59 of file canvas.cc.

References canvas_size(), yaze::gui::CanvasConfig::canvas_size, config_, yaze::gui::CanvasConfig::custom_canvas_size, and InitializeDefaults().

Here is the call graph for this function:

◆ Canvas() [9/10]

yaze::gui::Canvas::Canvas ( gfx::IRenderer renderer,
const std::string &  id,
ImVec2  canvas_size,
CanvasGridSize  grid_size 
)
explicit

◆ Canvas() [10/10]

yaze::gui::Canvas::Canvas ( gfx::IRenderer renderer,
const std::string &  id,
ImVec2  canvas_size,
CanvasGridSize  grid_size,
float  global_scale 
)
explicit

Member Function Documentation

◆ SetRenderer()

void yaze::gui::Canvas::SetRenderer ( gfx::IRenderer renderer)
inline

Definition at line 79 of file canvas.h.

References renderer(), and renderer_.

Here is the call graph for this function:

◆ renderer()

gfx::IRenderer * yaze::gui::Canvas::renderer ( ) const
inline

Definition at line 80 of file canvas.h.

References renderer_.

Referenced by SetRenderer().

◆ SetGridSize()

void yaze::gui::Canvas::SetGridSize ( CanvasGridSize  grid_size)
inline

◆ SetCanvasGridSize()

void yaze::gui::Canvas::SetCanvasGridSize ( CanvasGridSize  grid_size)
inline

Definition at line 100 of file canvas.h.

References grid_size(), and SetGridSize().

Here is the call graph for this function:

◆ grid_size()

◆ UpdateColorPainter()

void yaze::gui::Canvas::UpdateColorPainter ( gfx::IRenderer renderer,
gfx::Bitmap bitmap,
const ImVec4 &  color,
const std::function< void()> &  event,
int  tile_size,
float  scale = 1.0f 
)

◆ UpdateInfoGrid()

void yaze::gui::Canvas::UpdateInfoGrid ( ImVec2  bg_size,
float  grid_size = 64.0f,
int  label_id = 0 
)

◆ Begin()

void yaze::gui::Canvas::Begin ( ImVec2  canvas_size = ImVec2(0, 0))

Begin canvas rendering (ImGui-style)

Modern alternative to DrawBackground(). Handles:

  • Background and border rendering
  • Size calculation
  • Scroll/drag setup
  • Context menu

Usage:

canvas.Begin();
canvas.DrawBitmap(bitmap);
if (canvas.DrawTilePainter(tile, 16)) { ... }
canvas.End(); // Draws grid and overlay

Definition at line 329 of file canvas.cc.

References canvas_size(), DrawBackground(), and DrawContextMenu().

Referenced by yaze::gui::ScopedCanvas::ScopedCanvas(), yaze::gui::ScopedCanvas::ScopedCanvas(), and yaze::gui::ScopedCanvas::ScopedCanvas().

Here is the call graph for this function:

◆ End()

void yaze::gui::Canvas::End ( )

End canvas rendering (ImGui-style)

Modern alternative to manual DrawGrid() + DrawOverlay(). Automatically draws grid and overlay if enabled.

Definition at line 335 of file canvas.cc.

References config_, DrawGrid(), DrawOverlay(), yaze::gui::CanvasConfig::enable_grid, and RenderPersistentPopups().

Referenced by yaze::gui::ScopedCanvas::~ScopedCanvas().

Here is the call graph for this function:

◆ DrawBackground()

void yaze::gui::Canvas::DrawBackground ( ImVec2  canvas_size = ImVec2(0, 0))

Definition at line 372 of file canvas.cc.

References yaze::gui::ApplyScrollDelta(), yaze::gui::CalculateCanvasGeometry(), yaze::gui::CalculateMouseInCanvas(), canvas_id_, yaze::gui::CanvasGeometry::canvas_p0, canvas_p0_, yaze::gui::CanvasGeometry::canvas_p1, canvas_p1_, canvas_size(), yaze::gui::CanvasConfig::canvas_size, yaze::gui::CanvasGeometry::canvas_sz, canvas_sz_, config_, draw_list_, enable_context_menu_, yaze::gui::CanvasState::geometry, yaze::gui::CanvasConfig::is_draggable, yaze::gui::CanvasState::is_hovered, is_hovered_, yaze::gui::kMouseFlags, yaze::gui::CanvasState::mouse_pos_in_canvas, mouse_pos_in_canvas_, yaze::gui::RenderCanvasBackground(), yaze::gui::CanvasGeometry::scaled_size, yaze::gui::CanvasGeometry::scrolling, yaze::gui::CanvasConfig::scrolling, scrolling_, and state_.

Referenced by Begin(), yaze::gui::BeginCanvas(), yaze::gui::BitmapCanvasPipeline(), yaze::editor::OverworldEditor::DrawAreaGraphics(), yaze::editor::MessageEditor::DrawCurrentMessage(), yaze::editor::SpriteEditor::DrawCurrentSheets(), yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas(), yaze::editor::ScreenEditor::DrawDungeonMapScreen(), yaze::editor::ScreenEditor::DrawDungeonMapsEditor(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::ScreenEditor::DrawInventoryMenuEditor(), yaze::editor::DungeonObjectSelector::DrawObjectRenderer(), yaze::editor::OverworldEditor::DrawOverworldCanvas(), yaze::editor::ScreenEditor::DrawOverworldMapEditor(), yaze::editor::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), yaze::editor::ScreenEditor::DrawTitleScreenBG1Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBG2Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBlocksetSelector(), yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas(), yaze::gui::GraphicsBinCanvasPipeline(), yaze::gui::TileSelectorWidget::Render(), yaze::gui::TableCanvasPipeline(), yaze::editor::Tile16Editor::UpdateBlockset(), UpdateColorPainter(), yaze::editor::GraphicsEditor::UpdateGfxSheetList(), UpdateInfoGrid(), yaze::editor::GraphicsEditor::UpdateLinkGfxView(), and yaze::editor::Tile16Editor::UpdateTile16Edit().

◆ DrawContextMenu()

void yaze::gui::Canvas::DrawContextMenu ( )

Definition at line 428 of file canvas.cc.

References ApplyConfigSnapshot(), ApplyScaleSnapshot(), yaze::gui::CanvasConfig::auto_resize, bitmap_, canvas_id_, canvas_p0_, yaze::gui::CanvasConfig::canvas_size, canvas_sz_, config_, yaze::gui::CanvasConfig::content_size, context_id_, context_menu_, custom_step_, draggable_, yaze::gui::CanvasConfig::enable_context_menu, enable_context_menu_, yaze::gui::CanvasConfig::enable_custom_labels, enable_custom_labels_, yaze::gui::CanvasConfig::enable_grid, enable_grid_, yaze::gui::CanvasConfig::enable_hex_labels, enable_hex_tile_labels_, yaze::gui::CanvasConfig::global_scale, global_scale_, yaze::gui::CanvasConfig::grid_step, yaze::gui::CanvasConfig::is_draggable, yaze::gui::CanvasContextMenu::kOpenAdvancedProperties, yaze::gui::CanvasContextMenu::kOpenScalingControls, yaze::gui::CanvasContextMenu::kResetView, yaze::gui::CanvasContextMenu::kSetGridStep, yaze::gui::CanvasContextMenu::kSetScale, yaze::gui::CanvasContextMenu::kToggleAutoResize, yaze::gui::CanvasContextMenu::kToggleContextMenu, yaze::gui::CanvasContextMenu::kToggleCustomLabels, yaze::gui::CanvasContextMenu::kToggleDraggable, yaze::gui::CanvasContextMenu::kToggleGrid, yaze::gui::CanvasContextMenu::kToggleHexLabels, yaze::gui::CanvasContextMenu::kZoomIn, yaze::gui::CanvasContextMenu::kZoomOut, yaze::gui::CanvasContextMenu::kZoomToFit, modals_, yaze::gfx::Bitmap::mutable_palette(), yaze::gui::CanvasConfig::on_config_changed, yaze::gui::CanvasConfig::on_scale_changed, ResetView(), rom_, yaze::gui::CanvasConfig::scrolling, scrolling_, SetGlobalScale(), SetZoomToFit(), ShowAdvancedCanvasProperties(), ShowScalingControls(), and usage_tracker_.

Referenced by Begin(), yaze::gui::BeginCanvas(), yaze::gui::BitmapCanvasPipeline(), yaze::editor::OverworldEditor::DrawAreaGraphics(), yaze::editor::MessageEditor::DrawCurrentMessage(), yaze::editor::SpriteEditor::DrawCurrentSheets(), yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas(), yaze::editor::ScreenEditor::DrawDungeonMapsEditor(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::ScreenEditor::DrawInventoryMenuEditor(), yaze::editor::DungeonObjectSelector::DrawObjectRenderer(), yaze::editor::OverworldEditor::DrawOverworldCanvas(), yaze::editor::ScreenEditor::DrawOverworldMapEditor(), yaze::editor::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), yaze::editor::ScreenEditor::DrawTitleScreenBG1Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBG2Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBlocksetSelector(), yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas(), yaze::gui::GraphicsBinCanvasPipeline(), yaze::gui::TileSelectorWidget::Render(), yaze::gui::TableCanvasPipeline(), yaze::editor::Tile16Editor::UpdateBlockset(), UpdateColorPainter(), yaze::editor::GraphicsEditor::UpdateGfxSheetList(), yaze::editor::GraphicsEditor::UpdateLinkGfxView(), and yaze::editor::Tile16Editor::UpdateTile16Edit().

◆ AddContextMenuItem()

◆ ClearContextMenuItems()

void yaze::gui::Canvas::ClearContextMenuItems ( )

◆ editor_menu() [1/2]

CanvasMenuDefinition & yaze::gui::Canvas::editor_menu ( )
inline

Definition at line 175 of file canvas.h.

References editor_menu_.

Referenced by yaze::gui::CanvasContextMenu::Render().

◆ editor_menu() [2/2]

const CanvasMenuDefinition & yaze::gui::Canvas::editor_menu ( ) const
inline

Definition at line 176 of file canvas.h.

References editor_menu_.

◆ SetContextMenuEnabled()

void yaze::gui::Canvas::SetContextMenuEnabled ( bool  enabled)
inline

Definition at line 177 of file canvas.h.

References context_menu_enabled_.

Referenced by yaze::editor::OverworldEditor::DrawScratchSpace().

◆ OpenPersistentPopup()

void yaze::gui::Canvas::OpenPersistentPopup ( const std::string &  popup_id,
std::function< void()>  render_callback 
)

Definition at line 599 of file canvas.cc.

References yaze::gui::PopupRegistry::Open(), and popup_registry_.

Here is the call graph for this function:

◆ ClosePersistentPopup()

void yaze::gui::Canvas::ClosePersistentPopup ( const std::string &  popup_id)

Definition at line 605 of file canvas.cc.

References yaze::gui::PopupRegistry::Close(), and popup_registry_.

Here is the call graph for this function:

◆ RenderPersistentPopups()

void yaze::gui::Canvas::RenderPersistentPopups ( )

◆ GetPopupRegistry() [1/2]

PopupRegistry & yaze::gui::Canvas::GetPopupRegistry ( )
inline

Definition at line 185 of file canvas.h.

References popup_registry_.

Referenced by yaze::gui::CanvasContextMenu::Render().

◆ GetPopupRegistry() [2/2]

const PopupRegistry & yaze::gui::Canvas::GetPopupRegistry ( ) const
inline

Definition at line 186 of file canvas.h.

References popup_registry_.

◆ ShowAdvancedCanvasProperties()

◆ ShowScalingControls()

◆ SetZoomToFit()

void yaze::gui::Canvas::SetZoomToFit ( const gfx::Bitmap bitmap)

◆ ResetView()

void yaze::gui::Canvas::ResetView ( )

Definition at line 634 of file canvas.cc.

References config_, yaze::gui::CanvasConfig::global_scale, global_scale_, and scrolling_.

Referenced by DrawContextMenu().

◆ ApplyConfigSnapshot()

◆ ApplyScaleSnapshot()

void yaze::gui::Canvas::ApplyScaleSnapshot ( const CanvasConfig snapshot)

◆ GetConfig() [1/2]

CanvasConfig & yaze::gui::Canvas::GetConfig ( )
inline

Definition at line 197 of file canvas.h.

References config_.

◆ GetConfig() [2/2]

const CanvasConfig & yaze::gui::Canvas::GetConfig ( ) const
inline

Definition at line 198 of file canvas.h.

References config_.

◆ GetSelection() [1/2]

CanvasSelection & yaze::gui::Canvas::GetSelection ( )
inline

Definition at line 199 of file canvas.h.

References selection_.

◆ GetSelection() [2/2]

const CanvasSelection & yaze::gui::Canvas::GetSelection ( ) const
inline

Definition at line 200 of file canvas.h.

References selection_.

◆ InitializePaletteEditor()

void yaze::gui::Canvas::InitializePaletteEditor ( Rom rom)

Definition at line 236 of file canvas.cc.

References palette_editor_, rom(), and rom_.

Referenced by yaze::editor::Tile16Editor::Initialize().

Here is the call graph for this function:

◆ ShowPaletteEditor()

void yaze::gui::Canvas::ShowPaletteEditor ( )

Definition at line 243 of file canvas.cc.

References bitmap_, yaze::gfx::Bitmap::mutable_palette(), and palette_editor_.

Referenced by yaze::editor::Tile16Editor::DrawPaletteSettings().

Here is the call graph for this function:

◆ ShowColorAnalysis()

void yaze::gui::Canvas::ShowColorAnalysis ( )

Definition at line 251 of file canvas.cc.

References bitmap_, and palette_editor_.

Referenced by yaze::editor::Tile16Editor::DrawPaletteSettings().

◆ ApplyROMPalette()

bool yaze::gui::Canvas::ApplyROMPalette ( int  group_index,
int  palette_index 
)

Definition at line 257 of file canvas.cc.

References bitmap_, and palette_editor_.

Referenced by yaze::editor::Tile16Editor::DrawPaletteSettings().

◆ ShowBppFormatSelector()

void yaze::gui::Canvas::ShowBppFormatSelector ( )

Definition at line 1768 of file canvas.cc.

References bitmap_, bpp_format_ui_, canvas_id_, and yaze::gfx::Bitmap::palette().

Here is the call graph for this function:

◆ ShowBppAnalysis()

void yaze::gui::Canvas::ShowBppAnalysis ( )

Definition at line 1781 of file canvas.cc.

References bitmap_, bpp_format_ui_, canvas_id_, and yaze::gfx::Bitmap::palette().

Here is the call graph for this function:

◆ ShowBppConversionDialog()

void yaze::gui::Canvas::ShowBppConversionDialog ( )

Definition at line 1792 of file canvas.cc.

References bitmap_, bpp_conversion_dialog_, canvas_id_, and yaze::gfx::Bitmap::palette().

Here is the call graph for this function:

◆ ConvertBitmapFormat()

◆ GetCurrentBppFormat()

◆ InitializeEnhancedComponents()

void yaze::gui::Canvas::InitializeEnhancedComponents ( )

◆ SetUsageMode()

void yaze::gui::Canvas::SetUsageMode ( CanvasUsage  usage)

◆ usage_mode()

auto yaze::gui::Canvas::usage_mode ( ) const
inline

Definition at line 218 of file canvas.h.

References config_, and yaze::gui::CanvasConfig::usage_mode.

Referenced by RecordCanvasOperation().

◆ RecordCanvasOperation()

void yaze::gui::Canvas::RecordCanvasOperation ( const std::string &  operation_name,
double  time_ms 
)

Definition at line 197 of file canvas.cc.

References performance_integration_, usage_mode(), and usage_tracker_.

Here is the call graph for this function:

◆ ShowPerformanceUI()

void yaze::gui::Canvas::ShowPerformanceUI ( )

Definition at line 208 of file canvas.cc.

References performance_integration_.

◆ ShowUsageReport()

void yaze::gui::Canvas::ShowUsageReport ( )

Definition at line 214 of file canvas.cc.

References modals_, and usage_tracker_.

◆ GetInteractionHandler() [1/2]

CanvasInteractionHandler & yaze::gui::Canvas::GetInteractionHandler ( )
inline

Definition at line 225 of file canvas.h.

References interaction_handler_.

◆ GetInteractionHandler() [2/2]

const CanvasInteractionHandler & yaze::gui::Canvas::GetInteractionHandler ( ) const
inline

Definition at line 226 of file canvas.h.

References interaction_handler_.

◆ GetAutomationAPI()

CanvasAutomationAPI * yaze::gui::Canvas::GetAutomationAPI ( )

Definition at line 1846 of file canvas.cc.

References automation_api_.

Referenced by yaze::editor::OverworldEditor::SetupCanvasAutomation().

◆ InitializeDefaults()

◆ Cleanup()

void yaze::gui::Canvas::Cleanup ( )

Definition at line 148 of file canvas.cc.

References yaze::gui::CanvasSelection::Clear(), context_menu_, modals_, palette_editor_, performance_integration_, selection_, and usage_tracker_.

Here is the call graph for this function:

◆ GetMinimumSize()

ImVec2 yaze::gui::Canvas::GetMinimumSize ( ) const

◆ GetPreferredSize()

ImVec2 yaze::gui::Canvas::GetPreferredSize ( ) const

◆ GetCurrentSize()

ImVec2 yaze::gui::Canvas::GetCurrentSize ( ) const
inline

Definition at line 238 of file canvas.h.

References yaze::gui::CanvasConfig::canvas_size, and config_.

Referenced by yaze::gui::BeginCanvas().

◆ SetAutoResize()

void yaze::gui::Canvas::SetAutoResize ( bool  auto_resize)
inline

◆ IsAutoResize()

bool yaze::gui::Canvas::IsAutoResize ( ) const
inline

Definition at line 240 of file canvas.h.

References yaze::gui::CanvasConfig::auto_resize, and config_.

Referenced by yaze::gui::BeginCanvas().

◆ ReserveTableSpace()

void yaze::gui::Canvas::ReserveTableSpace ( const std::string &  label = "")

◆ BeginTableCanvas()

bool yaze::gui::Canvas::BeginTableCanvas ( const std::string &  label = "")

◆ EndTableCanvas()

void yaze::gui::Canvas::EndTableCanvas ( )

Definition at line 302 of file canvas.cc.

Referenced by yaze::gui::TableCanvasPipeline().

◆ HasValidSelection()

bool yaze::gui::Canvas::HasValidSelection ( ) const

Definition at line 307 of file canvas.cc.

References points_.

Referenced by GetLastClickPosition(), WasClicked(), and WasDoubleClicked().

◆ WasClicked()

bool yaze::gui::Canvas::WasClicked ( ImGuiMouseButton  button = ImGuiMouseButton_Left) const

Definition at line 311 of file canvas.cc.

References HasValidSelection().

Here is the call graph for this function:

◆ WasDoubleClicked()

bool yaze::gui::Canvas::WasDoubleClicked ( ImGuiMouseButton  button = ImGuiMouseButton_Left) const

Definition at line 315 of file canvas.cc.

References HasValidSelection().

Here is the call graph for this function:

◆ GetLastClickPosition()

ImVec2 yaze::gui::Canvas::GetLastClickPosition ( ) const

Definition at line 320 of file canvas.cc.

References HasValidSelection(), and points_.

Here is the call graph for this function:

◆ DrawTilePainter()

bool yaze::gui::Canvas::DrawTilePainter ( const Bitmap bitmap,
int  size,
float  scale = 1.0f 
)

◆ DrawSolidTilePainter()

bool yaze::gui::Canvas::DrawSolidTilePainter ( const ImVec4 &  color,
int  size 
)

◆ DrawTileOnBitmap()

void yaze::gui::Canvas::DrawTileOnBitmap ( int  tile_size,
gfx::Bitmap bitmap,
ImVec4  color 
)

Definition at line 841 of file canvas.cc.

References drawn_tile_pos_, global_scale_, yaze::gfx::Bitmap::width(), and yaze::gfx::Bitmap::WriteColor().

Referenced by yaze::editor::GraphicsEditor::UpdateGfxTabView().

Here is the call graph for this function:

◆ DrawOutline()

void yaze::gui::Canvas::DrawOutline ( int  x,
int  y,
int  w,
int  h 
)

Definition at line 1060 of file canvas.cc.

References canvas_p0_, draw_list_, yaze::gui::CanvasUtils::DrawCanvasOutline(), and scrolling_.

Referenced by yaze::editor::OverworldEditor::CheckForCurrentMap().

Here is the call graph for this function:

◆ DrawOutlineWithColor() [1/2]

void yaze::gui::Canvas::DrawOutlineWithColor ( int  x,
int  y,
int  w,
int  h,
ImVec4  color 
)

◆ DrawOutlineWithColor() [2/2]

void yaze::gui::Canvas::DrawOutlineWithColor ( int  x,
int  y,
int  w,
int  h,
uint32_t  color 
)

Definition at line 1070 of file canvas.cc.

References canvas_p0_, draw_list_, yaze::gui::CanvasUtils::DrawCanvasOutline(), and scrolling_.

Here is the call graph for this function:

◆ DrawRect()

◆ DrawText()

◆ DrawGridLines()

void yaze::gui::Canvas::DrawGridLines ( float  grid_step)

Definition at line 1257 of file canvas.cc.

References canvas_p0_, canvas_p1_, config_, draw_list_, yaze::gui::CanvasUtils::DrawCanvasGridLines(), yaze::gui::CanvasConfig::global_scale, and scrolling_.

Referenced by DrawInfoGrid().

Here is the call graph for this function:

◆ DrawInfoGrid()

void yaze::gui::Canvas::DrawInfoGrid ( float  grid_step = 64.0f,
int  tile_id_offset = 8,
int  label_id = 0 
)

◆ DrawLayeredElements()

void yaze::gui::Canvas::DrawLayeredElements ( )

Definition at line 1350 of file canvas.cc.

References draw_list().

Here is the call graph for this function:

◆ GetTileIdFromMousePos()

int yaze::gui::Canvas::GetTileIdFromMousePos ( )
inline

◆ DrawCustomHighlight()

void yaze::gui::Canvas::DrawCustomHighlight ( float  grid_step)

Definition at line 1299 of file canvas.cc.

References canvas_p0_, draw_list_, yaze::gui::CanvasUtils::DrawCustomHighlight(), highlight_tile_id, and scrolling_.

Referenced by DrawInfoGrid().

Here is the call graph for this function:

◆ IsMouseHovering()

◆ ZoomIn()

void yaze::gui::Canvas::ZoomIn ( )
inline

◆ ZoomOut()

void yaze::gui::Canvas::ZoomOut ( )
inline

◆ points()

◆ mutable_points()

ImVector< ImVec2 > * yaze::gui::Canvas::mutable_points ( )
inline

◆ push_back()

auto yaze::gui::Canvas::push_back ( ImVec2  pos)
inline

Definition at line 292 of file canvas.h.

References points_.

◆ draw_list()

◆ zero_point()

◆ scrolling()

◆ set_scrolling()

◆ drawn_tile_position()

◆ canvas_size()

◆ set_global_scale()

◆ set_draggable()

void yaze::gui::Canvas::set_draggable ( bool  draggable)
inline

Definition at line 300 of file canvas.h.

References draggable_.

Referenced by yaze::editor::Tile16Editor::UpdateTile16Edit().

◆ IsSelectRectActive()

bool yaze::gui::Canvas::IsSelectRectActive ( ) const
inline

Definition at line 303 of file canvas.h.

References select_rect_active_.

◆ GetSelectedTiles()

const std::vector< ImVec2 > & yaze::gui::Canvas::GetSelectedTiles ( ) const
inline

Definition at line 304 of file canvas.h.

References selected_tiles_.

◆ GetSelectedTilePos()

ImVec2 yaze::gui::Canvas::GetSelectedTilePos ( ) const
inline

Definition at line 305 of file canvas.h.

References selected_tile_pos_.

◆ SetSelectedTilePos()

void yaze::gui::Canvas::SetSelectedTilePos ( ImVec2  pos)
inline

Definition at line 306 of file canvas.h.

References selected_tile_pos_.

◆ SetCanvasSize()

void yaze::gui::Canvas::SetCanvasSize ( ImVec2  canvas_size)
inline

◆ GetGlobalScale()

float yaze::gui::Canvas::GetGlobalScale ( ) const
inline

◆ SetGlobalScale()

void yaze::gui::Canvas::SetGlobalScale ( float  scale)
inline

Definition at line 314 of file canvas.h.

References config_, and yaze::gui::CanvasConfig::global_scale.

Referenced by DrawContextMenu().

◆ GetCustomLabelsEnabled()

bool * yaze::gui::Canvas::GetCustomLabelsEnabled ( )
inline

Definition at line 315 of file canvas.h.

References config_, and yaze::gui::CanvasConfig::enable_custom_labels.

◆ GetGridStep()

float yaze::gui::Canvas::GetGridStep ( ) const
inline

Definition at line 316 of file canvas.h.

References config_, and yaze::gui::CanvasConfig::grid_step.

◆ SetClampRectToLocalMaps()

void yaze::gui::Canvas::SetClampRectToLocalMaps ( bool  clamp)
inline

Definition at line 319 of file canvas.h.

References yaze::gui::CanvasConfig::clamp_rect_to_local_maps, and config_.

◆ GetClampRectToLocalMaps()

bool yaze::gui::Canvas::GetClampRectToLocalMaps ( ) const
inline

Definition at line 320 of file canvas.h.

References yaze::gui::CanvasConfig::clamp_rect_to_local_maps, and config_.

◆ GetCanvasWidth()

float yaze::gui::Canvas::GetCanvasWidth ( ) const
inline

Definition at line 321 of file canvas.h.

References yaze::gui::CanvasConfig::canvas_size, and config_.

◆ GetCanvasHeight()

float yaze::gui::Canvas::GetCanvasHeight ( ) const
inline

Definition at line 322 of file canvas.h.

References yaze::gui::CanvasConfig::canvas_size, and config_.

◆ select_rect_active()

◆ selected_tiles()

◆ selected_tile_pos()

auto yaze::gui::Canvas::selected_tile_pos ( ) const
inline

◆ set_selected_tile_pos()

void yaze::gui::Canvas::set_selected_tile_pos ( ImVec2  pos)
inline

Definition at line 328 of file canvas.h.

References selected_tile_pos_.

Referenced by yaze::editor::OverworldEditor::CheckForSelectRectangle().

◆ global_scale()

◆ custom_labels_enabled()

auto yaze::gui::Canvas::custom_labels_enabled ( )
inline

◆ custom_step()

auto yaze::gui::Canvas::custom_step ( ) const
inline

◆ width()

◆ height()

◆ canvas_id()

auto yaze::gui::Canvas::canvas_id ( ) const
inline

Definition at line 336 of file canvas.h.

References canvas_id_.

Referenced by yaze::gui::BeginCanvas().

◆ DrawBitmap() [1/3]

void yaze::gui::Canvas::DrawBitmap ( Bitmap bitmap,
int  border_offset,
float  scale 
)

◆ DrawBitmap() [2/3]

void yaze::gui::Canvas::DrawBitmap ( Bitmap bitmap,
int  x_offset,
int  y_offset,
float  scale = 1.0f,
int  alpha = 255 
)

◆ DrawBitmap() [3/3]

void yaze::gui::Canvas::DrawBitmap ( Bitmap bitmap,
ImVec2  dest_pos,
ImVec2  dest_size,
ImVec2  src_pos,
ImVec2  src_size 
)

◆ DrawBitmapTable()

void yaze::gui::Canvas::DrawBitmapTable ( const BitmapTable &  gfx_bin)
Todo:
Add parameters for sizing and positioning

Definition at line 1047 of file canvas.cc.

References canvas_p0_, and draw_list_.

Referenced by yaze::editor::ScreenEditor::DrawDungeonMapsEditor().

◆ DrawBitmapGroup()

void yaze::gui::Canvas::DrawBitmapGroup ( std::vector< int > &  group,
gfx::Tilemap tilemap,
int  tile_size,
float  scale = 1.0f,
int  local_map_size = 0x200,
ImVec2  total_map_size = ImVec2(0x1000, 0x1000) 
)

Draw group of bitmaps for multi-tile selection preview.

Parameters
groupVector of tile IDs to draw
tilemapTilemap containing the tiles
tile_sizeSize of each tile (default 16)
scaleRendering scale (default 1.0)
local_map_sizeSize of local map in pixels (default 512 for standard maps)
total_map_sizeTotal map size for boundary clamping (default 4096x4096)

Definition at line 1075 of file canvas.cc.

References yaze::gfx::Tilemap::atlas, canvas_p0_, yaze::gui::CanvasConfig::clamp_rect_to_local_maps, config_, draw_list_, yaze::gfx::Bitmap::height(), yaze::gfx::Bitmap::is_active(), yaze::gfx::Tilemap::map_size, scrolling_, select_rect_active_, selected_points_, yaze::gfx::Bitmap::texture(), yaze::gfx::Tilemap::tile_size, yaze::gfx::Bitmap::width(), yaze::gfx::Pair::x, and yaze::gfx::Pair::y.

Referenced by yaze::editor::OverworldEditor::CheckForSelectRectangle().

Here is the call graph for this function:

◆ DrawTilemapPainter()

◆ DrawSelectRect()

void yaze::gui::Canvas::DrawSelectRect ( int  current_map,
int  tile_size = 0x10,
float  scale = 1.0f 
)

◆ DrawTileSelector()

◆ DrawGrid()

void yaze::gui::Canvas::DrawGrid ( float  grid_step = 64.0f,
int  tile_id_offset = 8 
)

Definition at line 1304 of file canvas.cc.

References canvas_p0_, canvas_p1_, config_, current_labels_, yaze::gui::CanvasUtils::CanvasRenderContext::draw_list, draw_list_, yaze::gui::CanvasUtils::DrawCanvasGrid(), yaze::gui::CanvasUtils::DrawCanvasLabels(), yaze::gui::CanvasConfig::enable_custom_labels, yaze::gui::CanvasConfig::enable_grid, yaze::gui::CanvasConfig::enable_hex_labels, yaze::gui::CanvasConfig::global_scale, yaze::gui::CanvasConfig::grid_step, highlight_tile_id, labels_, and scrolling_.

Referenced by yaze::gui::BitmapCanvasPipeline(), yaze::editor::OverworldEditor::DrawAreaGraphics(), yaze::editor::MessageEditor::DrawCurrentMessage(), yaze::editor::SpriteEditor::DrawCurrentSheets(), yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas(), yaze::editor::ScreenEditor::DrawDungeonMapScreen(), yaze::editor::ScreenEditor::DrawDungeonMapsEditor(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::ScreenEditor::DrawInventoryMenuEditor(), yaze::editor::DungeonObjectSelector::DrawObjectRenderer(), yaze::editor::OverworldEditor::DrawOverworldCanvas(), yaze::editor::ScreenEditor::DrawOverworldMapEditor(), yaze::editor::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), yaze::editor::ScreenEditor::DrawTitleScreenBG1Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBG2Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBlocksetSelector(), yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas(), End(), yaze::gui::EndCanvas(), yaze::gui::GraphicsBinCanvasPipeline(), yaze::gui::TileSelectorWidget::Render(), yaze::gui::TableCanvasPipeline(), yaze::editor::Tile16Editor::UpdateBlockset(), UpdateColorPainter(), yaze::editor::GraphicsEditor::UpdateGfxSheetList(), yaze::editor::GraphicsEditor::UpdateLinkGfxView(), and yaze::editor::Tile16Editor::UpdateTile16Edit().

Here is the call graph for this function:

◆ DrawOverlay()

void yaze::gui::Canvas::DrawOverlay ( )

Definition at line 1331 of file canvas.cc.

References canvas_p0_, canvas_p1_, config_, yaze::gui::CanvasUtils::CanvasRenderContext::draw_list, draw_list_, yaze::gui::CanvasUtils::DrawCanvasOverlay(), yaze::gui::CanvasConfig::enable_grid, yaze::gui::CanvasConfig::enable_hex_labels, yaze::gui::CanvasConfig::global_scale, yaze::gui::CanvasConfig::grid_step, points_, RenderPersistentPopups(), scrolling_, and selected_points_.

Referenced by yaze::gui::BitmapCanvasPipeline(), yaze::editor::OverworldEditor::DrawAreaGraphics(), yaze::editor::MessageEditor::DrawCurrentMessage(), yaze::editor::SpriteEditor::DrawCurrentSheets(), yaze::editor::DungeonCanvasViewer::DrawDungeonCanvas(), yaze::editor::ScreenEditor::DrawDungeonMapScreen(), yaze::editor::ScreenEditor::DrawDungeonMapsEditor(), yaze::editor::ScreenEditor::DrawDungeonMapsRoomGfx(), yaze::editor::ScreenEditor::DrawInventoryMenuEditor(), yaze::editor::DungeonObjectSelector::DrawObjectRenderer(), yaze::editor::OverworldEditor::DrawOverworldCanvas(), yaze::editor::ScreenEditor::DrawOverworldMapEditor(), yaze::editor::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), yaze::editor::ScreenEditor::DrawTitleScreenBG1Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBG2Canvas(), yaze::editor::ScreenEditor::DrawTitleScreenBlocksetSelector(), yaze::editor::ScreenEditor::DrawTitleScreenCompositeCanvas(), End(), yaze::gui::EndCanvas(), yaze::gui::GraphicsBinCanvasPipeline(), yaze::gui::TileSelectorWidget::Render(), yaze::gui::TableCanvasPipeline(), yaze::editor::Tile16Editor::UpdateBlockset(), UpdateColorPainter(), yaze::editor::GraphicsEditor::UpdateGfxSheetList(), UpdateInfoGrid(), yaze::editor::GraphicsEditor::UpdateLinkGfxView(), and yaze::editor::Tile16Editor::UpdateTile16Edit().

Here is the call graph for this function:

◆ labels()

auto yaze::gui::Canvas::labels ( int  i)
inline

Definition at line 361 of file canvas.h.

References labels_.

◆ mutable_labels()

auto yaze::gui::Canvas::mutable_labels ( int  i)
inline

◆ set_current_labels()

auto yaze::gui::Canvas::set_current_labels ( int  i)
inline

Definition at line 379 of file canvas.h.

References current_labels_.

◆ set_highlight_tile_id()

auto yaze::gui::Canvas::set_highlight_tile_id ( int  i)
inline

Definition at line 380 of file canvas.h.

References highlight_tile_id.

Referenced by yaze::editor::OverworldEditor::UpdateUsageStats().

◆ mutable_selected_tiles()

auto yaze::gui::Canvas::mutable_selected_tiles ( )
inline

Definition at line 382 of file canvas.h.

References selected_tiles_.

◆ mutable_selected_points()

auto yaze::gui::Canvas::mutable_selected_points ( )
inline

◆ selected_points()

◆ hover_mouse_pos()

auto yaze::gui::Canvas::hover_mouse_pos ( ) const
inline

◆ set_rom()

void yaze::gui::Canvas::set_rom ( Rom rom)
inline

Definition at line 388 of file canvas.h.

References rom(), and rom_.

Here is the call graph for this function:

◆ rom()

Rom * yaze::gui::Canvas::rom ( ) const
inline

Definition at line 389 of file canvas.h.

References rom_.

Referenced by InitializePaletteEditor(), and set_rom().

◆ DrawContextMenuItem()

void yaze::gui::Canvas::DrawContextMenuItem ( const gui::CanvasMenuItem item)
private

Definition at line 563 of file canvas.cc.

References yaze::gui::PopupRegistry::Open(), popup_registry_, and yaze::gui::RenderMenuItem().

Here is the call graph for this function:

Member Data Documentation

◆ bpp_format_ui_

std::unique_ptr<gui::BppFormatUI> yaze::gui::Canvas::bpp_format_ui_

Definition at line 160 of file canvas.h.

Referenced by ShowBppAnalysis(), and ShowBppFormatSelector().

◆ bpp_conversion_dialog_

std::unique_ptr<gui::BppConversionDialog> yaze::gui::Canvas::bpp_conversion_dialog_

Definition at line 161 of file canvas.h.

Referenced by ShowBppConversionDialog().

◆ bpp_comparison_tool_

std::unique_ptr<gui::BppComparisonTool> yaze::gui::Canvas::bpp_comparison_tool_

Definition at line 162 of file canvas.h.

◆ modals_

std::unique_ptr<CanvasModals> yaze::gui::Canvas::modals_

◆ context_menu_

std::unique_ptr<CanvasContextMenu> yaze::gui::Canvas::context_menu_

Definition at line 166 of file canvas.h.

Referenced by Cleanup(), DrawContextMenu(), InitializeEnhancedComponents(), and SetUsageMode().

◆ usage_tracker_

std::shared_ptr<CanvasUsageTracker> yaze::gui::Canvas::usage_tracker_

◆ performance_integration_

std::shared_ptr<CanvasPerformanceIntegration> yaze::gui::Canvas::performance_integration_

◆ interaction_handler_

CanvasInteractionHandler yaze::gui::Canvas::interaction_handler_

Definition at line 169 of file canvas.h.

Referenced by GetInteractionHandler(), GetInteractionHandler(), and InitializeDefaults().

◆ renderer_

gfx::IRenderer* yaze::gui::Canvas::renderer_ = nullptr
private

Definition at line 395 of file canvas.h.

Referenced by renderer(), and SetRenderer().

◆ config_

◆ selection_

CanvasSelection yaze::gui::Canvas::selection_
private

Definition at line 397 of file canvas.h.

Referenced by Cleanup(), GetSelection(), GetSelection(), and InitializeDefaults().

◆ palette_editor_

std::unique_ptr<PaletteEditorWidget> yaze::gui::Canvas::palette_editor_
private

◆ state_

CanvasState yaze::gui::Canvas::state_
private

Definition at line 401 of file canvas.h.

Referenced by DrawBackground(), DrawBitmap(), DrawBitmap(), and DrawBitmap().

◆ automation_api_

std::unique_ptr<CanvasAutomationAPI> yaze::gui::Canvas::automation_api_
private

Definition at line 404 of file canvas.h.

Referenced by GetAutomationAPI().

◆ is_hovered_

bool yaze::gui::Canvas::is_hovered_ = false
private

◆ refresh_graphics_

bool yaze::gui::Canvas::refresh_graphics_ = false
private

Definition at line 408 of file canvas.h.

◆ editor_menu_

CanvasMenuDefinition yaze::gui::Canvas::editor_menu_
private

Definition at line 411 of file canvas.h.

Referenced by AddContextMenuItem(), ClearContextMenuItems(), editor_menu(), and editor_menu().

◆ context_menu_enabled_

bool yaze::gui::Canvas::context_menu_enabled_ = true
private

Definition at line 412 of file canvas.h.

Referenced by SetContextMenuEnabled().

◆ popup_registry_

PopupRegistry yaze::gui::Canvas::popup_registry_
private

◆ current_labels_

int yaze::gui::Canvas::current_labels_ = 0
private

Definition at line 418 of file canvas.h.

Referenced by DrawGrid(), and set_current_labels().

◆ highlight_tile_id

int yaze::gui::Canvas::highlight_tile_id = -1
private

Definition at line 419 of file canvas.h.

Referenced by DrawCustomHighlight(), DrawGrid(), and set_highlight_tile_id().

◆ edit_palette_index_

uint16_t yaze::gui::Canvas::edit_palette_index_ = 0
private

Definition at line 420 of file canvas.h.

◆ edit_palette_group_name_index_

uint64_t yaze::gui::Canvas::edit_palette_group_name_index_ = 0
private

Definition at line 421 of file canvas.h.

◆ edit_palette_sub_index_

uint64_t yaze::gui::Canvas::edit_palette_sub_index_ = 0
private

Definition at line 422 of file canvas.h.

◆ bitmap_

◆ rom_

Rom* yaze::gui::Canvas::rom_ = nullptr
private

Definition at line 426 of file canvas.h.

Referenced by DrawContextMenu(), InitializePaletteEditor(), rom(), and set_rom().

◆ draw_list_

◆ scrolling_

◆ canvas_sz_

◆ canvas_p0_

◆ canvas_p1_

ImVec2 yaze::gui::Canvas::canvas_p1_
private

Definition at line 433 of file canvas.h.

Referenced by DrawBackground(), DrawGrid(), DrawGridLines(), DrawInfoGrid(), and DrawOverlay().

◆ drawn_tile_pos_

ImVec2 yaze::gui::Canvas::drawn_tile_pos_
private

◆ mouse_pos_in_canvas_

ImVec2 yaze::gui::Canvas::mouse_pos_in_canvas_
private

◆ points_

ImVector<ImVec2> yaze::gui::Canvas::points_
private

◆ labels_

ImVector<ImVector<std::string> > yaze::gui::Canvas::labels_
private

Definition at line 440 of file canvas.h.

Referenced by DrawGrid(), DrawInfoGrid(), labels(), and mutable_labels().

◆ canvas_id_

◆ context_id_

std::string yaze::gui::Canvas::context_id_ = "CanvasContext"
private

Definition at line 444 of file canvas.h.

Referenced by DrawContextMenu().

◆ selected_tiles_

std::vector<ImVec2> yaze::gui::Canvas::selected_tiles_
private

Definition at line 447 of file canvas.h.

Referenced by DrawSelectRect(), GetSelectedTiles(), mutable_selected_tiles(), and selected_tiles().

◆ selected_points_

ImVector<ImVec2> yaze::gui::Canvas::selected_points_
private

◆ selected_tile_pos_

ImVec2 yaze::gui::Canvas::selected_tile_pos_ = ImVec2(-1, -1)
private

◆ select_rect_active_

bool yaze::gui::Canvas::select_rect_active_ = false
private

◆ custom_step_

float yaze::gui::Canvas::custom_step_ = 32.0f
private

◆ global_scale_

◆ enable_grid_

bool yaze::gui::Canvas::enable_grid_ = true
private

◆ enable_hex_tile_labels_

bool yaze::gui::Canvas::enable_hex_tile_labels_ = false
private

◆ enable_custom_labels_

bool yaze::gui::Canvas::enable_custom_labels_ = false
private

◆ enable_context_menu_

bool yaze::gui::Canvas::enable_context_menu_ = true
private

◆ custom_canvas_size_

bool yaze::gui::Canvas::custom_canvas_size_ = false
private

Definition at line 457 of file canvas.h.

Referenced by InitializeDefaults().

◆ draggable_

bool yaze::gui::Canvas::draggable_ = false
private

The documentation for this class was generated from the following files: