Чертаем графика в прозорец. Актуализираме кривите на всеки 50 милисекунди със стойностите, получени от хардуер, например сензори. Трябва да покажем стойностите в графичен формат. Така че ние актуализираме графиката на всеки 50 ms. Това създава проблем с трептене. Пишем кода в X11. Има ли начин да се избегне трептенето в графичното чертане в X11. Благодаря предварително.
Как да избегнете трептене в графични чертежи с помощта на X11
Отговори (2)
Ключовата дума тук е двойно буфериране. Но не знам дали x11 предлага това готово или трябва да го внедрите сами, така че ще оставя търсенето в Google за вас;)
Освен това може да помислите за по-рядко актуализиране. Може би е достатъчно да актуализирате с период от 250, 500 или 1000 ms? Това зависи от вашия случай на употреба, разбира се.
Моля. Хм. Е, в такъв случай бих проверил настройките на X-Server за машините, които ще го изпълняват. Наскоро получих нова видеокарта и открих, че приложенията на openGL изпълняват по-голям брой кадри/секунда, но качеството е ужасно - имаше видимо "разкъсване" на изображението - постоянно можеше да се види комбинация от последния и текущи кадри по едно и също време. След като активирах изчакайте VSynch в настройките на XServer, проблемът изчезна. Обаче звучи по-скоро като проблем, който съм срещал под MS windows в миналото. В този конкретен случай, всеки път, когато изпращах ново изображение към контролата, windows преначертаваше фона на прозореца/диалоговия прозорец, който беше под прозореца на изображението. Така че, вместо просто да замени старото изображение, то ще изтрие изображението до стандартно сиво, преди да продължи да заменя изображението (grrr). Ако имате достъп до достатъчно бърз софтуер за запис на екрана, можете да записвате видео на приложението, докато работи, след което да възпроизвеждате видеото кадър по кадър. Като алтернатива може да получите известно сцепление, ако търсите „деактивиране на преначертаване/изтриване на фона на прозорец X11“ или нещо подобно. :)
Предполагам, че ще зависи и от това дали сте използвали или не Gtk+, wxWidgets или просто суров X11 код.