After many hours trying to get D3d functions working in delphi finally worked it out. When I first came to this forum I couldn't find anything related to d3d in delphi, after searching many months, days, hours on google looking for something in delphi for d3d I decided to bite the bullet and try it my self with assistance from some C++ examples. Here is a simple CrossHair , I know you guys find nothing special about this as its common in C++, but us delphi users never have any examples to learn from so this is kinda a big step towards D3D hack menus in Delphi.
XHair:
[highlight=delphi]
procedure DrawXhair (const Device: IDirect3DDevice9; color: D3DCOLOR);
var
viewP: D3DVIEWPORT9;
ScreenCenterX,ScreenCenterY: DWORD;
rec1,rec2: D3DRECT;
begin
// Get screen
Device.GetViewport(viewP);
ScreenCenterX:= ((viewP.Width div 2) - 1);
ScreenCenterY:= ((viewP.Height div 2) - 1);
//Set xhair params
rec1.x1:= ScreenCenterX-20;
rec1.y1:= ScreenCenterY;
rec1.x2:= ScreenCenterX+ 20;
rec1.y2:= ScreenCenterY+1;
rec2.x1:= ScreenCenterX;
rec2.y1:= ScreenCenterY-20;
rec2.x2:= ScreenCenterX+ 1;
rec2.y2:= ScreenCenterY+20;
//Draw crosshair
Device.Clear(1, @rec1, D3DCLEAR_TARGET, color, 0, 0);
Device.Clear(1, @rec2, D3DCLEAR_TARGET, color, 0, 0);
end;
[/highlight]
Example Use:
[highlight=delphi]
function PresentCallBack(const Self: IDirect3DDevice9; pSourceRect, pDestRect: PRect; hDestWindowOverride: HWND; pDirtyRegion: PRgnData): HResult; stdcall;
begin
asm
pushad
end;
pD3Ddev:= Pointer(Self);
//Write Some Text
WriteText(pD3Ddev, 'Test');
//Draw a crosshair($0000ffff = Blue)
DrawXhair(Self,$0000ffff); //$ffff0000 <-- Red
asm
popad
end;
Result := PresentNext( Self,pSourceRect, pDestRect, hDestWindowOverride,pDirtyRegion);
end;
[/highlight]
I hope it saves some delphi coder some time so they dont have spend months searching...