Мне не нравится что одни события нужно обрабатывать внутри SDL_PoolEvent()
например SDL_MOUSEWHEEL, а другие можно после обновления пула узнать через SDL_MouseState()
,SDL_KeyboarState()
Но в цикле пула например мышку мы не можем обрабатывать как нажатую постоянно если нет иных эвентов, но можем вне цикла узнавая через State. Как то оно некрасиво, сначала попытался налабать обёрток что бы избавится от цикла эвентов забирая последние события, но тогда происходят скачки если была большая очередь событий, затем я попробовал вообще всё впихнуть в цикл пула, но тогда приходится спавнить треды что бы продолжать обрабатывать мышку если она нажата, но затёр этот ад по итогу.
Вот типичная ситуация из Corange
Свободная камера должна быть вне эвент цикла иначе не реализовать плавное движение https://github.com/orangeduck/Corange/blob/master/src/entities/camera.c#L77 Орбитальная же камера должна находится в евент цикле для корректной работы https://github.com/orangeduck/Corange/blob/master/src/entities/camera.c#L44
Может я конечно мудрю, но, блин, вот эстетически не хочется обрабатывать одно событие в одном месте и его же, но по другому в другом, как пример это нажатие мышки в режимах эвент нажатия и станус нажатия. Может есть обёртки какие приводящие это безобразие в приличный вид, хотя бы посмотреть как сделано, оверхеда большого тоже не хочется.