Условно есть библиотека, которая для рисования использует функции PutPixel(x, y, rgb) и FillLine(y, x1, x2, rgb). Это менять нельзя.
Нужно совместить это с выводом в голое окно X11. Если вызывать XDrawPoint() на каждый пиксель, то все медленно и печально, оно и понятно, что так делать не стоит.
Хочется иметь локальную копию буфера, делать модификации в этой копии, а потом либо целиком, либо наименьшим прямоугольником загружать имения на сервер для отображения.
Как такое правильно делать в X11/XCB?