The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ipc: switch blend mode to array

+13 -3
+4 -1
src/xrt/ipc/client/ipc_client_hmd.c
··· 169 169 return NULL; 170 170 } 171 171 #endif 172 + for (int i = 0; i < XRT_MAX_DEVICE_BLEND_MODES; i++) { 173 + ich->base.hmd->blend_modes[i] = ipc_c->ism->hmd.blend_modes[i]; 174 + } 175 + ich->base.hmd->num_blend_modes = ipc_c->ism->hmd.num_blend_modes; 172 176 173 - ich->base.hmd->blend_mode = ipc_c->ism->hmd.blend_mode; 174 177 ich->base.hmd->views[0].display.w_pixels = ipc_c->ism->hmd.views[0].display.w_pixels; 175 178 ich->base.hmd->views[0].display.h_pixels = ipc_c->ism->hmd.views[0].display.h_pixels; 176 179 ich->base.hmd->views[0].fov = ipc_c->ism->hmd.views[0].fov;
+7 -1
src/xrt/ipc/server/ipc_server_process.c
··· 20 20 #include "util/u_misc.h" 21 21 #include "util/u_debug.h" 22 22 #include "util/u_trace_marker.h" 23 + #include "util/u_verify.h" 23 24 24 25 #include "shared/ipc_shmem.h" 25 26 #include "server/ipc_server.h" ··· 252 253 ism->hmd.views[1].display.h_pixels = xdev->hmd->views[1].display.h_pixels; 253 254 ism->hmd.views[1].fov = xdev->hmd->views[1].fov; 254 255 255 - ism->hmd.blend_mode = xdev->hmd->blend_mode; 256 + for (size_t i = 0; i < xdev->hmd->num_blend_modes; i++) { 257 + // Not super necessary, we also do this assert in oxr_system.c 258 + assert(u_verify_blend_mode_valid(xdev->hmd->blend_modes[i])); 259 + ism->hmd.blend_modes[i] = xdev->hmd->blend_modes[i]; 260 + } 261 + ism->hmd.num_blend_modes = xdev->hmd->num_blend_modes; 256 262 } 257 263 258 264 // Setup the tracking origin.
+2 -1
src/xrt/ipc/shared/ipc_protocol.h
··· 225 225 */ 226 226 struct xrt_fov fov; 227 227 } views[2]; 228 - enum xrt_blend_mode blend_mode; 228 + enum xrt_blend_mode blend_modes[XRT_MAX_DEVICE_BLEND_MODES]; 229 + size_t num_blend_modes; 229 230 } hmd; 230 231 231 232 struct xrt_input inputs[IPC_SHARED_MAX_INPUTS];