Giter VIP home page Giter VIP logo

windowcapture2d's Introduction

WindowCapture2D

Library for capturing and displaying windows in real time with UnrealEngine.

Captures in specified window units.

You can also capture windows hidden behind other windows.

Captured windows can be attached to meshes or UMG in 3D space.

ed99cc1218473bb4accc3c5d217454c4

UE4 Marketplace

https://www.unrealengine.com/marketplace/ja/slug/windowcapture2d

Quick Start

Please check "show engine content" and "show plugin content"

showcontent

When Actor is placed

  1. Put "WindowCapturePlane" at the level

setactor

When Widget is placed

  1. Place "WindowCaptureUMG" in UMG

umg

  1. Set various properties

image

Property Description
Capture Target Title Title string of the window that you want to capture
Title Matching Window Search Title string matching method
Frame Rate Interval to capture the window (fps)
Check Window Size When on, changes the texture size by monitoring the window size change
If enabled, the load will be high
Cut Shadow Remove the shadow of the window from the capture target

Title Matching Window Search

Type Description
PerfectMatch Must match exactly with the input string 
ForwardMatch Compare with the input string in a forward match
PartialMatch Compare with the input string in a partial match
BackwardMatch Compare with the input string in a backward match
RegularExpression Compare using regular expressions

windowcapture2d's People

Contributors

ayumax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

windowcapture2d's Issues

Windows is recognized but not reflecting on the texture.

The window being captured isn't showing. When a window isn't existing, I'm assuming it shows the white material. But when I change the property to a window that exists, it now shows a black material. What could be the problem?

UE Version: 4.27.2

image
image

Plugin No longer loads in UE4 23.1

Hello, I am a VR developer, and i've been using windowcapture2D plugin for my projects - however since the last 3 days whenever i try to install windowcapture2D it never shows up in my projects. It is listed as enabled in plugins however. Turning it off and on again doesn't work, restarting the engine doesn't work, uninstalling and reinstalling doesn't work, and neither does reinstalling the engine. Using UE4 26 worked - but my project is built for steamVR - so it is based on UE4 23.1 only.

Not sure how to fix this - i've spent a few days on it already, and i am going to have to look for another plugin at this point :/

captured window has wrong size in paked version

hello,

the plugin is working perfectly for us in editor mode.

however, in shipping mode, the captured window is "cropped" and only a part of it is visible.
on the right and bottom, there are big black bars.

is this a known issue?
should I post more information on the issue?

Engine Version is 4.23.1

thank you in advance,
ed

btw: we offer a donation on that issue.

EXCEPTION_ACCESS_VIOLATION occurs when CheckWindowSize is checked and the target window is resized repeatedly

I found that UE4 crashes with EXCEPTION_ACCESS_VIOLATION when CheckWindowSize is checked and repeated resizing of the target window.

Reproduction steps

  1. Create New UE4.24.2 project and enable WindowCapture2D plugin
  2. Place WindowCapturePlane in the world
  3. Check CheckWindowSize and change CaptureTargetTitle on WindowCapturePlane
  4. Play the project
  5. Resize target window repeatedly

Crash message is

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x08cad000

nvwgf2umx
d3d11
UE4Editor_D3D11RHI!FD3D11DynamicRHI::RHIUpdateTexture2D() [d:\build\++ue4\sync\engine\source\runtime\windows\d3d11rhi\private\d3d11texture.cpp:1805]
UE4Editor_D3D11RHI!FD3D11DynamicRHI::UpdateTexture2D_RenderThread() [d:\build\++ue4\sync\engine\source\runtime\windows\d3d11rhi\private\d3d11texture.cpp:1830]
UE4Editor_Engine!<lambda_d3c33e5a8b9daf3a9ced0d8a29defb66>::operator()() [d:\build\++ue4\sync\engine\source\runtime\engine\private\texture2d.cpp:1417]
UE4Editor_Engine!TGraphTask<TEnqueueUniqueRenderCommandType<`UTexture2D::UpdateTextureRegions'::`34'::UpdateTextureRegionsDataName,<lambda_d3c33e5a8b9daf3a9ced0d8a29defb66> > >::ExecuteTask() [d:\build\++ue4\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:847]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:686]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:583]
UE4Editor_RenderCore!RenderingThreadMain() [d:\build\++ue4\sync\engine\source\runtime\rendercore\private\renderingthread.cpp:340]
UE4Editor_RenderCore!FRenderingThread::Run() [d:\build\++ue4\sync\engine\source\runtime\rendercore\private\renderingthread.cpp:471]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:96]

Any Chance you can update this to 5.2

It crashes - both in the editor (upon endplay) and on a package game. (something about UpdateTexture)
[Inline Frame] UnrealEditor-Engine.dll!FRHITexture::GetTexture2D() Line 2037 C++
Image

 //UE_DEPRECATED(5.1, "FRHITexture2D is deprecated, please use FRHITexture directly")
    inline FRHITexture2D* GetTexture2D() { return TextureDesc.Dimension == ETextureDimension::Texture2D ? this : nullptr; }
    //UE_DEPRECATED(5.1, "FRHITexture2DArray is deprecated, please use FRHITexture directly")
    inline FRHITexture2DArray* GetTexture2DArray() { return TextureDesc.Dimension == ETextureDimension::Texture2DArray ? this : nullptr; }
    //UE_DEPRECATED(5.1, "FRHITexture3D is deprecated, please use FRHITexture directly")
    inline FRHITexture3D* GetTexture3D() { return TextureDesc.Dimension == ETextureDimension::Texture3D ? this : nullptr; }
    //UE_DEPRECATED(5.1, "FRHITextureCube is deprecated, please use FRHITexture directly")
    inline FRHITextureCube* GetTextureCube() { return TextureDesc.IsTextureCube() ? this : nullptr; }

Doesn't run when packaged

When ran as a packaged project it says
Plugin WindowCapture2D failed to load because module WindowCapture2D could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for its project.

I very much need this plugin for my project therefore I cannot disable the plugin.

Plugin sometimes crashes Unreal Editor

The plugin will sometimes cause the Unreal Editor to crash. Unfortunately, few additional details can be provided. Steps to reproduce:

  • Add WindowCapturePlane from PlaneActor content folder to level;
  • Change the properties so that it captures the content of some window (e.g., a browser window), I choose Partial Match;
  • Play the level within Editor. Switch to browser window, introduce some changes;
  • Come back to Editor, press ESC on the keyboard to stop playing the level;
  • Sometimes at this point the Editor will crash.

Plugin cleanup UCaptureMachine::Close() is not thread safe

The texture target is deleted at a time when the docapture is running in another thread during close.

This causes crashes in the renderer as the texture gets killed during render. As it's multithreaded this is occasional.

Changing the close order to below is better as it kills the thread before destroying the texture. Also the texture needed nulling.

```

if (CaptureThread)
{
CaptureThread->Kill(true);
CaptureThread->WaitForCompletion();

	delete CaptureThread;
	CaptureThread = nullptr;
}
if (TextureTarget)
{
	TextureTarget->ReleaseResource();
	TextureTarget = nullptr;
}

Notebook with multi graphics adapter gives black screen

My notebook have RTX 3080 and Ryzen 9 5900HX APU.
When I set high performance graphics adapter for UE4 my project's performance is good but I can not get any captured texture it gives totally black screen. I need to switch power saving mode but when I do it performance significantly decrease. Actually this is a general issue for OBS, Zoom and any other capture screen tools.

But this is an UE4 plugin. So, high performance is important.
Can you fix it ?

btw Unreal Market place link does not work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.