Skip to content

Instantly share code, notes, and snippets.

@KRNKRS
Last active November 8, 2018 11:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KRNKRS/42f6ad8d28daecce79b313eb0c7c8046 to your computer and use it in GitHub Desktop.
Save KRNKRS/42f6ad8d28daecce79b313eb0c7c8046 to your computer and use it in GitHub Desktop.
void AFrameGrabberActor::Capture() {
if (FrameGrabber.IsValid() && CaptureFrameTexture) {
FrameGrabber->CaptureThisFrame(FFramePayloadPtr());
TArray<FCapturedFrameData> Frames = FrameGrabber->GetCapturedFrames();
if (Frames.Num()) {
FCapturedFrameData& LastFrame = Frames.Last();
CaptureFrameData.Empty();
for (int32 i = 0; i < LastFrame.ColorBuffer.Num(); i++) {
//FColor (R,G,B,A)->BGRA
CaptureFrameData.Add(LastFrame.ColorBuffer[i].B);
CaptureFrameData.Add(LastFrame.ColorBuffer[i].G);
CaptureFrameData.Add(LastFrame.ColorBuffer[i].R);
CaptureFrameData.Add(LastFrame.ColorBuffer[i].A);
}
auto Region = new FUpdateTextureRegion2D(0, 0, 0, 0, LastFrame.BufferSize.X, LastFrame.BufferSize.Y);
CaptureFrameTexture->UpdateTextureRegions(0, 1, Region, 4 * LastFrame.BufferSize.X, 4, CaptureFrameData.GetData());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment