Recientemente comencé a trabajar en una aplicación de navegador WPF utilizando el marco CefSharp y tuve un pequeño problema con la API de bloqueo de puntero.
Al intentar bloquear el puntero, recibo el siguiente error en la consola de Visual Studio.
Uncaught (in promise) WrongDocumentError: The root document of this element is not valid for pointer lock.
Sin embargo, encontré más información sobre Bitbucket para el marco CefSharp que indica que Pointer Lock aún no se ha implementado, esto fue en 2020 y estoy empezando a preguntarme si mi implementación de Javascript es incorrecta o si la API de Pointer Lock todavía lo es aún no es compatible.
Entiendo que la mayoría de los navegadores admiten esta funcionalidad y que la mayoría de los navegadores se ejecutan en el marco Chromium y que CefSharp es un puerto de eso menos la interfaz de usuario y otras partes.
¿Hay alguna forma de implementar esto en el código fuente de mi propio proyecto o incluso compilar CefSharp desde el origen con la funcionalidad Pointer Lock o necesitaría usar otro marco que actualmente admita esto?
JavaScript
const canvas = document.getElementById("my-canvas"); canvas.onclick = () => { canvas.requestPointerLock(); };CefSharp es solo uno de los muchos contenedores de Chromium Embedded Framework (CEF). Todavía estoy esperando que se agregue soporte ascendente para el bloqueo de puntero en CEF. El soporte debe agregarse primero en CEF antes de que pueda agregarse a CefSharp.
Hay un PR abierto https://bitbucket.org/chromiumembedded/cef/pull-requests/338 aunque ha estado inactivo durante mucho tiempo.