Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизЕсть ли способ корректно рисовать анимацию под терминалкой ? Найти похожие ветки
← →
XXL (2010-05-19 16:16) [0]Собственно сабж.
Столкнулся с тем, что применяемые способы вывода анимации (вроде TAnimate или RxGIFAnimator) под терминалкой или ремоут-десктопом начинают глючить, дёргаются, некорректно перерисовывают фон и т.п.
Применял ли кто анимацию средствами GDI, которая бы стабильно работала в таких ситуациях ?
← →
Игорь Шевченко © (2010-05-19 17:07) [1]Зачем насиловать RDP ?
← →
Eraser © (2010-05-19 19:22) [2]> [0] XXL (19.05.10 16:16)
отключи кэширование в РДП - общая производительность упадет, зато анимация будет четче работать.
← →
Суслик__ (2010-05-19 20:10) [3]понимаю, что не отвечаю на вопрос, но замечу, что из рекомендаций МС по поводу разработки терминалов они даже double buffer не советуют использоваться. все надо делать через GDI прямо на канве.
тогда это работает оптимально.
← →
XXL (2010-05-20 09:40) [4]
> Игорь Шевченко © (19.05.10 17:07) [1]
> Зачем насиловать RDP ?
Хочу чтобы моя программа хорошо выглядела в любых условиях, почему нет ?
> Eraser © (19.05.10 19:22) [2]
Проблему стараюсь решить "вообще" - поэтому отключение кеширования только у меня не подходит.
← →
tesseract © (2010-05-20 12:14) [5]
> Хочу чтобы моя программа хорошо выглядела в любых условиях,
> почему нет ?
Потому что нагрузка на процессор и канал при анимации вырастает в десятки раз.
← →
Игорь Шевченко © (2010-05-20 14:04) [6]
> Хочу чтобы моя программа хорошо выглядела в любых условиях,
> почему нет ?
Это пожалуйста, даже доку написали
http://msdn.microsoft.com/ru-ru/library/aa383490(en-us,VS.85).aspx
и переводы по теме http://gunsmoker.blogspot.com/2010/04/blog-post.html
← →
XXL (2010-05-20 15:08) [7]
> tesseract © (20.05.10 12:14) [5]
> Потому что нагрузка на процессор и канал при анимации вырастает в десятки раз.
Ну и фиг с ним :) Хотя не думаю что маленькая анимация 32х32@25Гц способна сильно загрузить 100-мегабитку...
> Игорь Шевченко © (20.05.10 14:04) [6]
А вот за это Игорь Вам персональное Спасибо!
К сожалению не успеваю так оперативно отслеживать сайты и блоги :\
← →
Суслик__ (2010-05-20 17:00) [8]В тему вопрос. Вот у автора в статье http://gunsmoker.blogspot.com/2010/04/blog-post.html есть фраза
"
Мы используем оба, выбирая метод в зависимости от окружения. Для определения того, что вы запущены через удалённый рабочий стол - используйте вызов GetSystemMetrics(SM_REMOTESESSION).
"
У меня в TODO давно висит доработка - в удаленной сессии следовать рекомендациям MS и не делать двойную буферизацию.
Собственно вопрос - как одним махов в программе отключить повсеместно двойную буферизацию?
← →
han_malign (2010-05-20 18:46) [9]
> они даже double buffer не советуют использоваться
- я советую им вообще не пользоваться, скорость будет на порядок выше... Вопреки расхожему мнению - двойная буферизация на каждом WM_Paint - что и происходит при DoubleBuffered:= true - ни в коем случае не увеличивает производительность - единственно, подавляет мерцание от FillRect в TWinControl.WMEraseBkgnd... Это анахронизм из времен когда отрисовку графических примитивов можно было успевать пальцем отслеживать... А уж рисовать растры с DoubleBuffered - вообще криминал...
← →
Игорь Шевченко © (2010-05-20 22:13) [10]
> Собственно вопрос - как одним махов в программе отключить
> повсеместно двойную буферизацию?
написать процедуру, отключающую ее во всех местах программы, вызвать одним махом процедуру. Ты явно включаешь двойную буферизацию ? Тогда явно и выключай, а если явно не включаешь, то и не заботься.
← →
Суслик_ © (2010-05-21 00:54) [11]2Игорь.
Явно не включаю, поэтому, видимо, и не видел проблем, когда запустил 20 своих клиентов на терминале?
Я, был дело, разбирался с двойной буферизацией. Видимо, подзабыл. Действительно, она, видимо, изначально выключена...
← →
Германн © (2010-05-21 01:57) [12]
> Действительно, она, видимо, изначально выключена
Если бы это было иначе, не было бы на форумах такого количества советов её включить, а были бы редкие советы её выключить.
P.S. Количество запятых в твоих сегодняшних сообщениях Дима, превышает все разумные пределы. Советую брать пример с англоязычных. То бишь не ставить запятые вообще. Кроме вариантов типа "казнить нельзя помиловать". :)
← →
han_malign (2010-05-21 09:36) [13]Кстати об RDP - есть у меня смутное подозрение(после года разгребания протокола), что DDB(в отличие от DIB) - в RDP 5.2 попадет в Bitmap Cache(до 64х64) или Offscreen Bitmap Cache, и дальше нагрузка будет выражаться в передаче MemBlt Drawing Order(максимум 17 байт). Тогда как DIB будет каждый раз тупо целиком передаваться через Bitmap Update Order...
Так что аккуратнее с Dormant...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.068 c