Don't update video of sources if not displaying

This is a bit of an optimization to reduce load a little bit if any of
the video capture sources are not currently being displayed on the
screen.  They will simply not capture or update their texture data if
they are not currently being shown anywhere.

The mac and window game capture sources don't really apply due to the
fact that their textures aren't updated on the source's end (they update
inside of the hooks).
This commit is contained in:
jp9000
2015-01-03 22:39:21 -08:00
parent 77105f1d93
commit b277f2b737
6 changed files with 18 additions and 0 deletions

View File

@@ -143,6 +143,9 @@ static void monitor_capture_tick(void *data, float seconds)
{
struct monitor_capture *capture = data;
if (!obs_source_showing(capture->source))
return;
obs_enter_graphics();
dc_capture_capture(&capture->data, NULL);
obs_leave_graphics();

View File

@@ -149,6 +149,9 @@ static void wc_tick(void *data, float seconds)
RECT rect;
bool reset_capture = false;
if (!obs_source_showing(wc->source))
return;
if (!wc->window || !IsWindow(wc->window)) {
if (!wc->title && !wc->class)
return;