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>

Classes

struct  ContextMenuItem
 
struct  PopupState
 

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 ContextMenuItem &item)
 
void ClearContextMenuItems ()
 
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 ()
 
void ShowAdvancedCanvasProperties ()
 
void ShowScalingControls ()
 
void SetZoomToFit (const gfx::Bitmap &bitmap)
 
void ResetView ()
 
void ApplyConfigSnapshot (const canvas::CanvasConfig &snapshot)
 
void ApplyScaleSnapshot (const canvas::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 (canvas::CanvasUsage usage)
 
canvas::CanvasUsage GetUsageMode () const
 
void RecordCanvasOperation (const std::string &operation_name, double time_ms)
 
void ShowPerformanceUI ()
 
void ShowUsageReport ()
 
canvas::CanvasInteractionHandlerGetInteractionHandler ()
 
const canvas::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< canvas::CanvasModalsmodals_
 
std::unique_ptr< canvas::CanvasContextMenucontext_menu_
 
std::shared_ptr< canvas::CanvasUsageTrackerusage_tracker_
 
std::shared_ptr< canvas::CanvasPerformanceIntegrationperformance_integration_
 
canvas::CanvasInteractionHandler interaction_handler_
 

Private Member Functions

void DrawContextMenuItem (const ContextMenuItem &item)
 

Private Attributes

gfx::IRendererrenderer_ = nullptr
 
CanvasConfig config_
 
CanvasSelection selection_
 
std::unique_ptr< PaletteWidgetpalette_editor_
 
std::unique_ptr< CanvasAutomationAPIautomation_api_
 
bool is_hovered_ = false
 
bool refresh_graphics_ = false
 
std::vector< ContextMenuItemcontext_menu_items_
 
bool context_menu_enabled_ = true
 
std::vector< PopupStateactive_popups_
 
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 54 of file canvas.h.

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 74 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 75 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 95 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 338 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 344 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 381 of file canvas.cc.

References yaze::gui::CanvasUtils::CalculateCanvasSize(), yaze::gui::CanvasUtils::CalculateScaledCanvasSize(), canvas_id_, canvas_p0_, canvas_p1_, canvas_size(), yaze::gui::CanvasConfig::canvas_size, canvas_sz_, config_, yaze::gui::CanvasConfig::custom_canvas_size, draw_list_, enable_context_menu_, yaze::gui::CanvasConfig::global_scale, yaze::gui::CanvasConfig::is_draggable, yaze::gui::kMouseFlags, yaze::gui::kRectangleColor, yaze::gui::kWhiteColor, mouse_pos_in_canvas_, and scrolling_.

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::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), 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:

◆ DrawContextMenu()

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

Definition at line 441 of file canvas.cc.

References ApplyConfigSnapshot(), ApplyScaleSnapshot(), yaze::gui::canvas::CanvasConfig::auto_resize, yaze::gui::CanvasConfig::auto_resize, bitmap_, canvas_id_, canvas_p0_, yaze::gui::canvas::CanvasConfig::canvas_size, canvas_sz_, config_, yaze::gui::canvas::CanvasConfig::content_size, yaze::gui::CanvasConfig::content_size, context_id_, context_menu_, context_menu_items_, custom_step_, draggable_, DrawContextMenuItem(), yaze::gui::canvas::CanvasConfig::enable_context_menu, yaze::gui::CanvasConfig::enable_context_menu, enable_context_menu_, yaze::gui::canvas::CanvasConfig::enable_custom_labels, yaze::gui::CanvasConfig::enable_custom_labels, enable_custom_labels_, yaze::gui::canvas::CanvasConfig::enable_grid, yaze::gui::CanvasConfig::enable_grid, enable_grid_, yaze::gui::canvas::CanvasConfig::enable_hex_labels, yaze::gui::CanvasConfig::enable_hex_labels, enable_hex_tile_labels_, yaze::gui::canvas::CanvasConfig::global_scale, yaze::gui::CanvasConfig::global_scale, global_scale_, yaze::gui::canvas::CanvasConfig::grid_step, yaze::gui::CanvasConfig::grid_step, yaze::gui::canvas::CanvasConfig::is_draggable, yaze::gui::CanvasConfig::is_draggable, yaze::gui::canvas::CanvasContextMenu::kOpenAdvancedProperties, yaze::gui::canvas::CanvasContextMenu::kOpenScalingControls, yaze::gui::canvas::CanvasContextMenu::kResetView, yaze::gui::canvas::CanvasContextMenu::kSetGridStep, yaze::gui::canvas::CanvasContextMenu::kSetScale, yaze::gui::canvas::CanvasContextMenu::kToggleAutoResize, yaze::gui::canvas::CanvasContextMenu::kToggleContextMenu, yaze::gui::canvas::CanvasContextMenu::kToggleCustomLabels, yaze::gui::canvas::CanvasContextMenu::kToggleDraggable, yaze::gui::canvas::CanvasContextMenu::kToggleGrid, yaze::gui::canvas::CanvasContextMenu::kToggleHexLabels, yaze::gui::canvas::CanvasContextMenu::kZoomIn, yaze::gui::canvas::CanvasContextMenu::kZoomOut, yaze::gui::canvas::CanvasContextMenu::kZoomToFit, modals_, yaze::gfx::Bitmap::mutable_palette(), yaze::gui::canvas::CanvasConfig::on_config_changed, yaze::gui::canvas::CanvasConfig::on_scale_changed, ResetView(), rom_, yaze::gui::canvas::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::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), 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()

