diff --git a/src/app/editor/code/assembly_editor.h b/src/app/editor/code/assembly_editor.h index 7e3cb86a..192f9327 100644 --- a/src/app/editor/code/assembly_editor.h +++ b/src/app/editor/code/assembly_editor.h @@ -5,7 +5,7 @@ #include "ImGuiColorTextEdit/TextEditor.h" #include "app/core/common.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gui/style.h" namespace yaze { diff --git a/src/app/editor/code/memory_editor.h b/src/app/editor/code/memory_editor.h index e97262bf..bb2f2e3f 100644 --- a/src/app/editor/code/memory_editor.h +++ b/src/app/editor/code/memory_editor.h @@ -14,7 +14,7 @@ #include "app/editor/music/music_editor.h" #include "app/editor/overworld/overworld_editor.h" #include "app/editor/sprite/sprite_editor.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/editor/utils/gfx_context.h" #include "app/emu/emulator.h" #include "app/gfx/snes_palette.h" diff --git a/src/app/editor/dungeon/dungeon_editor.cc b/src/app/editor/dungeon/dungeon_editor.cc index 67e4bb55..b6b42d3d 100644 --- a/src/app/editor/dungeon/dungeon_editor.cc +++ b/src/app/editor/dungeon/dungeon_editor.cc @@ -1,5 +1,6 @@ #include "dungeon_editor.h" +#include "absl/container/flat_hash_map.h" #include "app/core/platform/renderer.h" #include "app/gfx/snes_palette.h" #include "app/gui/canvas.h" diff --git a/src/app/editor/dungeon/dungeon_editor.h b/src/app/editor/dungeon/dungeon_editor.h index 2b0c56fa..4a8aea3d 100644 --- a/src/app/editor/dungeon/dungeon_editor.h +++ b/src/app/editor/dungeon/dungeon_editor.h @@ -2,9 +2,10 @@ #define YAZE_APP_EDITOR_DUNGEONEDITOR_H #include "app/core/common.h" +#include "absl/container/flat_hash_map.h" #include "app/editor/graphics/gfx_group_editor.h" #include "app/editor/graphics/palette_editor.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gui/canvas.h" #include "app/rom.h" #include "imgui/imgui.h" diff --git a/src/app/editor/editor.cc b/src/app/editor/editor.cc new file mode 100644 index 00000000..44055a1b --- /dev/null +++ b/src/app/editor/editor.cc @@ -0,0 +1,52 @@ +#include "editor.h" + +#include "app/core/constants.h" +#include "imgui/imgui.h" + +namespace yaze { +namespace app { +namespace editor { + +absl::Status DrawEditor(EditorLayoutParams *params) { + if (params->editor == nullptr) { + return absl::InternalError("Editor is not initialized"); + } + + // Draw the editors based on h_split and v_split in a recursive manner + if (params->v_split) { + ImGui::BeginTable("##VerticalSplitTable", 2); + + ImGui::TableNextColumn(); + if (params->left) + RETURN_IF_ERROR(DrawEditor(params->left)); + + ImGui::TableNextColumn(); + if (params->right) + RETURN_IF_ERROR(DrawEditor(params->right)); + + ImGui::EndTable(); + } else if (params->h_split) { + ImGui::BeginTable("##HorizontalSplitTable", 1); + + ImGui::TableNextColumn(); + if (params->top) + RETURN_IF_ERROR(DrawEditor(params->top)); + + ImGui::TableNextColumn(); + if (params->bottom) + RETURN_IF_ERROR(DrawEditor(params->bottom)); + + ImGui::EndTable(); + } else { + // No split, just draw the single editor + ImGui::Text("%s Editor", + kEditorNames[static_cast(params->editor->type())]); + RETURN_IF_ERROR(params->editor->Update()); + } + + return absl::OkStatus(); +} + +} // namespace editor +} // namespace app +} // namespace yaze diff --git a/src/app/editor/editor.cmake b/src/app/editor/editor.cmake index 1ee09936..4f8351ad 100644 --- a/src/app/editor/editor.cmake +++ b/src/app/editor/editor.cmake @@ -1,5 +1,6 @@ set( YAZE_APP_EDITOR_SRC + app/editor/editor.cc app/editor/editor_manager.cc app/editor/dungeon/dungeon_editor.cc app/editor/overworld/overworld_editor.cc diff --git a/src/app/editor/utils/editor.h b/src/app/editor/editor.h similarity index 68% rename from src/app/editor/utils/editor.h rename to src/app/editor/editor.h index 872388ed..85b11df0 100644 --- a/src/app/editor/utils/editor.h +++ b/src/app/editor/editor.h @@ -58,8 +58,32 @@ class Editor { EditorType type_; }; +/** + * @brief Dynamic Editor Layout Parameters + */ +typedef struct EditorLayoutParams { + bool v_split; + bool h_split; + int v_split_pos; + int h_split_pos; + Editor *editor = nullptr; + EditorLayoutParams *left = nullptr; + EditorLayoutParams *right = nullptr; + EditorLayoutParams *top = nullptr; + EditorLayoutParams *bottom = nullptr; + + EditorLayoutParams() { + v_split = false; + h_split = false; + v_split_pos = 0; + h_split_pos = 0; + } +} EditorLayoutParams; + +absl::Status DrawEditor(EditorLayoutParams *params); + } // namespace editor } // namespace app } // namespace yaze -#endif // YAZE_APP_CORE_EDITOR_H \ No newline at end of file +#endif // YAZE_APP_CORE_EDITOR_H diff --git a/src/app/editor/editor_manager.h b/src/app/editor/editor_manager.h index 0fe459e5..18f5c2f8 100644 --- a/src/app/editor/editor_manager.h +++ b/src/app/editor/editor_manager.h @@ -22,7 +22,6 @@ #include "app/emu/emulator.h" #include "app/gui/input.h" #include "app/rom.h" -#include "imgui/imgui.h" #include "yaze.h" namespace yaze { @@ -57,6 +56,7 @@ class EditorManager : public SharedRom, public core::ExperimentFlags { active_editors_.push_back(&palette_editor_); active_editors_.push_back(&sprite_editor_); active_editors_.push_back(&message_editor_); + active_editors_.push_back(&screen_editor_); } void SetupScreen(std::string filename = ""); diff --git a/src/app/editor/graphics/gfx_group_editor.cc b/src/app/editor/graphics/gfx_group_editor.cc index a561c9f5..b3bd3c75 100644 --- a/src/app/editor/graphics/gfx_group_editor.cc +++ b/src/app/editor/graphics/gfx_group_editor.cc @@ -1,7 +1,6 @@ #include "gfx_group_editor.h" #include "absl/status/status.h" -#include "absl/status/statusor.h" #include "absl/strings/str_cat.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" diff --git a/src/app/editor/graphics/gfx_group_editor.h b/src/app/editor/graphics/gfx_group_editor.h index ee3ebaf8..14cd4c0c 100644 --- a/src/app/editor/graphics/gfx_group_editor.h +++ b/src/app/editor/graphics/gfx_group_editor.h @@ -1,20 +1,10 @@ #ifndef YAZE_APP_EDITOR_GFX_GROUP_EDITOR_H #define YAZE_APP_EDITOR_GFX_GROUP_EDITOR_H -#include - #include "absl/status/status.h" -#include "absl/status/statusor.h" -#include "app/editor/utils/editor.h" -#include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" -#include "app/gfx/snes_tile.h" #include "app/gui/canvas.h" -#include "app/gui/icons.h" -#include "app/gui/style.h" #include "app/rom.h" -#include "app/zelda3/overworld/overworld.h" -#include "imgui/imgui.h" namespace yaze { namespace app { @@ -55,4 +45,4 @@ class GfxGroupEditor : public SharedRom { } // namespace editor } // namespace app } // namespace yaze -#endif // YAZE_APP_EDITOR_GFX_GROUP_EDITOR_H \ No newline at end of file +#endif // YAZE_APP_EDITOR_GFX_GROUP_EDITOR_H diff --git a/src/app/editor/graphics/graphics_editor.h b/src/app/editor/graphics/graphics_editor.h index f50a4483..4fd1b517 100644 --- a/src/app/editor/graphics/graphics_editor.h +++ b/src/app/editor/graphics/graphics_editor.h @@ -3,7 +3,7 @@ #include "absl/status/status.h" #include "app/editor/graphics/palette_editor.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_tile.h" #include "app/gui/modules/asset_browser.h" diff --git a/src/app/editor/graphics/palette_editor.h b/src/app/editor/graphics/palette_editor.h index e42ff072..6f32df6c 100644 --- a/src/app/editor/graphics/palette_editor.h +++ b/src/app/editor/graphics/palette_editor.h @@ -1,12 +1,15 @@ #ifndef YAZE_APP_EDITOR_PALETTE_EDITOR_H #define YAZE_APP_EDITOR_PALETTE_EDITOR_H +#include +#include +#include + #include "absl/status/status.h" #include "app/editor/graphics/gfx_group_editor.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gfx/snes_palette.h" -#include "app/gui/canvas.h" -#include "app/gui/icons.h" +#include "app/gfx/snes_color.h" #include "app/rom.h" #include "imgui/imgui.h" @@ -120,4 +123,4 @@ class PaletteEditor : public SharedRom, public Editor { } // namespace app } // namespace yaze -#endif \ No newline at end of file +#endif diff --git a/src/app/editor/graphics/screen_editor.h b/src/app/editor/graphics/screen_editor.h index 5fb03930..324c9a6b 100644 --- a/src/app/editor/graphics/screen_editor.h +++ b/src/app/editor/graphics/screen_editor.h @@ -4,7 +4,7 @@ #include #include "absl/status/status.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" #include "app/gfx/tilesheet.h" @@ -33,7 +33,7 @@ namespace editor { * The class inherits from the SharedRom class. */ class ScreenEditor : public SharedRom, public Editor { - public: +public: ScreenEditor() { screen_canvas_.SetCanvasSize(ImVec2(512, 512)); type_ = EditorType::kScreen; @@ -50,7 +50,7 @@ class ScreenEditor : public SharedRom, public Editor { absl::Status SaveDungeonMaps(); - private: +private: void DrawTitleScreenEditor(); void DrawNamingScreenEditor(); void DrawOverworldMapEditor(); @@ -60,7 +60,7 @@ class ScreenEditor : public SharedRom, public Editor { void DrawInventoryToolset(); absl::Status LoadDungeonMaps(); - absl::Status LoadDungeonMapTile16(const std::vector& gfx_data, + absl::Status LoadDungeonMapTile16(const std::vector &gfx_data, bool bin_mode = false); absl::Status SaveDungeonMapTile16(); void DrawDungeonMapsTabs(); @@ -68,6 +68,10 @@ class ScreenEditor : public SharedRom, public Editor { void LoadBinaryGfx(); + enum class EditingMode { DRAW, EDIT }; + + EditingMode current_mode_ = EditingMode::DRAW; + bool dungeon_maps_loaded_ = false; bool binary_gfx_loaded_ = false; @@ -75,6 +79,7 @@ class ScreenEditor : public SharedRom, public Editor { uint8_t boss_room = 0; int selected_tile16_ = 0; + int selected_tile8_ = 0; int selected_dungeon = 0; int floor_number = 1; @@ -98,13 +103,15 @@ class ScreenEditor : public SharedRom, public Editor { gui::Canvas current_tile_canvas_{"##CurrentTileCanvas"}; gui::Canvas screen_canvas_; gui::Canvas tilesheet_canvas_; - gui::Canvas tilemap_canvas_; + gui::Canvas tilemap_canvas_{"##TilemapCanvas", + ImVec2(128 + 2, (192) + 4), + gui::CanvasGridSize::k8x8, 2.f}; zelda3::screen::Inventory inventory_; }; -} // namespace editor -} // namespace app -} // namespace yaze +} // namespace editor +} // namespace app +} // namespace yaze #endif diff --git a/src/app/editor/graphics/tile16_editor.cc b/src/app/editor/graphics/tile16_editor.cc index b0fc7317..4b25faf0 100644 --- a/src/app/editor/graphics/tile16_editor.cc +++ b/src/app/editor/graphics/tile16_editor.cc @@ -7,7 +7,7 @@ #include "absl/status/statusor.h" #include "app/core/platform/renderer.h" #include "app/editor/graphics/palette_editor.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" #include "app/gfx/snes_tile.h" diff --git a/src/app/editor/message/message_editor.h b/src/app/editor/message/message_editor.h index 76661d1e..b75e471b 100644 --- a/src/app/editor/message/message_editor.h +++ b/src/app/editor/message/message_editor.h @@ -6,7 +6,7 @@ #include "absl/status/status.h" #include "app/editor/message/message_data.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gfx/bitmap.h" #include "app/gui/canvas.h" #include "app/rom.h" diff --git a/src/app/editor/music/music_editor.h b/src/app/editor/music/music_editor.h index 693e7b8a..b82af24a 100644 --- a/src/app/editor/music/music_editor.h +++ b/src/app/editor/music/music_editor.h @@ -3,7 +3,7 @@ #include "absl/strings/str_format.h" #include "app/editor/code/assembly_editor.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gui/canvas.h" #include "app/gui/icons.h" #include "app/gui/input.h" diff --git a/src/app/editor/overworld/overworld_editor.h b/src/app/editor/overworld/overworld_editor.h index 675b09a1..26a9fac9 100644 --- a/src/app/editor/overworld/overworld_editor.h +++ b/src/app/editor/overworld/overworld_editor.h @@ -12,7 +12,7 @@ #include "app/editor/graphics/palette_editor.h" #include "app/editor/graphics/tile16_editor.h" #include "app/editor/overworld/entity.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/editor/utils/gfx_context.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" diff --git a/src/app/editor/sprite/sprite_editor.h b/src/app/editor/sprite/sprite_editor.h index 0cc6e019..2504a62f 100644 --- a/src/app/editor/sprite/sprite_editor.h +++ b/src/app/editor/sprite/sprite_editor.h @@ -3,7 +3,7 @@ #include "absl/status/status.h" #include "app/editor/sprite/zsprite.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gui/canvas.h" #include "app/rom.h" diff --git a/src/app/editor/system/settings_editor.h b/src/app/editor/system/settings_editor.h index 32c6e382..3c2c0a07 100644 --- a/src/app/editor/system/settings_editor.h +++ b/src/app/editor/system/settings_editor.h @@ -4,7 +4,7 @@ #include "imgui/imgui.h" #include "absl/status/status.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" namespace yaze { namespace app { diff --git a/src/app/editor/utils/gfx_context.cc b/src/app/editor/utils/gfx_context.cc index 8d829552..677e9852 100644 --- a/src/app/editor/utils/gfx_context.cc +++ b/src/app/editor/utils/gfx_context.cc @@ -5,7 +5,7 @@ #include #include "app/editor/graphics/palette_editor.h" -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" #include "app/gfx/snes_tile.h" diff --git a/src/app/editor/utils/gfx_context.h b/src/app/editor/utils/gfx_context.h index d3f8992e..669f459c 100644 --- a/src/app/editor/utils/gfx_context.h +++ b/src/app/editor/utils/gfx_context.h @@ -6,7 +6,7 @@ #include #include -#include "app/editor/utils/editor.h" +#include "app/editor/editor.h" #include "app/gfx/bitmap.h" #include "app/gfx/snes_palette.h" #include "app/gfx/snes_tile.h" diff --git a/src/app/gui/canvas.cc b/src/app/gui/canvas.cc index b282f1bb..7e0a8a3b 100644 --- a/src/app/gui/canvas.cc +++ b/src/app/gui/canvas.cc @@ -4,7 +4,6 @@ #include #include "app/core/platform/renderer.h" -#include "app/editor/graphics/graphics_editor.h" #include "app/gfx/bitmap.h" #include "app/gui/color.h" #include "app/gui/input.h" @@ -19,7 +18,6 @@ namespace gui { using core::Renderer; using ImGui::BeginMenu; -using ImGui::BeginPopup; using ImGui::EndMenu; using ImGui::GetContentRegionAvail; using ImGui::GetCursorScreenPos; @@ -33,7 +31,6 @@ using ImGui::IsMouseDragging; using ImGui::MenuItem; using ImGui::OpenPopupOnItemClick; using ImGui::Selectable; -using ImGui::Separator; using ImGui::Text; constexpr uint32_t kBlackColor = IM_COL32(0, 0, 0, 255); @@ -860,4 +857,4 @@ void BitmapCanvasPipeline(gui::Canvas &canvas, const gfx::Bitmap &bitmap, } // namespace gui } // namespace app -} // namespace yaze \ No newline at end of file +} // namespace yaze diff --git a/src/app/gui/canvas.h b/src/app/gui/canvas.h index 4e483597..26ed37e3 100644 --- a/src/app/gui/canvas.h +++ b/src/app/gui/canvas.h @@ -1,7 +1,6 @@ #ifndef YAZE_GUI_CANVAS_H #define YAZE_GUI_CANVAS_H -#include #include #include "app/gfx/bitmap.h" @@ -33,37 +32,46 @@ enum class CanvasGridSize { k8x8, k16x16, k32x32, k64x64 }; * handling, tile painting, custom grid, and more. */ class Canvas : public SharedRom { - public: +public: Canvas() = default; - explicit Canvas(const std::string& id) : canvas_id_(id) { + explicit Canvas(const std::string &id) : canvas_id_(id) { context_id_ = id + "Context"; } - explicit Canvas(const std::string& id, ImVec2 canvas_size) + explicit Canvas(const std::string &id, ImVec2 canvas_size) : canvas_id_(id), custom_canvas_size_(true), canvas_sz_(canvas_size) { context_id_ = id + "Context"; } - explicit Canvas(const std::string& id, ImVec2 canvas_size, + explicit Canvas(const std::string &id, ImVec2 canvas_size, CanvasGridSize grid_size) : canvas_id_(id), custom_canvas_size_(true), canvas_sz_(canvas_size) { context_id_ = id + "Context"; + SetCanvasGridSize(grid_size); + } + explicit Canvas(const std::string &id, ImVec2 canvas_size, CanvasGridSize grid_size, float global_scale) + : canvas_id_(id), custom_canvas_size_(true), canvas_sz_(canvas_size), global_scale_(global_scale) { + context_id_ = id + "Context"; + SetCanvasGridSize(grid_size); + } + + void SetCanvasGridSize(CanvasGridSize grid_size) { switch (grid_size) { - case CanvasGridSize::k8x8: - custom_step_ = 8.0f; - break; - case CanvasGridSize::k16x16: - custom_step_ = 16.0f; - break; - case CanvasGridSize::k32x32: - custom_step_ = 32.0f; - break; - case CanvasGridSize::k64x64: - custom_step_ = 64.0f; - break; + case CanvasGridSize::k8x8: + custom_step_ = 8.0f; + break; + case CanvasGridSize::k16x16: + custom_step_ = 16.0f; + break; + case CanvasGridSize::k32x32: + custom_step_ = 32.0f; + break; + case CanvasGridSize::k64x64: + custom_step_ = 64.0f; + break; } } - void UpdateColorPainter(gfx::Bitmap& bitmap, const ImVec4& color, - const std::function& event, int tile_size, + void UpdateColorPainter(gfx::Bitmap &bitmap, const ImVec4 &color, + const std::function &event, int tile_size, float scale = 1.0f); void UpdateInfoGrid(ImVec2 bg_size, int tile_size, float scale = 1.0f, @@ -75,16 +83,16 @@ class Canvas : public SharedRom { // Context Menu refers to what happens when the right mouse button is pressed // This routine also handles the scrolling for the canvas. - void DrawContextMenu(gfx::Bitmap* bitmap = nullptr); + void DrawContextMenu(gfx::Bitmap *bitmap = nullptr); // Tile painter shows a preview of the currently selected tile // and allows the user to left click to paint the tile or right // click to select a new tile to paint with. - bool DrawTilePainter(const Bitmap& bitmap, int size, float scale = 1.0f); - bool DrawSolidTilePainter(const ImVec4& color, int size); + bool DrawTilePainter(const Bitmap &bitmap, int size, float scale = 1.0f); + bool DrawSolidTilePainter(const ImVec4 &color, int size); // Draws a tile on the canvas at the specified position - void DrawTileOnBitmap(int tile_size, gfx::Bitmap* bitmap, ImVec4 color); + void DrawTileOnBitmap(int tile_size, gfx::Bitmap *bitmap, ImVec4 color); // Dictates which tile is currently selected based on what the user clicks // in the canvas window. Represented and split apart into a grid of tiles. @@ -95,15 +103,15 @@ class Canvas : public SharedRom { float scale = 1.0f); // Draws the contents of the Bitmap image to the Canvas - void DrawBitmap(const Bitmap& bitmap, int border_offset = 0, + void DrawBitmap(const Bitmap &bitmap, int border_offset = 0, bool ready = true); - void DrawBitmap(const Bitmap& bitmap, int border_offset, float scale); - void DrawBitmap(const Bitmap& bitmap, int x_offset = 0, int y_offset = 0, + void DrawBitmap(const Bitmap &bitmap, int border_offset, float scale); + void DrawBitmap(const Bitmap &bitmap, int x_offset = 0, int y_offset = 0, float scale = 1.0f, int alpha = 255); - void DrawBitmapTable(const BitmapTable& gfx_bin); + void DrawBitmapTable(const BitmapTable &gfx_bin); - void DrawBitmapGroup(std::vector& group, - std::vector& tile16_individual_, + void DrawBitmapGroup(std::vector &group, + std::vector &tile16_individual_, int tile_size, float scale = 1.0f); void DrawOutline(int x, int y, int w, int h); @@ -115,7 +123,7 @@ class Canvas : public SharedRom { void DrawText(std::string text, int x, int y); void DrawGridLines(float grid_step); void DrawGrid(float grid_step = 64.0f, int tile_id_offset = 8); - void DrawOverlay(); // last + void DrawOverlay(); // last void DrawInfoGrid(float grid_step = 64.0f, int tile_id_offset = 8, int label_id = 0); @@ -125,11 +133,11 @@ class Canvas : public SharedRom { int GetTileIdFromMousePos() { int x = mouse_pos_in_canvas_.x; int y = mouse_pos_in_canvas_.y; - int num_columns = canvas_sz_.x / custom_step_; - int num_rows = canvas_sz_.y / custom_step_; + int num_columns = (canvas_sz_.x / global_scale_) / custom_step_; + int num_rows = (canvas_sz_.y / global_scale_) / custom_step_; int tile_id = (x / custom_step_) + (y / custom_step_) * num_columns; if (tile_id >= num_columns * num_rows) { - tile_id = -1; // Invalid tile ID + tile_id = -1; // Invalid tile ID } return tile_id; } @@ -189,7 +197,7 @@ class Canvas : public SharedRom { auto hover_mouse_pos() const { return mouse_pos_in_canvas_; } - private: +private: bool draggable_ = false; bool is_hovered_ = false; bool enable_grid_ = true; @@ -213,7 +221,7 @@ class Canvas : public SharedRom { std::string canvas_id_ = "Canvas"; std::string context_id_ = "CanvasContext"; - ImDrawList* draw_list_; + ImDrawList *draw_list_; ImVector points_; ImVector> labels_; ImVec2 scrolling_; @@ -229,14 +237,14 @@ class Canvas : public SharedRom { void GraphicsBinCanvasPipeline(int width, int height, int tile_size, int num_sheets_to_load, int canvas_id, - bool is_loaded, BitmapTable& graphics_bin); + bool is_loaded, BitmapTable &graphics_bin); -void BitmapCanvasPipeline(gui::Canvas& canvas, const gfx::Bitmap& bitmap, +void BitmapCanvasPipeline(gui::Canvas &canvas, const gfx::Bitmap &bitmap, int width, int height, int tile_size, bool is_loaded, bool scrollbar, int canvas_id); -} // namespace gui -} // namespace app -} // namespace yaze +} // namespace gui +} // namespace app +} // namespace yaze #endif