better smart ptr owner semantic
This commit is contained in:
parent
494b638e2c
commit
f78fa82ae8
|
@ -16,7 +16,7 @@ namespace bwidgets
|
||||||
|
|
||||||
[[nodiscard]] auto aa(const Color&, int, float) noexcept -> Color;
|
[[nodiscard]] auto aa(const Color&, int, float) noexcept -> Color;
|
||||||
[[nodiscard]] auto filled_circle(const Color&, int resolution,
|
[[nodiscard]] auto filled_circle(const Color&, int resolution,
|
||||||
std::shared_ptr<Renderer>, int aa_pixels = 3)
|
Renderer*, int aa_pixels = 3)
|
||||||
-> std::shared_ptr<Texture>;
|
-> std::shared_ptr<Texture>;
|
||||||
void set_pixels_color(
|
void set_pixels_color(
|
||||||
Texture*,
|
Texture*,
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace bwidgets
|
||||||
[[nodiscard]] virtual auto size() const noexcept -> Size = 0;
|
[[nodiscard]] virtual auto size() const noexcept -> Size = 0;
|
||||||
|
|
||||||
virtual auto render() -> Widget* final;
|
virtual auto render() -> Widget* final;
|
||||||
virtual auto renderer(const std::shared_ptr<Renderer>&) -> Widget* final;
|
virtual auto renderer(std::shared_ptr<Renderer>) -> Widget* final;
|
||||||
virtual auto viewport(const SDL_Rect&) -> Widget* final;
|
virtual auto viewport(const SDL_Rect&) -> Widget* final;
|
||||||
[[nodiscard]] virtual auto viewport() const -> const SDL_Rect& final;
|
[[nodiscard]] virtual auto viewport() const -> const SDL_Rect& final;
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace bwidgets
|
||||||
|
|
||||||
virtual ~FontHandler() noexcept = default;
|
virtual ~FontHandler() noexcept = default;
|
||||||
|
|
||||||
virtual inline auto font(const std::shared_ptr<Font>& f) -> FontHandler* final
|
virtual inline auto font(std::shared_ptr<Font> f) -> FontHandler* final
|
||||||
{
|
{
|
||||||
if (f != nullptr
|
if (f != nullptr
|
||||||
&& (f != _font || f->family_name != _font->family_name
|
&& (f != _font || f->family_name != _font->family_name
|
||||||
|
|
|
@ -4,10 +4,10 @@ using namespace bwidgets;
|
||||||
|
|
||||||
const Size Layout::default_margins {8, 8};
|
const Size Layout::default_margins {8, 8};
|
||||||
|
|
||||||
auto Layout::add_widget(const std::shared_ptr<Widget>& widget_ptr) -> Layout*
|
auto Layout::add_widget(std::unique_ptr<Widget> widget_ptr) -> Layout*
|
||||||
{
|
{
|
||||||
widget_ptr->renderer(_renderer);
|
widget_ptr->renderer(_renderer);
|
||||||
_widgets.emplace_back(widget_ptr);
|
_widgets.emplace_back(std::move(widget_ptr));
|
||||||
_update_layout(_viewport);
|
_update_layout(_viewport);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ auto Widget::render() -> Widget*
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto Widget::renderer(const std::shared_ptr<Renderer>& r) -> Widget*
|
auto Widget::renderer(std::shared_ptr<Renderer> r) -> Widget*
|
||||||
{
|
{
|
||||||
if (r != _renderer) {
|
if (r != _renderer) {
|
||||||
_handle_renderer_change(r);
|
_handle_renderer_change(r);
|
||||||
|
|
Loading…
Reference in New Issue