{"version":"1.0","provider_name":"Geckode!","provider_url":"https:\/\/www.youbiquo.eu\/geckode","author_name":"Aida Garfami","author_url":"https:\/\/www.youbiquo.eu\/geckode\/author\/aida-garfami\/","title":"Advanced - Geckode!","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"UPq2Rv0vH2\"><a href=\"https:\/\/www.youbiquo.eu\/geckode\/en\/advanced\/\">Advanced<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/www.youbiquo.eu\/geckode\/en\/advanced\/embed\/#?secret=UPq2Rv0vH2\" width=\"600\" height=\"338\" title=\"&#8220;Advanced&#8221; &#8212; Geckode!\" data-secret=\"UPq2Rv0vH2\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/www.youbiquo.eu\/geckode\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"Advanced Advanced \u2014 LeonardoXR SDK Advanced Version 1.0.2 Device: Youbiquo Leonardo XR Base SDK: Snapdragon Spaces 1.0.4 This section covers advanced configurations and features available on LeonardoXR, divided into general Snapdragon Spaces platform functionality and LeonardoXR proprietary advanced features. Advanced \u2014 Snapdragon Spaces Adding a New Interaction Profile To use an interaction profile not included in the Snapdragon Spaces plugin: Go to\u00a0Project Settings &gt; XR Plug-in Management &gt; OpenXR (Android) &gt; Interaction Profiles. Add the desired profile by clicking the\u00a0+\u00a0button. Configure the corresponding Input Actions in the Input System Asset. Custom Controller Describes how to build a custom Android controller archive (.aar) using the Custom Controller Package \u2014 the Android Studio project included in the developer package. Process Overview Open the Android Studio project included in the Snapdragon Spaces developer package. Modify the companion Activity as needed (layout, buttons, additional axes). Build the project to obtain a\u00a0.aar\u00a0file. Import the\u00a0.aar\u00a0into the Unity project as a native Android plugin (in\u00a0Assets\/Plugins\/Android). Configure the Android manifest to declare the new Activity. NOTE\u00a0Adding a custom controller archive can cause Gradle caching errors. If build errors occur, delete the\u00a0Temp\/gradleOut folder and rebuild. Display Refresh Rate The\u00a0XR_EXT_display_refresh_rate\u00a0extension allows querying and setting the display refresh rate at runtime. Query Current Refresh Rate using Qualcomm.Snapdragon.Spaces; BaseRuntimeFeature baseRuntime = OpenXRSettings.Instance.GetFeature&lt;BaseRuntimeFeature&gt;(); float currentHz = baseRuntime.GetDisplayRefreshRate(); Debug.Log($\"Current refresh rate: {currentHz} Hz\"); Get Supported Refresh Rates float[] supportedRates = baseRuntime.GetSupportedDisplayRefreshRates(); foreach (float rate in supportedRates) Debug.Log($\"Supported: {rate} Hz\"); Set Refresh Rate baseRuntime.RequestDisplayRefreshRate(90.0f); NOTE\u00a0The requested refresh rate must be among those returned by\u00a0GetSupportedDisplayRefreshRates(). Unsupported values are ignored. Advanced Android Thread Performance The\u00a0SpacesThreadUtility\u00a0component improves thread scheduling priority on Android, producing more consistent frame timing. Setup Add the\u00a0SpacesThreadUtility\u00a0component to a persistent GameObject in the scene (e.g. the same GameObject hosting the AR Session or XR Origin). No configuration is required \u2014 it activates automatically on initialisation and acts on the main Unity threads. When to Use Recommended for all LeonardoXR applications that exhibit framerate jitter or frame timing variability, especially in scenes with heavy rendering or many active AR subsystems. Performance Settings The OpenXR extension\u00a0XR_EXT_performance_settings\u00a0exposes performance level hints for CPU and GPU via a new method on\u00a0BaseRuntimeFeature. Level Description PowerSavings Reduces CPU\/GPU clocks to the minimum necessary. Useful for simple scenes or static UI. SustainedLow Sustained performance at a low level. SustainedHigh Sustained high-level performance. Recommended for most AR apps. Boost Maximum performance for short periods (not sustainably maintained). using Qualcomm.Snapdragon.Spaces; using UnityEngine.XR.OpenXR; BaseRuntimeFeature baseRuntime = OpenXRSettings.Instance.GetFeature&lt;BaseRuntimeFeature&gt;(); baseRuntime.SetPerformanceLevel(PerformanceDomain.Cpu, PerformanceLevel.SustainedHigh); baseRuntime.SetPerformanceLevel(PerformanceDomain.Gpu, PerformanceLevel.SustainedHigh); NOTE\u00a0The\u00a0Boost\u00a0level consumes significantly more power and may cause thermal throttling if sustained. Use it only for brief critical operations (e.g. loading a heavy scene). Advanced \u2014 LeonardoXR QNN Inference Plugin \u2014 Advanced Guide DOCUMENTATION IN PROGRESS\u00a0This section will cover advanced usage of the QNN (Qualcomm Neural Network) Inference Plugin on Leonardo XR, including: Model preparation and conversion (ONNX \u2192 QNN format). Loading models at runtime via plugin APIs. Running inference on the NPU with input\/output tensor management. Memory management and throughput optimisation. Debug and performance profiling of inference. Use cases: object detection, pose estimation, real-time segmentation. Detailed documentation will be available in a future release. Intercept OpenXR Function \u2014 Advanced Guide DOCUMENTATION IN PROGRESS\u00a0This section will cover advanced usage of the Intercept OpenXR Function mechanism on Leonardo XR, including: Architecture of the OpenXR interception layer. Registering custom handlers for specific OpenXR functions. Use cases: rendering pipeline override, custom data injection into the XR layer, low-level OpenXR debugging. Safety and stability considerations. Interaction with other LeonardoXR SDK components. This feature is intended for developers with direct experience of low-level OpenXR APIs. Detailed documentation will be available in a future release."}