Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.061 c
2-1274176208
Petr
2010-05-18 13:50
2010.08.27
Работа с ADO


2-1273230896
romario
2010-05-07 15:14
2010.08.27
Не работает функция trim


2-1274083814
Сид
2010-05-17 12:10
2010.08.27
TDBLookupComboBox для редактирования поля


15-1268039734
Vovka
2010-03-08 12:15
2010.08.27
Виртуальная клавиатура и генератор паролей


15-1264942022
Константинов
2010-01-31 15:47
2010.08.27
Безопасность ПК





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский