Oh, littleDaves Betrag hatte ich übersehen, sorry.Also ich berechne die Frames in einem von mir erstellten Timer, der mittles On-Idle funktioniert, ich denke es liegt daran!?
Zu dem Problem: Hm also ich benutze XP-Home, ihr Pro, vll liegt es daran. Aber ich kann mir nicht erklären wo da ein Problem sein sollte...vielleicht bei den Einstellungen, mit denen
DirectX initialisiert wird. Ich stelle das mal rein:
Delphi-Quellcode:
constructor T2DXSurface.Create(_Handle: hWnd; _Fullscreen: Boolean; _Width, _Height: Longint);
var
D3DPP: TD3DPresent_Parameters;
D3DDM: TD3DDisplayMode;
DType: TD3DDevType;
D3DCaps9: TD3DCaps9;
HardwareVertexProcessing: Boolean;
VertexProcessing: Integer;
begin
//Initialisierung: IDirect3D9-Interface
D3D := Direct3DCreate9(D3D_SDK_VERSION);
if (D3D = nil) then
Exit;
//Present_Parameters
FillChar(D3DPP, sizeof(D3DPP), 0);
with D3DPP do
begin
Windowed := not _Fullscreen;
SwapEffect := D3DSWAPEFFECT_DISCARD;
if (_Fullscreen) then
begin
BackBufferWidth := _Width;
BackBufferHeight := _Height;
BackBufferFormat := D3DFMT_A8R8G8B8;
end
else
begin
if failed(D3D.GetAdapterDisplayMode(D3DADAPTER_DEFAULT, D3DDM)) then
Exit;
BackBufferFormat := D3DDM.Format;
end;
end;
//Kontrollieren ob die Grafikkarte HardwareVertexProcessing unterstützt
D3D.GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, D3DCaps9);
HardwareVertexProcessing := D3DCaps9.DevCaps and D3DDEVCAPS_HWTRANSFORMANDLIGHT <> 0;
If HardwareVertexProcessing then
VertexProcessing := D3DCREATE_HARDWARE_VERTEXPROCESSING
else
VertexProcessing := D3DCREATE_SOFTWARE_VERTEXPROCESSING;
//Hardwarebeschleunigung
DType := D3DDEVTYPE_HAL;
//Erstellen des IDirect3DDevice9
if failed(D3D.CreateDevice(D3DADAPTER_DEFAULT, DType, _Handle, Vertexprocessing, D3DPP, Device)) then
Exit;
//Erfolgreiche Initialisierung
//Einstellungen
FWidth := _Width;
FHeight := _Height;
Device.SetRenderState(D3DRS_LIGHTING, Longword(False));
Device.SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
Device.SetRenderState(D3DRS_ZENABLE, Longword(FALSE));
Device.SetRenderState(D3DRS_ALPHABLENDENABLE, 1);
Device.SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
end;
Irgendwer ne Idee? Kenne mich mit solchen Sachen leider nicht so aus (Fehlern und so
).