Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / C++ Взаимодействие интерфейсов на уровне реализаций. (4 стр)

C++ Взаимодействие интерфейсов на уровне реализаций. (4 стр)

Поделиться

Страницы: 1 2 3 4 5 6 Следующая

innuendoПостоялецwww10 ноя. 20178:26#45
kas
> помоему в рендере все как раз тривиально. динамический полиморфизм, а
> следовательно и интерфейсы не нужны, волевым решением. и все проблемы уходят.

ишь ты какой...

+ Показать

а теперь расскажи как этот рендер быстро можно адаптировать и как всё бывает тривиально

Правка: 10 ноя. 2017 11:15

loysoПостоялецwww10 ноя. 20178:39#46
Suslik
> теряется вся идея ооп
Вообще вся эта тема - она как та задача про "сложить 4 равносторонних треугольника из 6 спичек". Пока на новый метауровень не выйдешь (в дополнительное измерение 3d) - одно говно получается.
innuendoПостоялецwww10 ноя. 20178:40#47
Suslik
> > Нет ничего общего. Unity/ue4 - это как раз те самые "runtime динамизирующие
> > техники"
> и они всегда поддерживают кэширование связей между ресурсами если не этапе
> бандлинга(сборки ресурсов), то на этапе их загрузки.

нет, там же как наоборот, это всё в compile-time


> ещё я вовсе не разделяю энтузиазма автора относительно кодогенерации для всего
> подряд, так как считаю, что есть решения лучше

они лучше смотря в какой ситуации

loysoПостоялецwww10 ноя. 20178:45#48
innuendo
> там же как наоборот, это всё в compile-time
Да можно и без compile-time. Представь что у тебя в C++ коде есть view на объект и getters к data members.
И за getters может скрываться что угодно (llvm, cling, map<string, float>, struct + offset, mov qword ptr ds:[rax+18],r8 и т.д.)

Правка: 10 ноя. 2017 8:46

loysoПостоялецwww10 ноя. 20179:55#49
Suslik
Я кажется понимаю этот ментальный блок:
container.begin() - это ООП.
begin(container) - уже нет. (http://en.cppreference.com/w/cpp/iterator/begin)
loysoПостоялецwww10 ноя. 201710:00#50
Suslik
Плюс ментальный блок номер два: трудно поверить что object identity может быть столь многоликим.
stable int id, handle, git hash id, GameObject*, guid в xml, std::variant<Derived1*, Derived2*> и т.д.

Правка: 10 ноя. 2017 10:08

HybernaculumПостоялецwww10 ноя. 201710:34#51
loyso
> Вообще вся эта тема - она как та задача про "сложить 4 равносторонних
> треугольника из 6 спичек". Пока на новый метауровень не выйдешь (в
> дополнительное измерение 3d) - одно говно получается.
Да что ви говорите! )))
Изображение
kasПостоялецwww10 ноя. 201710:42#52
Hybernaculum
все ровно так и есть. или через жопу и искать красоту - или просто и аккуратно на новый уровень. очень наглядная иллюстрация
loysoПостоялецwww10 ноя. 201710:44#53
Hybernaculum
> Да что ви говорите!
Нашел предложение и Уел! :) Там добавляют "без пересечений", "без лишних фигур".
Я думал нас никто не читает :)
loysoПостоялецwww10 ноя. 201710:48#54
Hybernaculum
Вот все бы так вьелись в std::variant<Derived1*, Derived2*> !
innuendoПостоялецwww10 ноя. 201710:53#55
loyso
> Конечно оно работает только у Грэди Буча в книжке и не работает в реальном мире

а можно пример что не работает в реально мире... я вот знаю много ситуаций, когда школьники-студенты мудрили-мудрили фигачили-фигачили ... потом выяснялось что тоже самое было описано в GoF и нужно было просто почитать книжечку

innuendoПостоялецwww10 ноя. 201711:08#56
loyso
> Нашел предложение и Уел! :) Там добавляют "без пересечений", "без лишних
> фигур".

тетраэдер что ли ?

loysoПостоялецwww10 ноя. 201711:10#57
innuendo
> тетраэдер что ли ?
Бинго! Осталось разобраться в остальных словах :)
nonamezeroxПостоялецwww10 ноя. 201711:16#58
innuendo
> а теперь расскажи как этот рендер быстро можно адаптировать и как всё бывает
> тривиально

Видимо он имеет в виду как-то так.

https://github.com/RPCS3/rpcs3/tree/master/rpcs3/Emu/RSX

Правка: 10 ноя. 2017 11:20

SuslikМодераторwww10 ноя. 201712:22#59
loyso
> Но я помню что решения "вне C++" ты не приемлешь.
всё правильно помнишь

loyso
> метауровень
где-то отсюда началась философия и ты меня потерял

loyso
> люс ментальный блок номер два: трудно поверить что object identity может быть столь многоликим.
> stable int id, handle, git hash id, GameObject*, guid в xml, std::variant<Derived1*, Derived2*> и т.д.
у меня "ментальный блок" достаточно простой: я работаю в команде и не намерен писать код, за который они меня захотят анально покарать. чем проще, безопаснее и эффективнее код — тем лучше. "просто выйди на новый уровень, выкинь C++ и используй guid в xml" — это совершенно точно не проще, не эффективнее и едва ли безопаснее. я понимаю, что ты мыслишь очень широкими терминами о прекрасном, но у меня задачи, видать, более приземлённые — чтобы через месяц оно работало и через два года, читая этот код, люди как можно меньше матерились.


kas
> очевидно нет. https://gist.github.com/fatkas/79e401d2a44507235cee4f3ae5f0cf9a продолжать?
продолжать, конечно. только не выкручивайся, а покажи нормальный мясо-код, как это дело будет транслировать абстрактные Texture в аргументы конкретных GAPI-зависимых вызовов. и не забывай, что мультирендер как бы по умолчанию подразумевает возможность смены GAPI в рантайме.

Правка: 10 ноя. 2017 12:28

Страницы: 1 2 3 4 5 6 Следующая

/ Форум / Программирование игр / Общее

2001—2017 © GameDev.ru — Разработка игр