Цитата: "
собственно можно конечно расчитывать буфер разово при изменении и выводить при перерисовке и изменении целиком буфер. Подумаю на досуге, но явно не в самое ближнее время."
Попробую что-то предложить ...
В общем-то требуется только
- изменить алгоритм отрисовки ползунка;
- изменить алгоритм обработки клика мыше на ползунке;
Для простоты предполагаю, что
- ползунок имеет размер в 128 точек по вертикали и 5 точек по горизонтали;
- при инициализации добавлены 3 RGB-буфера соответствующего размера (5x128);
При
отрисвке каждого ползунка:
- заполняется фон, (возможно при перерисовке всего окна не нужен)
-
рассчитываются буферы на основании текущего цвета,
-
отображаются буферы в виде соотвтетствующих вертикальных линий,
- рисуется всё остальное.
При
каждом клике на ползунок (без перерисовки всего окна):
- заполняется фон
всех трёх ползунков(тем самым стирая весь рисунок ползунка);
- рассчитывается новый текущий цвет и положение ползунка;
-
рассчитываются буферы на основании текущего цвета,
-
отображаются буферы в виде соотвтетствующих вертикальных линий,
- рисуется всё остальное (
для всех 3-х ползунков).
...
Ну примерно так
...