Форум: "Media";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизTFastDIB и DirectX Найти похожие ветки
← →
Programmer_SC (2003-09-18 19:18) [0]Hi to all. Есть такая проблема пишу двиган без VCL с DirectX и FastLib. Так вот:
uses
Windows, messages,DirectDraw,fastdib;
Var
...
bmp : TFastDIB;
DC : HDC;
...
Begin
//Инициализация окна и DirectX
SecondarySurface.GetDC(DC);
bmp := TFastDIB.Create;
bmp.LoadFromFile("bmpшка");
bmp.Draw(DC,0,0);
BitBlt(DC,0,0,300,300,bmp.hDC,0,0,SRCCOPY);
bmp.Free; //Удаляем bmp
SecondarySurface.ReleaseDC(DC);//Необходимо удалить DC
...
//translatemessage,dispatchmessage
...
End;
Прога намертво виснет. Если убрать bmp.LoadFromFile то все норм. работает. Прога полноэкранная, путь к бмп правильный(юзал TBitMap все работает), заголовки DirectX от Jedi, FastDIB нормальный(примеры к нему идут без проблем). Ну и как это лечить?(TBitMap не предлагать, просто хочется разобраться с FastLib)
← →
Sapersky (2003-09-18 21:31) [1]bmp.Draw(DC,0,0);
BitBlt(DC,0,0,300,300,bmp.hDC,0,0,SRCCOPY);
Зачем два раза рисовать одно и то же?
Чтобы не висло - вынести LoadFromFile перед GetDC (GetDC - это фактически Lock, и чем меньше поверхность будет в таком состоянии, тем лучше), проверять взаимные размеры поверхности и FDIB (хотя по идее GDI должен отсечь всё что не влезает).
← →
Programmer_SC (2003-09-18 22:03) [2]>bmp.Draw(DC,0,0);
>BitBlt(DC,0,0,300,300,bmp.hDC,0,0,SRCCOPY);
>Зачем два раза рисовать одно и то же?
это глюки у меня(т.е. в коде нормально стоит)
Вынес... не работает, в общем то генериться Error215(переполнение) видимо в LoadFromFile... пробовал уменьшить бмп, даже 10 килов не берет. Нифига не понимаю....
← →
Programmer_SC (2003-09-18 22:18) [3]Все исправил... Проблема была в LoadFromFile
Sapersky спасибо за инфу!!!
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.01 c