Hab mich im Net fast dumm gesucht..
Wie kann ich ein Surface zur Laufzeit stretchen ohne dieses zwischen zu speichern?
Das Bitmap generiere ich auf dieser weise..
Delphi-Quellcode:
procedure TForm1.btnCaptureClick(Sender: TObject);
var
Surface: IDirect3DSurface9;
ARect: TRect;
Mode: D3DDISPLAYMODE;
p: TPoint;
begin
CaptureX.FDevice.GetDisplayMode(0, Mode);
if (CaptureX.FDevice.CreateOffscreenPlainSurface(
Mode.Width,
Mode.Height, D3DFMT_A8R8G8B8,
D3DPOOL_SCRATCH, Surface, nil) = S_OK) then
begin
CaptureX.FDevice.GetFrontBufferData(0, Surface);
ARect := clientRect;
P := ClientToScreen(Point(clientrect.Left, clientrect.Top));
SetRect(ARect, p.x, p.y, p.x + ARect.right, p.y + ARect.bottom);
D3DXSaveSurfaceToFileW('D:\paper.bmp', D3DXIFF_BMP, Surface, nil, @ARect);
end;
Timer1.Enabled := False;
end;
Bevor ich das Teil jetzt abspeichere möchte ich den Surface inklusive Inhalt auf eine Größe von 64x48 skalieren
gruss