Комментарии 4
редкостный гавнокод
Напоминает BolgenOS)
Мне интересно, а почему вы пишите
ApplicationPlatformBackend::platform_api()каждый раз вместо того чтобы просто сохранить указатель в переменной и использовать его? Это прям какой-то финальный босс DRY получается))
Да и в целом меня пугает какие все названия длинные и уж чересчур явные. Местами вовсе лишние повторения (к примеру в ApplicationPlatformBackendMouseButtonBegin все до Begin явно не нужно, там и так уже все понятно по контексту).
Да, вы правы по поводу повторяющихся вызовов, эта часть нуждается в рефакторинге. По поводу длинных имен в перечислениях: дело в том, что в одной области видимости два разных перечисления не могут иметь поля с одинаковыми названиями. В C++, конечно, есть строгие перечисления - enum class, но они не позволяет неявно преобразовывать значение поля перечисления в целое число. Поэтому, пришлось выкручиваться длинными названиями.

Как я делал компактную библиотеку для создания приложений с графическим интерфейсом на языке C++. Часть 2