16 XrSceneComponentsGetInfoMSFT getInfo{XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT};
17 getInfo.componentType = XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT;
19 XrSceneComponentsMSFT sceneComponents{XR_TYPE_SCENE_COMPONENTS_MSFT};
20 CHECK_XRCMD(xrGetSceneComponentsMSFT(scene, &getInfo, &sceneComponents));
21 const uint32_t count = sceneComponents.componentCountOutput;
23 std::vector<XrSceneComponentMSFT> components(count);
24 sceneComponents.componentCapacityInput = count;
25 sceneComponents.components = components.data();
27 CHECK_XRCMD(xrGetSceneComponentsMSFT(scene, &getInfo, &sceneComponents));
29 std::vector<SceneFragment> result(count);
30 for (uint32_t k = 0; k < count; k++) {
31 result[k].id = components[k].id;
32 result[k].updateTime = components[k].updateTime;
38 uint32_t readOutput = 0;
39 XrSerializedSceneFragmentDataGetInfoMSFT getInfo{XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT};
40 getInfo.sceneFragmentId =
static_cast<XrUuidMSFT
>(id);
41 CHECK_XRCMD(xrGetSerializedSceneFragmentDataMSFT(scene, &getInfo, 0, &readOutput,
nullptr));
43 std::vector<uint8_t> buffer(readOutput);
44 CHECK_XRCMD(xrGetSerializedSceneFragmentDataMSFT(scene, &getInfo, readOutput, &readOutput, buffer.data()));