Пишу на C++ и использую SDL2 и тут есть SDL_Render который привязан к каждому окну. Раньше у меня было приложение с одним окном и как-то не думал об этом. У меня был общий для всех рисуемых объектов класс Object в которым и был указатель на SDL_Render. И я просто передавал при создании объекта SDL_Render текущего окна да и все.
Но вот решил сделать возможность создания нескольких окон.
Я вижу 2 решений данной ситуации:
1) Принимать рендер в конструкторе.
Только одна проблема надо для каждого объекта передавать этот рендер. Что не хочется и выглядит как то не очень.
2) Передавать рендер при вызове метода OnRender.
Тут только одна проблема: при создании текстур требуется рендер, а они создаются вне метода OnRender.
Может есть еще варианты решения? Как рендер реализован например в игровых движках или системах типа WPF. Просто уже ранее использовал WPF и не видел там никаких рендеров.