Capture-Bildschirm mit DirectX

Ich weiß, wie Sie GDI-capture-Bildschirm, jedoch ist es sehr langsam (es kaum erfasst 10 fps)

Ich habe gelesen, dass DirectX bietet die beste Geschwindigkeit. Aber bevor ich anfange zu lernen, DirectX ich wollte, eine Probe zu testen, um zu sehen, ob es wirklich so schnell ist.

Ich habe festgestellt, dass dies Frage , bietet ein Beispiel-code dazu:

void dump_buffer()
{
   IDirect3DSurface9* pRenderTarget=NULL;
   IDirect3DSurface9* pDestTarget=NULL;
     const char file[] = "Pickture.bmp";
   //sanity checks.
   if (Device == NULL)
      return;

   //get the render target surface.
   HRESULT hr = Device->GetRenderTarget(0, &pRenderTarget);
   //get the current adapter display mode.
   //hr = pDirect3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddisplaymode);

   //create a destination surface.
   hr = Device->CreateOffscreenPlainSurface(DisplayMde.Width,
                         DisplayMde.Height,
                         DisplayMde.Format,
                         D3DPOOL_SYSTEMMEM,
                         &pDestTarget,
                         NULL);
   //copy the render target to the destination surface.
   hr = Device->GetRenderTargetData(pRenderTarget, pDestTarget);
   //save its contents to a bitmap file.
   hr = D3DXSaveSurfaceToFile(file,
                              D3DXIFF_BMP,
                              pDestTarget,
                              NULL,
                              NULL);

   //clean up.
   pRenderTarget->Release();
   pDestTarget->Release();
}

Habe ich versucht, die erforderlichen Dateien. Aber nicht alle von Ihnen aufgenommen werden können (zum Beispiel #include <D3dx9tex.h>).

Kann mir jemand eine gute Beispiel, der hat alle erforderlichen enthält, oder zeigen Sie mir, was Bibliotheken, die ich installieren sollte.

Ich benutze Visual C++ 2010 Express unter Windows 7 Ultimate (x64).


Edit:

Auch dieser code ist nicht vollständig, zum Beispiel, was ist die Device identifier?!

Ich bin nicht in der Lage, einen download-link für DirectX SDK für Windows 7! Auch, warum bin ich in der Lage, um diese Bibliothek: #include <D3D9.h> muss ich eine ältere version von DirectX SDK installiert oder so?
Ich habe versucht, verschiedene Methoden der screen-capturing-einschließlich DirectX, während DirectX eine schneller war als andere, die es nicht zu erheblichen speedup (zur Deckung der zusätzlichen Komplexität und Zeitaufwand). Sorry, ich erinnere mich an keine details oder zahlen.
T Wie viele screenshots waren Sie in der Lage zu erfassen in 1 Sekunde?
Ich hatte Recht geringe Anforderungen, so etwas wie 10fps, es ist genug für desktop-capturing, aber nicht für Spiele - /video-capturing
Möchten Sie für die Unterstützung von Windows 7 als Zielplattform?

InformationsquelleAutor | 2015-05-04

Schreibe einen Kommentar