LINUX.ORG.RU

История изменений

Исправление X512, (текущая версия) :

Не было в 85-м вычислительной мощности под дополнительный экранный буфер. И в 95-м почти не было.

В играх на DirectDraw так делали и ничего.

Не 85-й год, времени для отрисовки хватит в большинстве случаев.

И опять можно вспомнить про то, что Линукс — не ОС реального времени. Композиторы пишут так, что в случае если что-то не успеет, то кадр будет пропущен и будет показано содержимое предыдущего кадра. В wlroots и dwm.exe вроде так. Во времена без композитора была аппаратная команда видеокарты копирования части видеобуфера или между несколькими видеобуферами.

Это всё прекрасно и замечательно, но так как под иксами тулкиты выполняют вывод в экранную поверхность ОДНОЙ командой, то там и костыль в виде EndPaint не нужен.

Нужен хотя бы для того, чтобы знать когда присылать сообщение о следующей перерисовке.

это его официальное, документированное предназначение

Не все замыслы разработчиков попадают в официальную документацию. И ими всё равно рекомендовалось пользоваться в WM_PAINT.

Ну во времена Windows 1.0 другим способом организовать отрисовку не представлялось возможным.

Можно было просто сделать GetDC(wnd) и планировать рисование самому. Некоторые кривые программы так делали. Жёсткой необходимости в BeginPaint/EndPaint тогда не было.

Исходная версия X512, :

Не было в 85-м вычислительной мощности под дополнительный экранный буфер. И в 95-м почти не было.

В играх на DirectDraw так делали и ничего.

Не 85-й год, времени для отрисовки хватит в большинстве случаев.

И опять можно вспомнить про то, что Линукс — не ОС реального времени. Композиторы пишут так, что в случае если что-то не успеет, то кадр будет пропущен и будет показано содержимое предыдущего кадра. В wlroots и dwm.exe вроде так.

Это всё прекрасно и замечательно, но так как под иксами тулкиты выполняют вывод в экранную поверхность ОДНОЙ командой, то там и костыль в виде EndPaint не нужен.

Нужен хотя бы для того, чтобы знать когда присылать сообщение о следующей перерисовке.

это его официальное, документированное предназначение

Не все замыслы разработчиков попадают в официальную документацию. И ими всё равно рекомендовалось пользоваться в WM_PAINT.

Ну во времена Windows 1.0 другим способом организовать отрисовку не представлялось возможным.

Можно было просто сделать GetDC(wnd) и планировать рисование самому. Некоторые кривые программы так делали. Жёсткой необходимости в BeginPaint/EndPaint тогда не было.