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

Вниз

как избавиться от мерцания?   Найти похожие ветки [GDI]

 
Creative   (2006-04-28 14:10) [0]

WM_PAINT:
      begin
       DC:=BeginPaint(hwnd, PS);
       SetRect(R, 0,0, 200, 200);
       FillRect(DC, R, COLOR_WINDOW);
       case Color of
       0:
       begin
       Bmp:= TBitmap.Create;
       Bmp.Handle:= LoadBitmapFromFile("F_01.bmp");
       DrawTransparentBmp(DC, 0, 0, Bmp, $FFFFFF);
       end;
       1:
       begin
       Bmp:= TBitmap.Create;
       Bmp.Handle:= LoadBitmapFromFile("F_02.bmp");
       DrawTransparentBmp(DC, 0, 0, Bmp, $FFFFFF);
       .......
       end;

Получается простенький мультик из произвольного количества кадров. Так как битмапы выводятся с прозрачным фонов, то перед прорисовкой каждого кдра на месте выводя рисуется прямоугольник цвета фона окна. Но при запуске все это дело ужасно мерцает. Как от этогоизбавиться? (NB: если выводить битмапы с фоном - все смотрится очень гладко и без мерцания).

PS: Если можно, не отвечайте в духе "бросай рисовать на GDI, переходи на OpenGL".


 
MBo ©   (2006-04-28 15:04) [1]

Не нужно делать долгие операции в WM_PAINT - хотя это и накладно, возможно, стоит загружать битмапы один раз.
Кроме того, что делается в WM_ERASEBKGND?


 
Creative   (2006-04-28 15:16) [2]

> MBo ©   (28.04.06 15:04) [1]
> Кроме того, что делается в WM_ERASEBKGND?

не могли бы вы пояснить это свое замечание?


 
KygECHuK ©   (2006-04-28 15:28) [3]

Попробуй сделать ещё один Bitmap под буффер и в него сначала рисовать задний фон анимации, а затем новое изображение. И за один раз вывести содержимое буффера.


 
Eraser ©   (2006-04-29 01:53) [4]


> Creative   (28.04.06 15:16) [2]
>
> > MBo ©   (28.04.06 15:04) [1]
> > Кроме того, что делается в WM_ERASEBKGND?
>
> не могли бы вы пояснить это свое замечание?

скорее всего грабли именно в этом. Надо просто перекрыть это сообение и ничего не выполнять при его вызове.
Как инициируется прорисовка кадра?



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

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

Наверх




Память: 0.45 MB
Время: 0.041 c
4-1146230527
Asics777
2006-04-28 17:22
2006.08.20
Проассоциировать разные форматы с добавлением своих иконок


2-1154084698
SerJaNT
2006-07-28 15:04
2006.08.20
TBitmap to TGraphic


15-1153814754
Pazitron_Brain
2006-07-25 12:05
2006.08.20
Можно соединить КПК с


15-1153500115
Rgv54
2006-07-21 20:41
2006.08.20
Проблема с WordXP


2-1154097089
miSTER-TWISTER
2006-07-28 18:31
2006.08.20
загрузить комп





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