Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

использоание BitBlt и CreateBitmap [D1, D2, D3, D4, D5, D6, Win95/98]


Winnie! ©   (2001-11-01 19:50:00) 

2001 DOS->GDI->DrectDraw->OpenGL
На дворе 2001, а я все под ДОС графику программирую. Нужно переходить

под Win32. Решил разобраться сначала с GDI, прежде чем переходить к

DrectDraw,OpenGL.

1.Мне нужно завести в памяти буфер, куда я буду рисовать свое

изображение, и откуда я его буду копировать на экран(в окно).НО,

насколько я знаю:

Еcли создавать буфер функцией CreateDibBitmap, то он будет иметь

простую структуру(3 байта RGB на пиксел, кажется?), поэтому туда легко

рисовать своими алгоритмами. Но ведь BitBlt требует что бы битовые

карты в SrcDC и DestDc имели совместимый формат, а вдруг DIB не

совместим с DC моего окна?

Если же создать буфер функцией CreateComptibleBitmap, то непонятно,

как он устроен и как туда рисовать (своими алгоритмами)?

2.BitBlt копирует карту бит из одного DC в другой. Получается, что

после создания DC своего окна я должен создать другой DC (SrcDC). От

какого HWND я его спрашивается, буду создавать и почему его не будет

видно на экране(т.е. как так сделать)?

Как связаны связаны DC и BitMap?
3.Что нужно делать с полученным идентификатором БитМэпа после вызова

Create[...]Bitmap?

Можно какой-нибудь простейший примерчик с Create[...]Bitmap и BitBlt,

вроде банального вывода движущегося квадрата в окошко (сначала

попиксельно в буфер, затем на экран)
(на любом языке, желательно под TASM32)

эти вопросы уже читал:
Отображение на форме графики из памяти (Ewgeniy [Анкета] [Отправить письмо] 31.10.01 09:39)
что является источником для функции API BITBLT (MIFI [Отправить письмо] 28.10.01 15:17)


Иван Шихалев   (2001-11-01 20:09:00) [1]

MemDC := CreateComatibleDC (...);
Bitmap := CreateDIBitmap (...);
OldBitmap := SelectObject (MemDC, Bitmap);
...................
BitBlt (...)
...................
Bitamp := SelectObject (MemDC, OldBitmap);
DeleteDC (MemDC);


Наверх

Титульная страница Поиск, карта сайта Написать письмо