Open kildin opened 7 years ago
примерно так и рисуется - в конфигурации minimal или если OpenGL не удалось инициализировать. С OpenGL вероятно тоже что-то отжирается для каждого нового окна - там создаются контексты.
Вадим, и еще один связанный вопрос. При ресайзе окна пользователем, например со 100x100 на 200x200 будет последовательно вызвано в теоретическом сферическом вакууме 200 изменений размера буфера-массива (понятно, что по факту меньше)? Или он создается один раз под максимальное разрешение?
будет ресайз, возможно, не 200 раз а меньше
Возможно ли добавить в createWindow() дополнительное значение WindowFlag, чтобы подчиненное окно "существовало" только в пределах родительского окна: изменяло размер, перемещалось, сворачивалось. То есть по сути сделать поддержку MDI интерфейса. И второй связанный вопрос. Я предполагаю, что при программной отрисовке (а может быть и c OpeenGL) на каждое окно создается соответствующий пиксельный буффер-массив. Для HD разрешения это будет 1920x1080x4, т.е. 8 с копейками мб под каждое окно. И если одна программа открывает 30 окон, потребуется порядка 250 мегабайт памяти. Отсюда есть предложение в MDI интерфейсе использовать "самодельную" отрисовку дочерних окон, то есть это будут не полноценные системные окна, а виджеты-контейнеры, отрисовывающиеся по той же схеме, что и остальные контроллы. Только с возможностью перемещения, изменения размера и сворачивания. Тогда, любое кол-во дочерних окон будет размещаться внутри одного главного окна и для отрисовки будет достаточно одного общего буфера, что может кардинально решить проблему использования памяти. Или я не правильно понял работу UI в вопросе программной отрисовки?