From 91de043eb668cf38ddc5afecef09d9100020223b Mon Sep 17 00:00:00 2001
From: Rylie Pavlik <rylie.pavlik@collabora.com>
Date: Mon, 19 Aug 2024 16:30:49 -0500
Subject: [PATCH] c/null: Show using get_view_poses

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2342>
---
 src/xrt/compositor/null/null_compositor.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/xrt/compositor/null/null_compositor.c b/src/xrt/compositor/null/null_compositor.c
index 63f9c1eb9..d3ce385c4 100644
--- a/src/xrt/compositor/null/null_compositor.c
+++ b/src/xrt/compositor/null/null_compositor.c
@@ -28,6 +28,7 @@
 #include "util/comp_vulkan.h"
 
 #include "multi/comp_multi_interface.h"
+#include "xrt/xrt_device.h"
 
 
 #include <stdint.h>
@@ -57,7 +58,7 @@ get_vk(struct null_compositor *c)
 
 /*
  *
- * Vulkan functions.
+ * Vulkan extensions.
  *
  */
 
@@ -426,6 +427,16 @@ null_compositor_layer_commit(struct xrt_compositor *xc, xrt_graphics_sync_handle
 	NULL_TRACE(c, "LAYER_COMMIT");
 
 	int64_t frame_id = c->base.layer_accum.data.frame_id;
+	int64_t display_time_ns = c->base.layer_accum.layers[0].data.timestamp;
+
+	// Default value from monado, overridden by HMD device where possible.
+	struct xrt_vec3 default_eye_relation = {0.063f, 0.f, 0.f};
+	struct xrt_space_relation head_relation = {0};
+
+	struct xrt_fov fovs[2] = {0};
+	struct xrt_pose poses[2] = {0};
+	xrt_device_get_view_poses(c->xdev, &default_eye_relation, display_time_ns, 2, &head_relation, fovs, poses);
+
 
 	/*
 	 * The null compositor doesn't render any frames, but needs to do