LINUX.ORG.RU

Избранные сообщения koi8-r

Что быстрее (XGetImage+XPutImage) VS XCopyArea VS (XShmGetImage + XShmPutImage) VS GTK+?

Форум — Development

Доброго времени суток.

Написал программу, которая содержимое одного окна отображает в другом. Допустим у меня есть Xlib'ный тип Window, есть переменные этого типа, SrcWin и TrgWin, для удобства у обоих один и тот же размер (683*752), который никогда не изменится, одна глубина изображения. SrcWin это окно какого то реального приложения.

Программа раз в 40мс копирует изображение из SrcWin в TrgWin, с помощью XGetImage и XPutImage, на i5-3337U программа берёт почти 20% процессорного времени, процесс Xorg загружает проц примерно на столько же.

Программа работает как ожидалось, однако меня сильно напрягает высокая нагрузка на процессор.

Три вопроса: 1) Альтернативы, указанные в названии темы, могут значительно снизить нагрузку на процессор? Просто было бы здорово, не копировать данные, а отображать буфер пикселей одного окна в соответствующий буфер другого (скопировать значение указателя на область памяти с изображением которое надо отобразить).

2) Читал, что в некоторых тулкитах типа QT, есть такая штука как window-damage event, которую я понимаю как событие, которое появляется, если хотя бы один пиксель был в окне изменён, правильно ли я понимаю суть этого события, и есть ли аналог в Xlib? А то подход, когда надо гонять данные туда сюда каждые 40мс, даже если ничего не поменялось, не выглядит как лучшее решение данной задачи.

3) Может кто в курсе, как работает window-switcher(alt+tab) в KDE? Он ведь отображает содержимое окон в реальном времени, ну или во всяком случае оперативно реагирует на изменения окон которые он отрисовывает, и при этом не напрягает процессор.

 , , , ,

awpe
()

Выбор микроконтроллера

Форум — Development

Нужен микроконтроллер для управление станком.
Нужно чтоб имел:

  • 9 входов (0 или 1 на входе)
  • 5 выходов (1 или 0 на выходе)
  • выход на 2-сегментный LED индикатор (или дополнительно 5 выходов, к ним подцепится LED-индикатор через двоично-десятичный дешифратор)
  • возможность управлять ШИМ-контроллером.
  • возможность писать на C.
  • желательно чтоб было возможно купить уже собранный микроконтроллер без необходимости самому делать плату под него.
  • желательно наличие эмулятора.

По размер внутренней памяти не сориентирую.

Какие возможны варианты?

 

ymuv
()