void yaze::gui::Canvas::AddContextMenuItem ( const ContextMenuItem item)

◆ ClearContextMenuItems()

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

◆ SetContextMenuEnabled()

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

Definition at line 198 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 
)

◆ ClosePersistentPopup()

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

Definition at line 640 of file canvas.cc.

References active_popups_.

◆ RenderPersistentPopups()

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

Definition at line 650 of file canvas.cc.

References active_popups_.

Referenced by DrawOverlay(), and End().

◆ ShowAdvancedCanvasProperties()

void yaze::gui::Canvas::ShowAdvancedCanvasProperties ( )

Definition at line 1586 of file canvas.cc.

References yaze::gui::canvas::CanvasConfig::auto_resize, yaze::gui::CanvasConfig::auto_resize, bitmap_, canvas_id_, yaze::gui::canvas::CanvasConfig::canvas_size, yaze::gui::CanvasConfig::canvas_size, canvas_sz_, config_, yaze::gui::canvas::CanvasConfig::content_size, yaze::gui::CanvasConfig::content_size, custom_step_, draggable_, yaze::gui::canvas::CanvasConfig::enable_context_menu, yaze::gui::CanvasConfig::enable_context_menu, enable_context_menu_, yaze::gui::canvas::CanvasConfig::enable_custom_labels, yaze::gui::CanvasConfig::enable_custom_labels, enable_custom_labels_, yaze::gui::canvas::CanvasConfig::enable_grid, yaze::gui::CanvasConfig::enable_grid, enable_grid_, yaze::gui::canvas::CanvasConfig::enable_hex_labels, yaze::gui::CanvasConfig::enable_hex_labels, enable_hex_tile_labels_, GetMinimumSize(), GetPreferredSize(), yaze::gui::canvas::CanvasConfig::global_scale, yaze::gui::CanvasConfig::global_scale, global_scale_, yaze::gui::canvas::CanvasConfig::grid_step, yaze::gui::CanvasConfig::grid_step, yaze::gfx::Bitmap::height(), yaze::gui::canvas::CanvasConfig::is_draggable, yaze::gui::CanvasConfig::is_draggable, modals_, yaze::gui::canvas::CanvasConfig::on_config_changed, yaze::gui::canvas::CanvasConfig::on_scale_changed, yaze::gui::canvas::CanvasConfig::scrolling, scrolling_, and yaze::gfx::Bitmap::width().

Referenced by DrawContextMenu(), and yaze::editor::Tile16Editor::UpdateTile16Edit().

Here is the call graph for this function:

◆ ShowScalingControls()

◆ SetZoomToFit()

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

◆ ResetView()

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

Definition at line 692 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 canvas::CanvasConfig snapshot)

◆ GetConfig() [1/2]

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

Definition at line 214 of file canvas.h.

References config_.

◆ GetConfig() [2/2]

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

Definition at line 215 of file canvas.h.

References config_.

◆ GetSelection() [1/2]

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

Definition at line 216 of file canvas.h.

References selection_.

◆ GetSelection() [2/2]

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

Definition at line 217 of file canvas.h.

References selection_.

◆ InitializePaletteEditor()

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

Definition at line 245 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 252 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 260 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 266 of file canvas.cc.

References bitmap_, and palette_editor_.

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

◆ ShowBppFormatSelector()

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

Definition at line 1844 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 1857 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 1868 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()

◆ SetUsageMode()

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

Definition at line 190 of file canvas.cc.

References context_menu_, and usage_tracker_.

◆ GetUsageMode()

canvas::CanvasUsage yaze::gui::Canvas::GetUsageMode ( ) const

Definition at line 199 of file canvas.cc.

References yaze::gui::canvas::kUnknown, and usage_tracker_.

Referenced by RecordCanvasOperation().

◆ RecordCanvasOperation()

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

Definition at line 206 of file canvas.cc.

References GetUsageMode(), performance_integration_, and usage_tracker_.

