Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

DirectX поможет?


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

DirectX поможет?


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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

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


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


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

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


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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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


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

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


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


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

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


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

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


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

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


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

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


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

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


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

2puky:

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


 
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.


 
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 вся ветка

Форум: "KOL";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.031 c
1-1082308700
Relaxxx
2004-04-18 21:18
2004.05.09
Очень хочу нацчится делать коасивое меня, в стиле OfficeXP


3-1081883886
Серг
2004-04-13 23:18
2004.05.09
Путь к сетевой БД


4-1079608687
boa
2004-03-18 14:18
2004.05.09
Как программно узнать, что сервер НТ является терминал-сервером?


3-1081458389
Igoryok
2004-04-09 01:06
2004.05.09
Как вызвать функцию из Access


9-1071390469
Nvart
2003-12-14 11:27
2004.05.09
Крестики-нолики





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский