onion_skin_layer.hpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Flexlay - A Generic 2D Game Editor
  2. // Copyright (C) 2002 Ingo Ruhnke <grumbel@gmx.de>
  3. //
  4. // This program is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // This program is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU General Public License
  15. // along with this program. If not, see <http://www.gnu.org/licenses/>.
  16. #ifndef HEADER_FLEXLAY_ONION_SKIN_LAYER_HPP
  17. #define HEADER_FLEXLAY_ONION_SKIN_LAYER_HPP
  18. #include "editor_map.hpp"
  19. class OnionSkinLayerImpl;
  20. /** The OnionSkinLayer is used to render one or multiple EditorMap
  21. renderings in a transparent fashion onto another EditorMap. This
  22. is usefull for animation programms and the like where one might
  23. need to see the previous or next frames together with the current
  24. frame. Might also be usefull for games which have shadow worlds,
  25. which reassamble the normal world in a darker fashion. */
  26. class OnionSkinLayer
  27. {
  28. public:
  29. /** FIXME: Should probally be CL_Rect instead of just
  30. width/height */
  31. OnionSkinLayer(int width, int height);
  32. OnionSkinLayer(Layer layer);
  33. /** Adds an EditorMap to the OnionSkin */
  34. void add_map(EditorMap editor_map, const CL_Color& color);
  35. void clear();
  36. /** Refreshes the content of the OnionSkin */
  37. void update();
  38. bool is_null() const { return !impl.get(); }
  39. Layer to_layer();
  40. private:
  41. std::shared_ptr<OnionSkinLayerImpl> impl;
  42. };
  43. #endif
  44. /* EOF */