Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

GDI Анимация в kol-e   Найти похожие ветки 

 
puky   (2003-11-07 22:13) [0]

Кто нибудь делал анимацию на коле? Без direct-a и OpenGl-a, только на gdi.


 
SPeller ©   (2003-11-08 06:47) [1]

Анимация разная бывает. Ты про какую именно?


 
puky   (2003-11-08 12:38) [2]

Перемещение и изменение размеров больших(800-600) картинок (5-20 штук).


 
SPeller ©   (2003-11-08 13:40) [3]

Тогда забудь про GDI.


 
puky   (2003-11-08 14:13) [4]

DirectX поможет?


 
Vladimir Kladov   (2003-11-08 15:41) [5]

Чушь. В оконном режиме директ-Х медленнее, чем GDI. Загрузите мой EmuZWin, и посмотрите, что он может в окне, развернутом на весь экран. Анимация идет 50 кадров в секунду без проблем.


 
puky   (2003-11-08 17:15) [6]

Хорошо, как тогда делать отрисовку/обновление картинки? по таймеру, в триде, в цикле?


 
SPeller ©   (2003-11-08 17:35) [7]

Тогда почему фильмы с DirectDraw-ускорением рисуются гораздо быстрее, чем без него?


 
Vladimir Kladov   (2003-11-08 18:03) [8]

а запустите фильм на видеокарте без ускорителя. Или просто на слабой карте, с 16 метрами на борту и меньше. Правда, сейчас уже слабой считают 32 метра и меньше :)

И вообще, я про оконный режим. Если в полном экране можно хотя бы выполнять отрисовку в теневую страницу, и потом делать обмен, то да, ускорение будет. А если нет, то откуда оно возьмется, ускорение? В оконном режиме эта операция недоступна. Может на новых картах это есть, на старых - точно нет.


 
SPeller ©   (2003-11-08 18:54) [9]


> Если в полном экране можно хотя бы выполнять отрисовку в
> теневую страницу, и потом делать обмен, то да, ускорение
> будет. А если нет, то откуда оно возьмется, ускорение? В
> оконном режиме эта операция недоступна. Может на новых картах
> это есть, на старых - точно нет.

На совсем старых картах - да, такая функция (overlay вроде бы) не доступна и прироста скорости, возможно, нет. Но почти на всех не сильно древних картах она есть. Там не важно оконный режим или нет - видеокарте нужно лишь цвет, поверх которого выводить нужное нам изображение. Я сам как-то ради прикола смотрел фильм в Paint"е :)


 
Gandalf ©   (2003-11-08 19:07) [10]

GDI может не так мало как кажется, это точно. А метод простой Draw :) Чтобы не моргало буферизируй. А вообще тебе скорей в форум игры надо.


 
puky   (2003-11-08 19:14) [11]

Так нет еще форума "Игры на Kol-e" :)


 
Gandalf ©   (2003-11-08 19:29) [12]

Есть просто игры - ничего KOL специфичного в целом тут нет.


 
puky   (2003-11-09 13:30) [13]


Чушь. В оконном режиме директ-Х медленнее, чем GDI. Загрузите мой EmuZWin, и посмотрите, что он может в окне, развернутом на весь экран. Анимация идет 50 кадров в секунду без проблем.

Можно пример отрисовки?


 
Vladimir Kladov   (2003-11-09 13:43) [14]

Хотя бы мой компонент для отрисовки GIF. Это на самом деле, мало имеет отношения к KOL. Это просто программирование графики. Хоть на чем, от ассемблера до бэйсика.


 
puky   (2003-11-09 13:56) [15]

Быстрее bitblt есть что-нибудь?


 
Gandalf ©   (2003-11-09 14:27) [16]

2puky:

Не сюда! В целом для GDI можно сказать что нет.


 
Sapersky ©   (2003-11-11 10:52) [17]

перемещение и изменение размеров больших(800-600) картинок (5-20 штук)

DirectX потянет такое в случае наличия приличной видеокарты (с ходу сказать сложно, но, наверное, начиная с TNT). GDI - не потянет в любом случае. Выбирайте :)

В оконном режиме директ-Х медленнее, чем GDI.

Тормоза в оконном режиме DirectDraw могут быть в том случае, если задний буфер (теневая страница, как вы его называете), не влезает в видеопамять, помещается в системную и на каждом кадре перегоняется через шину (скорее всего PCI, AGP-карты обычно имеют больше памяти) в видеокарту.
Например, если этой памяти 1 мб и установлено разрешение 800*600*16. Сколько остаётся под буфер - считайте сами. В этом случае лучше не создавать буфер, а рисовать прямо на первичную поверхность. В параметрах Blt есть специальный флаг для устранения расхождения (DDBLT_NOTEARING или как-то так). Я пробовал - вполне прилично, особого мерцания нет.

Ещё вариант - если задний буфер поместился в видеопамяти, но вы его блокируете на каждом кадре (Lock) и заполняете вручную. Это медленно даже на GeForce, DirectDraw просто на такое не рассчитан. Он рассчитан на аппаратные манипуляции с изображениями, а если нужно часто блокировать - создавайте поверхность в системной памяти и потом оттуда аппаратно (если видео может) перегоняйте в видеопамять. Конечно, если видеокарта стоит на PCI - это будет медленно; и GDI, ВОЗМОЖНО, будет быстрее. Но у какого процента пользователей остались PCI-карты с 1 Мб памяти? Если вы в их рядах - тогда конечно :), но можно же подумать и об остальных 99%...

Если в полном экране можно хотя бы выполнять отрисовку в теневую страницу, и потом делать обмен, то да, ускорение будет. А если нет, то откуда оно возьмется, ускорение?

Даже PCI-ные S3 Trio и Virge (да и любая другая совместимая с windows видеокарта) могут хранить поверхности в видеопамяти (если её хватает) и делать аппаратный блиттинг. Что в полноэкранном, что в оконном режиме. Проблемы могут быть по указанным ранее причинам.

На совсем старых картах - да, такая функция (overlay вроде бы) не доступна и прироста скорости, возможно, нет. Но почти на всех не сильно древних картах она есть.

Точно, на Trident 3D, на Rage 3D есть - и та, и другая порядочное барахло (у первой "3D" фактически только в названии, у второй - на уровне Voodoo 1), а вот поди ж ты... На TNT и далее - само собой. К тому же оверлеи нужны (точнее, фактически могут использоваться) только для фильмов или режима overlay mode WinAmp"овского AVS.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.106 c
8-1076356910
Maksss
2004-02-09 23:01
2004.04.11
сходство в картинках


8-1076250934
Gav
2004-02-08 17:35
2004.04.11
Как получить осциллограмму записанного звука?


7-1080199384
ламерламер
2004-03-25 10:23
2004.04.11
FormClass из строки


8-1071338095
SliderCrash
2003-12-13 20:54
2004.04.11
Проблема с алгоритмом.


1-1082589588
Demi
2004-04-22 03:19
2004.04.11
Что такое SetWallpaper