Здравствуйте 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;