I have made an example that calls emscripten_request_pointerlock("document", false);
by mouse click:
void mousePressEvent(QMouseEvent *event) override
{
EMSCRIPTEN_RESULT result = emscripten_request_pointerlock("document", false);
qDebug() << result;
}
It print -4 to the console that means EMSCRIPTEN_RESULT_UNKNOWN_TARGET
main.cpp
#include <QtGui/QMouseEvent>
#include <QtGui/QOpenGLFunctions>
#include <QtOpenGL/QOpenGLWindow>
#include <QtWidgets/QApplication>
#ifdef Q_OS_WASM
#include <emscripten.h>
#include <emscripten/html5.h>
#endif
class OpenGLWindow : public QOpenGLWindow, private QOpenGLFunctions
{
public:
OpenGLWindow()
{
setTitle("OpenGL ES 2.0, Qt6, C++");
resize(350, 350);
}
private:
void mousePressEvent(QMouseEvent *event) override
{
EMSCRIPTEN_RESULT result = emscripten_request_pointerlock("document", false);
qDebug() << result;
}
virtual void initializeGL() override
{
initializeOpenGLFunctions();
glClearColor(0.2f, 0.2f, 0.2f, 1.f);
}
virtual void paintGL() override
{
glClear(GL_COLOR_BUFFER_BIT);
}
};
int main(int argc, char *argv[])
{
QApplication::setAttribute(Qt::ApplicationAttribute::AA_UseDesktopOpenGL);
QApplication app(argc, argv);
OpenGLWindow w;
w.show();
return app.exec();
}
pro
QT += core gui openglwidgets
win32: LIBS += -lopengl32
CONFIG += c++17
wasm: INCLUDEPATH += "C:emsdkupstreamemscriptencachesysrootinclude"
SOURCES +=
main.cpp