diff options
Diffstat (limited to 'src/platformheaders')
8 files changed, 157 insertions, 2 deletions
diff --git a/src/platformheaders/eglfsfunctions/qeglfsfunctions.h b/src/platformheaders/eglfsfunctions/qeglfsfunctions.h index b2f3b4c872..7165c3cff4 100644 --- a/src/platformheaders/eglfsfunctions/qeglfsfunctions.h +++ b/src/platformheaders/eglfsfunctions/qeglfsfunctions.h @@ -57,6 +57,65 @@ public: if (func) func(filename); } + + typedef int (*Vsp2AddLayerType)(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine); + static QByteArray vsp2AddLayerTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2AddLayer"); } + + //vsp2 functions are currently internal and preliminary (see qdoc file) + static int vsp2AddLayer(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine) + { + auto func = reinterpret_cast<Vsp2AddLayerType>(QGuiApplication::platformFunction(vsp2AddLayerTypeIdentifier())); + if (func) + return func(screen, dmabufFd, size, position, drmPixelFormat, bytesPerLine); + return 0; + } + + typedef bool (*Vsp2RemoveLayerType)(const QScreen *screen, int id); + static QByteArray vsp2RemoveLayerTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2RemoveLayer"); } + + static bool vsp2RemoveLayer(const QScreen *screen, int id) + { + auto func = reinterpret_cast<Vsp2RemoveLayerType>(QGuiApplication::platformFunction(vsp2RemoveLayerTypeIdentifier())); + return func && func(screen, id); + } + + typedef void (*Vsp2SetLayerBufferType)(const QScreen *screen, int id, int dmabufFd); + static QByteArray vsp2SetLayerBufferTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2SetLayerBuffer"); } + + static void vsp2SetLayerBuffer(const QScreen *screen, int id, int dmabufFd) + { + auto func = reinterpret_cast<Vsp2SetLayerBufferType>(QGuiApplication::platformFunction(vsp2SetLayerBufferTypeIdentifier())); + if (func) + func(screen, id, dmabufFd); + } + + typedef bool (*Vsp2SetLayerPositionType)(const QScreen *screen, int id, const QPoint &position); + static QByteArray vsp2SetLayerPositionTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2SetLayerPosition"); } + + static bool vsp2SetLayerPosition(const QScreen *screen, int id, const QPoint &position) + { + auto func = reinterpret_cast<Vsp2SetLayerPositionType>(QGuiApplication::platformFunction(vsp2SetLayerPositionTypeIdentifier())); + return func && func(screen, id, position); + } + + typedef bool (*Vsp2SetLayerAlphaType)(const QScreen *screen, int id, qreal alpha); + static QByteArray vsp2SetLayerAlphaTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2SetLayerAlpha"); } + + static bool vsp2SetLayerAlpha(const QScreen *screen, int id, qreal alpha) + { + auto func = reinterpret_cast<Vsp2SetLayerAlphaType>(QGuiApplication::platformFunction(vsp2SetLayerAlphaTypeIdentifier())); + return func && func(screen, id, alpha); + } + + typedef void (*Vsp2AddBlendListenerType)(const QScreen *screen, void(*callback)()); + static QByteArray vsp2AddBlendListenerTypeIdentifier() { return QByteArrayLiteral("EglFSVsp2AddBlendListener"); } + + static void vsp2AddBlendListener(const QScreen *screen, void(*callback)()) + { + auto func = reinterpret_cast<Vsp2AddBlendListenerType>(QGuiApplication::platformFunction(vsp2AddBlendListenerTypeIdentifier())); + if (func) + func(screen, callback); + } }; diff --git a/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc b/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc index 6aca88e46e..fc392ac369 100644 --- a/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc +++ b/src/platformheaders/eglfsfunctions/qeglfsfunctions.qdoc @@ -65,3 +65,78 @@ \c{QT_QPA_EGLFS_DISABLE_INPUT} is set or when building Qt without evdev support, this function will have no effect. */ + +/*! + \fn int QEglFSFunctions::vsp2AddLayer(const QScreen *screen, int dmabufFd, const QSize &size, const QPoint &position, uint drmPixelFormat, uint bytesPerLine) + \internal + \preliminary +*/ + +/*! + \fn bool QEglFSFunctions::vsp2RemoveLayer(const QScreen *screen, int id) + \internal + \preliminary +*/ + +/*! + \fn void QEglFSFunctions::vsp2SetLayerBuffer(const QScreen *screen, int id, int dmabufFd) + \internal + \preliminary +*/ + +/*! + \fn bool QEglFSFunctions::vsp2SetLayerPosition(const QScreen *screen, int id, const QPoint &position) + \internal + \preliminary +*/ + +/*! + \fn void QEglFSFunctions::vsp2AddBlendListener(const QScreen *screen, void(*callback)()) + \internal + \preliminary +*/ + +/*! + \typedef QEglFSFunctions::Vsp2AddBlendListenerType + \internal +*/ + +/*! + \typedef QEglFSFunctions::Vsp2AddLayerType + \internal +*/ + +/*! + \typedef QEglFSFunctions::Vsp2RemoveLayerType + \internal +*/ + +/*! + \typedef QEglFSFunctions::Vsp2SetLayerBufferType + \internal +*/ + +/*! + \typedef QEglFSFunctions::Vsp2SetLayerPositionType + \internal +*/ + +/*! \fn QByteArray QEglFSFunctions::vsp2AddBlendListenerTypeIdentifier() + \internal + */ + +/*! \fn QByteArray QEglFSFunctions::vsp2AddLayerTypeIdentifier() + \internal + */ + +/*! \fn QByteArray QEglFSFunctions::vsp2RemoveLayerTypeIdentifier() + \internal + */ + +/*! \fn QByteArray QEglFSFunctions::vsp2SetLayerBufferTypeIdentifier() + \internal + */ + +/*! \fn QByteArray QEglFSFunctions::vsp2SetLayerPositionTypeIdentifier() + \internal + */ diff --git a/src/platformheaders/nativecontexts/qcocoanativecontext.h b/src/platformheaders/nativecontexts/qcocoanativecontext.h index 16cabe1737..8227485b15 100644 --- a/src/platformheaders/nativecontexts/qcocoanativecontext.h +++ b/src/platformheaders/nativecontexts/qcocoanativecontext.h @@ -45,6 +45,10 @@ QT_BEGIN_NAMESPACE +#if defined(Q_CLANG_QDOC) +typedef void NSOpenGLContext; +#endif + struct QCocoaNativeContext { QCocoaNativeContext() diff --git a/src/platformheaders/nativecontexts/qeglnativecontext.h b/src/platformheaders/nativecontexts/qeglnativecontext.h index eae74126fd..d4a0e998da 100644 --- a/src/platformheaders/nativecontexts/qeglnativecontext.h +++ b/src/platformheaders/nativecontexts/qeglnativecontext.h @@ -46,6 +46,11 @@ QT_BEGIN_NAMESPACE +#if defined(Q_CLANG_QDOC) +typedef int EGLContext; +typedef int EGLDisplay; +#endif + struct QEGLNativeContext { QEGLNativeContext() diff --git a/src/platformheaders/nativecontexts/qglxnativecontext.h b/src/platformheaders/nativecontexts/qglxnativecontext.h index 0895261fdd..2b566d127a 100644 --- a/src/platformheaders/nativecontexts/qglxnativecontext.h +++ b/src/platformheaders/nativecontexts/qglxnativecontext.h @@ -46,6 +46,13 @@ QT_BEGIN_NAMESPACE +#if defined(Q_CLANG_QDOC) +typedef int GLXContext; +typedef void Display; +typedef int Window; +typedef int VisualID; +#endif + struct QGLXNativeContext { QGLXNativeContext() diff --git a/src/platformheaders/nativecontexts/qglxnativecontext.qdoc b/src/platformheaders/nativecontexts/qglxnativecontext.qdoc index 64b551aeb8..56182534a5 100644 --- a/src/platformheaders/nativecontexts/qglxnativecontext.qdoc +++ b/src/platformheaders/nativecontexts/qglxnativecontext.qdoc @@ -77,7 +77,7 @@ */ /*! - \fn QGLXNativeContext::QGLXNativeContext(GLXContext ctx, Display *dpy = 0, Window wnd = 0, VisualID vid = 0) + \fn QGLXNativeContext::QGLXNativeContext(GLXContext ctx, Display *dpy, Window wnd, VisualID vid) Constructs a new instance with the provided \a ctx, \a dpy, \a wnd, \a vid handles. */ diff --git a/src/platformheaders/nativecontexts/qwglnativecontext.h b/src/platformheaders/nativecontexts/qwglnativecontext.h index 1c742604e6..24244b285f 100644 --- a/src/platformheaders/nativecontexts/qwglnativecontext.h +++ b/src/platformheaders/nativecontexts/qwglnativecontext.h @@ -46,6 +46,11 @@ QT_BEGIN_NAMESPACE +#if defined(Q_CLANG_QDOC) +typedef int HGLRC; +typedef int HWND; +#endif + class QWGLNativeContext { public: diff --git a/src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc b/src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc index 9061690681..a52bbe061b 100644 --- a/src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc +++ b/src/platformheaders/windowsfunctions/qwindowswindowfunctions.qdoc @@ -124,7 +124,7 @@ */ /*! - \fn QByteArray setWindowActivationBehaviorIdentifier() + \fn QByteArray QWindowsWindowFunctions::setWindowActivationBehaviorIdentifier() This function returns a bytearray that can be used to query QGuiApplication::platformFunction() to retrieve the SetWindowActivationBehaviorType |