vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font · DirectX   |   VB-Versionen: VB5, VB618.12.02
Screenshots in Direct3D

So machen Sie einen Screenshot von ihrer Direct3D-Anwendung ohne auf externe Programme angewiesen zu sein!

Autor:   illuminatorBewertung:  Views:  17.533 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Diese Funktion erstellt Screenshots mit fortlaufendem Index.

Die Funktion selbst sollte zwischen Device.EndScene und Device.Clear aufgerufen werden, da man sonst einen Screenshot von einer unvollständig gezeichneten Szene bekommt.

' Das ist die Fuktion die wir aufrufen
Public Function MakeScreenShot()
  ' Alles nötige deklarieren
  Dim FrontBuffer As Direct3DSurface8
  Dim PE As PALETTEENTRY
  Dim rt As RECT
  Dim tmpSD As D3DSURFACE_DESC
 
  ' Den FrontBuffer des RenderDevice holen, 
  ' also die gezeichnete Szene
  Set FrontBuffer = Device.GetRenderTarget
 
  ' Diese Variable brauchen wir um den 
  ' Screenshot-Index zu setzen
  Static ScreenShotCount As Long
 
  ' Die benötigten Infos über das RenderDevice 
  ' holen ( Höhe und Breite)
  FrontBuffer.GetDesc tmpSD
 
  With rt
    .bottom = tmpSD.Height - 1
    .Left = 0
    .Right = tmpSD.Width - 1
    .Top = 0
  End With
 
  ' und abspeichern
  D3DX.SaveSurfaceToFile App.Path & "\ScreenShot" & _
    CStr(ScreenShotCount) & ".bmp", _
    D3DXIFF_BMP, FrontBuffer, PE, rt
 
  ' Screenshot-Index um 1 erhöhen
  ScreenShotCount = ScreenShotCount + 1
End Function



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.