Here is the call graph for this function:

◆ ShowPerformanceUI()

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

Definition at line 217 of file canvas.cc.

References performance_integration_.

◆ ShowUsageReport()

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

Definition at line 223 of file canvas.cc.

References modals_, and usage_tracker_.

◆ GetInteractionHandler() [1/2]

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

Definition at line 241 of file canvas.h.

References interaction_handler_.

◆ GetInteractionHandler() [2/2]

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

Definition at line 242 of file canvas.h.

References interaction_handler_.

◆ GetAutomationAPI()

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

Definition at line 1922 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 254 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 256 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 311 of file canvas.cc.

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

◆ HasValidSelection()

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

Definition at line 316 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 320 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 324 of file canvas.cc.

References HasValidSelection().

Here is the call graph for this function:

◆ GetLastClickPosition()

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

Definition at line 329 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 899 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 1142 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 1152 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 1339 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 1432 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 1381 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()

const ImVector< ImVec2 > & yaze::gui::Canvas::points ( ) const
inline

◆ mutable_points()

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

◆ push_back()

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

Definition at line 308 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 316 of file canvas.h.

References draggable_.

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

◆ IsSelectRectActive()

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

Definition at line 319 of file canvas.h.

References select_rect_active_.

◆ GetSelectedTiles()

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

Definition at line 320 of file canvas.h.

References selected_tiles_.

◆ GetSelectedTilePos()

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

Definition at line 321 of file canvas.h.

References selected_tile_pos_.

◆ SetSelectedTilePos()

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

Definition at line 322 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 330 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 331 of file canvas.h.

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

◆ GetGridStep()

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

Definition at line 332 of file canvas.h.

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

◆ SetClampRectToLocalMaps()

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

Definition at line 335 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 336 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 337 of file canvas.h.

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

◆ GetCanvasHeight()

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

Definition at line 338 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 344 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 352 of file canvas.h.

References canvas_id_.

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

◆ DrawBitmap() [1/3]

◆ 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 1129 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 1157 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 1386 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::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), 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 1413 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::DungeonObjectSelector::DrawRoomGraphics(), yaze::editor::DungeonEditorV2::DrawRoomGraphicsCard(), yaze::editor::OverworldEditor::DrawScratchSpace(), yaze::editor::SpriteEditor::DrawSpriteCanvas(), yaze::editor::OverworldEditor::DrawTile8Selector(), 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 377 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 395 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 396 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 398 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

Definition at line 402 of file canvas.h.

References mouse_pos_in_canvas_.

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

◆ set_rom()

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

Definition at line 404 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 405 of file canvas.h.

References rom_.

Referenced by InitializePaletteEditor(), and set_rom().

◆ DrawContextMenuItem()

Member Data Documentation

◆ bpp_format_ui_

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

Definition at line 185 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 186 of file canvas.h.

Referenced by ShowBppConversionDialog().

◆ bpp_comparison_tool_

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

Definition at line 187 of file canvas.h.

◆ modals_

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

◆ context_menu_

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

Definition at line 191 of file canvas.h.

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

◆ usage_tracker_

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

◆ performance_integration_

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

◆ interaction_handler_

canvas::CanvasInteractionHandler yaze::gui::Canvas::interaction_handler_

Definition at line 194 of file canvas.h.

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

◆ renderer_

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

Definition at line 411 of file canvas.h.

Referenced by renderer(), and SetRenderer().

◆ config_

◆ selection_

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

Definition at line 413 of file canvas.h.

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

◆ palette_editor_

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

◆ automation_api_

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

Definition at line 417 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 421 of file canvas.h.

◆ context_menu_items_

std::vector<ContextMenuItem> yaze::gui::Canvas::context_menu_items_
private

Definition at line 424 of file canvas.h.

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

◆ context_menu_enabled_

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

Definition at line 425 of file canvas.h.

Referenced by SetContextMenuEnabled().

◆ active_popups_

std::vector<PopupState> yaze::gui::Canvas::active_popups_
private

Definition at line 433 of file canvas.h.

Referenced by ClosePersistentPopup(), OpenPersistentPopup(), and RenderPersistentPopups().

◆ current_labels_

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

Definition at line 436 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 437 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 438 of file canvas.h.

◆ edit_palette_group_name_index_

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

Definition at line 439 of file canvas.h.

◆ edit_palette_sub_index_

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

Definition at line 440 of file canvas.h.

◆ bitmap_

◆ rom_

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

Definition at line 444 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 451 of file canvas.h.

Referenced by DrawBackground(), DrawBitmap(), 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 458 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 462 of file canvas.h.

Referenced by DrawContextMenu().

◆ selected_tiles_

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

Definition at line 465 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 475 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: