Форум: "Media";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизКак поменять частоту вертикальной развертки для DirectDraw? Найти похожие ветки
← →
dwUser (2004-02-24 18:46) [0]Подскажите, пожалуйста, как правильно задать параметр dwRefreshRate (так, кажется) функции SetDisplayMode, а еще - как правильно пользоваться функцией EnumDisplayModes (и чтобы различать режимы с разной кадровой частотой). Заранее благодарю.
← →
miek © (2004-02-24 21:41) [1]with SurfaceDescription do
begin
dwSize:= sizeof( SurfaceDescription);
dwFlags:= DDSD_CAPS{ or DDSD_BACKBUFFERCOUNT} or DDSD_REFRESHRATE;
dwRefreshRate:= 80;
ddsCaps.dwCaps:= DDSCAPS_PRIMARYSURFACE or DDSCAPS_FLIP or DDSCAPS_COMPLEX;
DwBackBufferCount:= 1;
end;
DDrawObject.CreateSurface( SurfaceDescription, PrimarySurface, nil);
← →
Sapersky © (2004-02-26 12:09) [2]Гм... а просто задать 4-й (или 5-й, не помню точно) параметр SetDisplayMode нельзя (DirectDraw должен быть начиная с 3-го, вообще лучше 7-й)?
По поводу EnumDisplayModes:
Var VModes : array [0..63] of TDDSurfaceDesc2;
VModeCount : Integer = 0;
function EnumModesCallback(const lpDDSurfaceDesc: TDDSurfaceDesc2;
lpContext: Pointer) : HResult;
Var BDepth : DWord;
begin
With lpDDSurfaceDesc do
If (dwWidth=0) or (dwHeight=0) then begin
Dec(VModeCount); Result:=DDENUMRET_CANCEL;
end else begin
Result:=DDENUMRET_OK;
BDepth:=ddpfPixelFormat.dwRGBBitCount;
If (dwWidth>=640) and (dwHeight>=480) and
(BDepth>=16) and (dwRefreshRate>=75) then // например
begin
VModes[VModeCount]:=lpDDSurfaceDesc; Inc(VModeCount);
end;
end;
end;
DD7.EnumDisplayModes(DDEDM_REFRESHRATES, nil, nil, EnumModesCallBack);
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c