Re: загрузка картинок напрямую в DIRECTDRAWSURFACE
От: adontz Грузия http://adontz.wordpress.com/
Дата: 01.11.01 14:05
Оценка:
Здравствуйте netch, Вы писали:

N>Hi All,

N>Заранее благодарен.

Судя по коду ты юзаешь DX7 (если не прав поправь)

Его SDK у меня под рукой нет (перешёл на DX8, а место на винте экономлю), но вот что я помню так:
Если загружаешь из BMP файла то лучше взять для обоих hDC и скопировать через BitBlt (геморроя меньше)

HBITMAP hBitmap = LoadImage(hInstance,);
BITMAP  bmp;
HDC     hDCsurface;
HDC     hDCbitmap = CreateCompatibleDC(NULL);

GetObject((HGDIOBJ)hBitmap,sizeof(bmp),(LPVOID)&bmp);

lpDirectDraw->CreateSurface(......);

SelectObject(hDCbitmap,hBmp);
lpDirectDrawSurface->GetDC(&hDCsurface); 

BitBlt(hDCsurface,0,0,bmp.bmWidth,bmp.bmHeight,hDCbitmap,0,0,SRCCOPY);

lpDirectDrawSurface->ReleaseDC(hDCsurface);
DeleteDC(hDCbitmap);


если хочешь пришлю исходники загрузки из TGA и PCX.

кстати почему
short *buffer = (short *)ddsd.lpSurface;

а не
LPSTR buffer = (LPSTR)ddsd.lpSurface;

????????????
ну на худой конец если уж точно RGB то
LPDWORD buffer = (LPDWORD)ddsd.lpSurface;


A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.