From b41f1ace30957ff3b66d5873dc2876cbdd7372f3 Mon Sep 17 00:00:00 2001 From: David Capello Date: Tue, 9 Jun 2020 19:56:25 -0300 Subject: [PATCH] Move function to convert doc::Image -> os::Surface to app/util --- src/README.md | 2 +- src/app/CMakeLists.txt | 1 + src/app/commands/cmd_fullscreen_preview.cpp | 6 ++-- src/app/thumbnail_generator.cpp | 2 +- src/app/thumbnails.cpp | 4 +-- src/app/ui/brush_popup.cpp | 4 +-- src/app/ui/context_bar.cpp | 1 - src/app/ui/dithering_selector.cpp | 6 ++-- src/app/ui/editor/editor.cpp | 2 +- src/app/ui/font_popup.cpp | 2 +- .../util}/conversion_to_surface.cpp | 25 +++++++++----- src/app/util/conversion_to_surface.h | 33 +++++++++++++++++++ src/doc/CMakeLists.txt | 8 ++--- src/doc/conversion_to_surface.h | 25 -------------- 14 files changed, 67 insertions(+), 54 deletions(-) rename src/{doc => app/util}/conversion_to_surface.cpp (93%) create mode 100644 src/app/util/conversion_to_surface.h delete mode 100644 src/doc/conversion_to_surface.h diff --git a/src/README.md b/src/README.md index e10e141c9..61aca601a 100644 --- a/src/README.md +++ b/src/README.md @@ -32,7 +32,7 @@ because they don't depend on any other component. ## Level 2 - * [doc](doc/) (base, fixmath, gfx, os): Document model library. + * [doc](doc/) (base, fixmath, gfx): Document model library. * [ui](ui/) (base, gfx, os): Portable UI library (buttons, windows, text fields, etc.) * [updater](updater/) (base, cfg, net): Component to check for updates. diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index 4b6bb5eda..e1e3bc1ae 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -597,6 +597,7 @@ add_library(app-lib ui/layer_frame_comboboxes.cpp util/autocrop.cpp util/buffer_region.cpp + util/conversion_to_surface.cpp util/create_cel_copy.cpp util/expand_cel_canvas.cpp util/filetoks.cpp diff --git a/src/app/commands/cmd_fullscreen_preview.cpp b/src/app/commands/cmd_fullscreen_preview.cpp index 2f8023a17..fbbbb6d77 100644 --- a/src/app/commands/cmd_fullscreen_preview.cpp +++ b/src/app/commands/cmd_fullscreen_preview.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2018 Igara Studio S.A. +// Copyright (C) 2018-2020 Igara Studio S.A. // Copyright (C) 2001-2018 David Capello // // This program is distributed under the terms of @@ -21,7 +21,7 @@ #include "app/ui/editor/editor_render.h" #include "app/ui/keyboard_shortcuts.h" #include "app/ui/status_bar.h" -#include "doc/conversion_to_surface.h" +#include "app/util/conversion_to_surface.h" #include "doc/image.h" #include "doc/palette.h" #include "doc/primitives.h" @@ -231,7 +231,7 @@ protected: break; } - doc::convert_image_to_surface(m_doublebuf.get(), m_pal, + convert_image_to_surface(m_doublebuf.get(), m_pal, m_doublesur, 0, 0, 0, 0, m_doublebuf->width(), m_doublebuf->height()); g->blit(m_doublesur, 0, 0, 0, 0, m_doublesur->width(), m_doublesur->height()); } diff --git a/src/app/thumbnail_generator.cpp b/src/app/thumbnail_generator.cpp index c0c1572d4..85cdb0b79 100644 --- a/src/app/thumbnail_generator.cpp +++ b/src/app/thumbnail_generator.cpp @@ -16,12 +16,12 @@ #include "app/doc.h" #include "app/file/file.h" #include "app/file_system.h" +#include "app/util/conversion_to_surface.h" #include "base/bind.h" #include "base/clamp.h" #include "base/scoped_lock.h" #include "base/thread.h" #include "doc/algorithm/rotate.h" -#include "doc/conversion_to_surface.h" #include "doc/image.h" #include "doc/palette.h" #include "doc/primitives.h" diff --git a/src/app/thumbnails.cpp b/src/app/thumbnails.cpp index 8ac2f1b85..17f406cdf 100644 --- a/src/app/thumbnails.cpp +++ b/src/app/thumbnails.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2019 Igara Studio S.A. +// Copyright (C) 2019-2020 Igara Studio S.A. // Copyright (C) 2018 David Capello // Copyright (C) 2016 Carlo Caputo // @@ -10,9 +10,9 @@ #include "config.h" #endif +#include "app/util/conversion_to_surface.h" #include "doc/blend_mode.h" #include "doc/cel.h" -#include "doc/conversion_to_surface.h" #include "doc/layer.h" #include "doc/sprite.h" #include "os/surface.h" diff --git a/src/app/ui/brush_popup.cpp b/src/app/ui/brush_popup.cpp index d7d1ee360..9466589e2 100644 --- a/src/app/ui/brush_popup.cpp +++ b/src/app/ui/brush_popup.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2018-2019 Igara Studio S.A. +// Copyright (C) 2018-2020 Igara Studio S.A. // Copyright (C) 2001-2018 David Capello // // This program is distributed under the terms of @@ -26,10 +26,10 @@ #include "app/ui/main_window.h" #include "app/ui/skin/skin_theme.h" #include "app/ui_context.h" +#include "app/util/conversion_to_surface.h" #include "base/bind.h" #include "base/convert_to.h" #include "doc/brush.h" -#include "doc/conversion_to_surface.h" #include "doc/image.h" #include "doc/palette.h" #include "gfx/border.h" diff --git a/src/app/ui/context_bar.cpp b/src/app/ui/context_bar.cpp index 2c54f5a59..7cdd80fd6 100644 --- a/src/app/ui/context_bar.cpp +++ b/src/app/ui/context_bar.cpp @@ -51,7 +51,6 @@ #include "base/fs.h" #include "base/scoped_value.h" #include "doc/brush.h" -#include "doc/conversion_to_surface.h" #include "doc/image.h" #include "doc/palette.h" #include "doc/remap.h" diff --git a/src/app/ui/dithering_selector.cpp b/src/app/ui/dithering_selector.cpp index 29c3f1f27..f058f4f81 100644 --- a/src/app/ui/dithering_selector.cpp +++ b/src/app/ui/dithering_selector.cpp @@ -15,8 +15,8 @@ #include "app/extensions.h" #include "app/modules/palettes.h" #include "app/ui/skin/skin_theme.h" +#include "app/util/conversion_to_surface.h" #include "base/bind.h" -#include "doc/conversion_to_surface.h" #include "doc/image.h" #include "doc/image_ref.h" #include "doc/primitives.h" @@ -113,8 +113,8 @@ private: } m_preview = os::instance()->createRgbaSurface(w, h); - doc::convert_image_to_surface(image2.get(), palette, m_preview, - 0, 0, 0, 0, w, h); + convert_image_to_surface(image2.get(), palette, m_preview, + 0, 0, 0, 0, w, h); m_palId = palette->id(); m_palMods = palette->getModifications(); diff --git a/src/app/ui/editor/editor.cpp b/src/app/ui/editor/editor.cpp index 91b35dd11..04c90f34b 100644 --- a/src/app/ui/editor/editor.cpp +++ b/src/app/ui/editor/editor.cpp @@ -51,12 +51,12 @@ #include "app/ui/timeline/timeline.h" #include "app/ui/toolbar.h" #include "app/ui_context.h" +#include "app/util/conversion_to_surface.h" #include "app/util/layer_utils.h" #include "base/bind.h" #include "base/chrono.h" #include "base/clamp.h" #include "base/convert_to.h" -#include "doc/conversion_to_surface.h" #include "doc/doc.h" #include "doc/mask_boundaries.h" #include "doc/slice.h" diff --git a/src/app/ui/font_popup.cpp b/src/app/ui/font_popup.cpp index ae59804fb..7424ea997 100644 --- a/src/app/ui/font_popup.cpp +++ b/src/app/ui/font_popup.cpp @@ -19,11 +19,11 @@ #include "app/ui/search_entry.h" #include "app/ui/skin/skin_theme.h" #include "app/ui_context.h" +#include "app/util/conversion_to_surface.h" #include "app/util/freetype_utils.h" #include "base/bind.h" #include "base/fs.h" #include "base/string.h" -#include "doc/conversion_to_surface.h" #include "doc/image.h" #include "doc/image_ref.h" #include "os/surface.h" diff --git a/src/doc/conversion_to_surface.cpp b/src/app/util/conversion_to_surface.cpp similarity index 93% rename from src/doc/conversion_to_surface.cpp rename to src/app/util/conversion_to_surface.cpp index 1be610ccd..cc2dfdaca 100644 --- a/src/doc/conversion_to_surface.cpp +++ b/src/app/util/conversion_to_surface.cpp @@ -1,14 +1,15 @@ -// Aseprite Document Library +// Aseprite +// Copyright (c) 2020 Igara Studio S.A. // Copyright (c) 2001-2018 David Capello // -// This file is released under the terms of the MIT license. -// Read LICENSE.txt for more information. +// This program is distributed under the terms of +// the End-User License Agreement for Aseprite. #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include "doc/conversion_to_surface.h" +#include "app/util/conversion_to_surface.h" #include "base/24bits.h" #include "doc/algo.h" @@ -22,7 +23,9 @@ #include #include -namespace doc { +namespace app { + +using namespace doc; namespace { @@ -131,8 +134,14 @@ void convert_image_to_surface_selector(const Image* image, os::Surface* surface, } // anonymous namespace -void convert_image_to_surface(const Image* image, const Palette* palette, - os::Surface* surface, int src_x, int src_y, int dst_x, int dst_y, int w, int h) + +void convert_image_to_surface( + const doc::Image* image, + const doc::Palette* palette, + os::Surface* surface, + int src_x, int src_y, + int dst_x, int dst_y, + int w, int h) { gfx::Rect srcBounds(src_x, src_y, w, h); srcBounds = srcBounds.createIntersection(image->bounds()); @@ -198,4 +207,4 @@ void convert_image_to_surface(const Image* image, const Palette* palette, } } -} // namespace doc +} // namespace app diff --git a/src/app/util/conversion_to_surface.h b/src/app/util/conversion_to_surface.h new file mode 100644 index 000000000..c7e527da7 --- /dev/null +++ b/src/app/util/conversion_to_surface.h @@ -0,0 +1,33 @@ +// Aseprite +// Copyright (c) 2020 Igara Studio S.A. +// Copyright (c) 2001-2014 David Capello +// +// This program is distributed under the terms of +// the End-User License Agreement for Aseprite. + +#ifndef APP_UTIL_CONVERSION_TO_SURFACE_H_INCLUDED +#define APP_UTIL_CONVERSION_TO_SURFACE_H_INCLUDED +#pragma once + +namespace doc { + class Image; + class Palette; +} + +namespace os { + class Surface; +} + +namespace app { + + void convert_image_to_surface( + const doc::Image* image, + const doc::Palette* palette, + os::Surface* surface, + int src_x, int src_y, + int dst_x, int dst_y, + int w, int h); + +} // namespace app + +#endif diff --git a/src/doc/CMakeLists.txt b/src/doc/CMakeLists.txt index 2b2f5492a..c603b352a 100644 --- a/src/doc/CMakeLists.txt +++ b/src/doc/CMakeLists.txt @@ -31,7 +31,6 @@ add_library(doc-lib cels_range.cpp color.cpp compressed_image.cpp - conversion_to_surface.cpp document.cpp file/act_file.cpp file/col_file.cpp @@ -70,10 +69,7 @@ add_library(doc-lib tags.cpp user_data_io.cpp) -# TODO Remove 'os' as dependency and move conversion_to_surface.cpp/h files -# to other library/layer (render-lib? new conversion-lib?) target_link_libraries(doc-lib - laf-os laf-gfx - fixmath-lib - laf-base) + laf-base + fixmath-lib) diff --git a/src/doc/conversion_to_surface.h b/src/doc/conversion_to_surface.h deleted file mode 100644 index 5db45e679..000000000 --- a/src/doc/conversion_to_surface.h +++ /dev/null @@ -1,25 +0,0 @@ -// Aseprite Document Library -// Copyright (c) 2001-2014 David Capello -// -// This file is released under the terms of the MIT license. -// Read LICENSE.txt for more information. - -#ifndef DOC_CONVERSION_TO_SURFACE_H_INCLUDED -#define DOC_CONVERSION_TO_SURFACE_H_INCLUDED -#pragma once - -namespace os { - class Surface; -} - -namespace doc { - class Image; - class Palette; - - void convert_image_to_surface(const Image* image, const Palette* palette, - os::Surface* surface, - int src_x, int src_y, int dst_x, int dst_y, int w, int h); - -} // namespace doc - -#endif