From f56a0397dccefd696f24b5dc265580ca33ab6352 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Fri, 24 Jul 2020 13:22:41 +0300
Subject: [PATCH] Add channel blending

---
 components/streams/src/renderers/openvr_render.cpp | 3 +++
 components/streams/src/renderers/screen_render.cpp | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/components/streams/src/renderers/openvr_render.cpp b/components/streams/src/renderers/openvr_render.cpp
index 8080bf537..ef973ff08 100644
--- a/components/streams/src/renderers/openvr_render.cpp
+++ b/components/streams/src/renderers/openvr_render.cpp
@@ -205,6 +205,9 @@ bool OpenVRRender::retrieve(ftl::data::Frame &frame_out) {
 
 			left = ftl::rgbd::Camera::from(intrinsics_);
 			right = ftl::rgbd::Camera::from(intrinsics_);
+
+			left.baseline = baseline_;
+			right.baseline = baseline_;
 			
 			unsigned int size_x, size_y;
 			HMD->GetRecommendedRenderTargetSize(&size_x, &size_y);
diff --git a/components/streams/src/renderers/screen_render.cpp b/components/streams/src/renderers/screen_render.cpp
index a3a2e5dac..056477c6c 100644
--- a/components/streams/src/renderers/screen_render.cpp
+++ b/components/streams/src/renderers/screen_render.cpp
@@ -138,6 +138,12 @@ bool ScreenRender::retrieve(ftl::data::Frame &frame_out) {
 
 			if (!data_only) renderer_->render();
 
+			// Blend another channel
+			int blend_channel = host_->value("blend_channel",0);
+			if (blend_channel > 0) {
+				if (!data_only) renderer_->blend(static_cast<Channel>(blend_channel));
+			}
+
 			// Now do CPU-based render jobs
 			for (auto &s : sets) {
 				if (s->frameset() == my_id_) continue;  // Skip self
-- 
GitLab