Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#15

AW: Directx bitmap stretchen/Skalieren

  Alt 2. Jan 2014, 23:05
Interessanterweise ist bei mir der Inhalt des OffscreenPlainSurfaces bereits komplett schwarz
Bei mir nicht.
Den normalen ScreenShot des Clientbereichs kann ich ohne Probleme erstellen.
Hast mein letztes Update geladen?

Delphi-Quellcode:
procedure TForm1.btnCaptureClick(Sender: TObject);
var
  Surface: IDirect3DSurface9;
  ARect: TRect;
  p: TPoint;

begin

  //Source
  if (CaptureX.FDevice.CreateOffscreenPlainSurface(
      Screen.PrimaryMonitor.BoundsRect.Right,
      Screen.PrimaryMonitor.BoundsRect.Bottom, D3DFMT_A8R8G8B8,
      D3DPOOL_SYSTEMMEM, 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;
Gruss

Geändert von EWeiss ( 3. Jan 2014 um 02:25 Uhr)
  Mit Zitat antworten Zitat