Форум: "WinAPI";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
ВнизOpenGL API и double buffer Найти похожие ветки
← →
Woolen (2001-12-23 23:19) [0]Нужно решить довольно простую задачу с анимацией в 3D. Решил использовать OpenGL. Попытался разобраться для скорости взял книгу Краснова, а он пишет, что на большинстве машин невозможно под OpenGL получить двойной буфер. Попробовал - нет дабл буфера! На другой машине - нет! Интересно, а разработчики кваки или 3D Studio Max тоже исходят при разработке из того, что на большистве машин все должно моргать и мерцать. Ведь не мерцает ни на чем! Значит есть способ! Подскажите, кто знает! Очень надо!
← →
Владимир Васильев (2001-12-24 13:06) [1]Краснова я прочитал для ознакомления с предметом. Но работать как он советует - с нуля!!- просто невозможно. Если нужны результаты - то
GLScene : http://glscene.org/ - бесплатно и с исходниками. Отличный форум по предмету.
← →
Flex (2001-12-24 14:12) [2]туфта полнейшая!!!
function SetDCPixelFormat(hdc:HDC):boolean;
var pfd:TPixelFormatDescriptor; // данные формата пикселей
nPixelFormat:Integer;
Begin
SetDCPixelFormat:=false;
FillChar(pfd,SizeOf (pfd),0);
With pfd do begin
nSize := sizeof(pfd);
nVersion := 1;
dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
iPixelType:= PFD_TYPE_RGBA;
cColorBits:= 24;
cDepthBits:= 32;
iLayerType:= PFD_MAIN_PLANE;
end;
nPixelFormat:=ChoosePixelFormat(hdc,@pfd);
if nPixelFormat=0 then exit;
SetPixelFormat (hdc,nPixelFormat,@pfd);
SetDCPixelFormat:=true;
End;
...
function Draw_Scene(dc:hdc):boolean;
begin
Draw_Scene:=false;
glClear(GL_COLOR_BUFFER_BIT+GL_DEPTH_BUFFER_BIT);
glPushMatrix;
Draw_Plan; // отрисовка карты
glPopMatrix;
glFinish; // не обязательно
SwapBuffers(DC);
Draw_Scene:=true;
end;
Сколько машин видел - везде работает двойной буфер, даже где самых плохие видеокарты.
Может на четверкая и тройках так?
А работать лучше с нуля - понимать больше будешь...
← →
NetBreaker666 (2001-12-25 16:14) [3]OpenGL для того и сделан, что если что-то не поддерживается видяхой, то будет выполнено програмно.
Если программа запущенна в оконном режиме, то в большинстве случаев Double Buffer реализуется программно.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c