···138138 switch (xret) {
139139 case XRT_SUCCESS: DG("XRT_SUCCESS"); return;
140140 case XRT_TIMEOUT: DG("XRT_TIMEOUT"); return;
141141+ case XRT_SPACE_BOUNDS_UNAVAILABLE: DG("XRT_SPACE_BOUNDS_UNAVAILABLE"); return;
141142 case XRT_ERROR_IPC_FAILURE: DG("XRT_ERROR_IPC_FAILURE"); return;
142143 case XRT_ERROR_NO_IMAGE_AVAILABLE: DG("XRT_ERROR_NO_IMAGE_AVAILABLE"); return;
143144 case XRT_ERROR_VULKAN: DG("XRT_ERROR_VULKAN"); return;
···167168 case XRT_ERROR_COMPOSITOR_NOT_SUPPORTED: DG("XRT_ERROR_COMPOSITOR_NOT_SUPPORTED"); return;
168169 case XRT_ERROR_IPC_COMPOSITOR_NOT_CREATED: DG("XRT_ERROR_IPC_COMPOSITOR_NOT_CREATED"); return;
169170 case XRT_ERROR_DEVICE_FUNCTION_NOT_IMPLEMENTED: DG("XRT_ERROR_DEVICE_FUNCTION_NOT_IMPLEMENTED"); return;
171171+ case XRT_ERROR_COMPOSITOR_FUNCTION_NOT_IMPLEMENTED: DG("XRT_ERROR_COMPOSITOR_FUNCTION_NOT_IMPLEMENTED"); return;
170172 }
171173 // clang-format on
172174
+28
src/xrt/include/xrt/xrt_compositor.h
···13861386 enum xrt_perf_set_level level);
1387138713881388 /*!
13891389+ * @brief Get the extents of the reference space’s bounds rectangle.
13901390+ */
13911391+ xrt_result_t (*get_reference_bounds_rect)(struct xrt_compositor *xc,
13921392+ enum xrt_reference_space_type reference_space_type,
13931393+ struct xrt_vec2 *bounds);
13941394+13951395+ /*!
13891396 * Teardown the compositor.
13901397 *
13911398 * The state tracker must have made sure that no frames or sessions are
···18691876xrt_comp_set_performance_level(struct xrt_compositor *xc, enum xrt_perf_domain domain, enum xrt_perf_set_level level)
18701877{
18711878 return xc->set_performance_level(xc, domain, level);
18791879+}
18801880+18811881+/*!
18821882+ * @copydoc xrt_compositor::get_reference_bounds_rect
18831883+ *
18841884+ * Helper for calling through the function pointer.
18851885+ *
18861886+ * @public @memberof xrt_compositor
18871887+ */
18881888+static inline xrt_result_t
18891889+xrt_comp_get_reference_bounds_rect(struct xrt_compositor *xc,
18901890+ enum xrt_reference_space_type reference_space_type,
18911891+ struct xrt_vec2 *bounds)
18921892+{
18931893+ if (xc->get_reference_bounds_rect == NULL) {
18941894+ bounds->x = 0.f;
18951895+ bounds->y = 0.f;
18961896+ return XRT_ERROR_COMPOSITOR_FUNCTION_NOT_IMPLEMENTED;
18971897+ }
18981898+18991899+ return xc->get_reference_bounds_rect(xc, reference_space_type, bounds);
18721900}
1873190118741902/*!
+10
src/xrt/include/xrt/xrt_results.h
···3333 XRT_TIMEOUT = 2,
34343535 /*!
3636+ * The space’s bounds are not known at the moment.
3737+ */
3838+ XRT_SPACE_BOUNDS_UNAVAILABLE = 3,
3939+4040+ /*!
3641 * A problem occurred either with the IPC transport itself, with invalid commands from the client, or with
3742 * invalid responses from the server.
3843 */
···181186 * error condition on bad code.
182187 */
183188 XRT_ERROR_DEVICE_FUNCTION_NOT_IMPLEMENTED = -29,
189189+190190+ /*!
191191+ * The function was not implemented in the compositor
192192+ */
193193+ XRT_ERROR_COMPOSITOR_FUNCTION_NOT_IMPLEMENTED = -30,
184194} xrt_result_t;