Size: a a a

2021 February 16

I

Ioann_V in supapro.cxx
Serhii Herashchenko
base_component->mesh_component->circle_mesh_component

mesh_component
{
   index;
   virtual render(renderer);
}

circle_mesh_component
{
   radius;
   points_count;
   render(renderer)
   {
       points = calculate_points_parametric();
       renderer->draw_primitives(RENDER_PRIMITIVE_LINES, points, index);
   }
}

entity
{
   vector<base_component> components;
}

render_system
{
   renderer;
   render_entity(entity)
   {
       mesh = entity.getComponent<MeshComponent>();
       mesh.render(renderer);
   }
}


вот так на псевдо псевдо коде
circle_mesh_component - наследние меш компонента, да?
источник

SH

Serhii Herashchenko in supapro.cxx
Ioann_V
circle_mesh_component - наследние меш компонента, да?
+
источник

SH

Serhii Herashchenko in supapro.cxx
Ioann_V
entity.getComponent<MeshComponent>();


Вот это как раз Локатор Служб, вроде как.
ну это мало применимо к компонентам
источник

SH

Serhii Herashchenko in supapro.cxx
они не очень смахивают на службы)
источник

I

Ioann_V in supapro.cxx
ну вот так и выходит, что ты наследуешь рендер для круга, от индекс рендера. Но это не очень круто, потому что, в дальнейшем не дает реиспользовать рендер для круга без индекса
источник

I

Ioann_V in supapro.cxx
то есть наследование тут нужно, но наследовать надо за счет композиции в наследнике
источник

I

Ioann_V in supapro.cxx
композиции как раз простого рендера круга
источник

I

Ioann_V in supapro.cxx
вот такое решение и у меня
источник

SH

Serhii Herashchenko in supapro.cxx
шо
источник

SH

Serhii Herashchenko in supapro.cxx
зачем вообще наследовать рендер от чего-то?)
источник

I

Ioann_V in supapro.cxx
Не рендер, а компоненту
источник

I

Ioann_V in supapro.cxx
Считай что все это время, я под рендером подразумевал рендер_компонент
источник

SH

Serhii Herashchenko in supapro.cxx
если у тебя есть индекс, он должен уже быть везде
источник

O

Ofee in supapro.cxx
d7d1cd
Взял код одной из перегрузок, заменил noexcept на thow(), так как мой компиль не умеет в noexcept. В результате ошибка (в коде показана комментарием). std::remove_reference у меня в библиотеке есть. Могу прислать код нужной перегрузки.
Посоветуйте что-то.

https://godbolt.org/z/odno6P
Увы, мне сложно сказать, что является причиной ошибки. Можно взглянуть, конечно, как реализован std::remove_reference в вашей библиотеке, но не факт, что это что-либо прояснит
источник

SH

Serhii Herashchenko in supapro.cxx
нет такого понятия как рендер с индексом, и рендер без индекса
источник

SH

Serhii Herashchenko in supapro.cxx
Serhii Herashchenko
А вообще
посмотри в сторону sfml
источник

I

Ioann_V in supapro.cxx
Serhii Herashchenko
нет такого понятия как рендер с индексом, и рендер без индекса
Чего это нет то? Есть же. В играх то есть же UI и все остальное - так вот UI могут рисовать через дерево виджетов, а все остальное рисуют компонентами.
источник

I

Ioann_V in supapro.cxx
Два разных рендера
источник

SH

Serhii Herashchenko in supapro.cxx
Ioann_V
Чего это нет то? Есть же. В играх то есть же UI и все остальное - так вот UI могут рисовать через дерево виджетов, а все остальное рисуют компонентами.
да, вот только для рендера все равно как что рисуется
источник

SH

Serhii Herashchenko in supapro.cxx
если мы говорим про z-ordering
источник