mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-01-31 23:32:17 +00:00
40 lines
578 B
C++
40 lines
578 B
C++
#pragma once
|
|
|
|
#include "wddm.h"
|
|
|
|
#include "Capture.h"
|
|
|
|
class WDDMCapture : public Capture {
|
|
public:
|
|
void init(UINT monitorID, RECT screen)
|
|
{
|
|
this->screen = screen;
|
|
|
|
wddm.wf_dxgi_init(monitorID, screen);
|
|
|
|
}
|
|
int getNextFrame(RGBQUAD** pPixels)
|
|
{
|
|
int rc;
|
|
rc = wddm.wf_dxgi_nextFrame(3000);
|
|
if (rc != 0) {
|
|
return rc;
|
|
}
|
|
|
|
int pitch;
|
|
rc = wddm.wf_dxgi_getPixelData((byte**)pPixels, &pitch, &screen);
|
|
if (rc != 0) {
|
|
return rc;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
void doneNextFrame()
|
|
{
|
|
int rc = wddm.wf_dxgi_releasePixelData();
|
|
}
|
|
|
|
private:
|
|
RECT screen;
|
|
WDDM wddm;
|
|
}; |