Skip to content

Commit

Permalink
Merge branch 'dev' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
castle055 committed Apr 28, 2024
2 parents dc51085 + c0194b6 commit df191f2
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 91 deletions.
21 changes: 4 additions & 17 deletions include/graphics/vg.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,33 +28,20 @@ namespace cyd::ui::graphics::vg {
};

struct vg_fragment_t {
std::vector<vg_element_t*> elements{};

~vg_fragment_t() {
clear();
}
std::vector<std::unique_ptr<vg_element_t>> elements{};

void clear() {
for (auto &item: elements) {
delete item;
}
elements.clear();
}

bool empty() const {
return elements.empty();
}

void append(std::initializer_list<vg_element_t*> _elements) {
for (const auto &item: _elements) {
elements.push_back(item);
}
}

template<typename... T>
void append(T... _elements) {
static_assert((std::derived_from<T, vg_element_t> && ...), "Elements must derive from vg_element_t.");
(elements.push_back(new T{_elements}), ...);
void append(T&&... _elements) {
static_assert((std::derived_from<std::remove_reference_t<T>, vg_element_t> && ...), "Elements must derive from vg_element_t.");
(elements.emplace_back(new std::remove_reference_t<T>{std::forward<T&&>(_elements)}), ...);
}
};

Expand Down

0 comments on commit df191f2

Please sign in to comment.