Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[eglfs] Add device integrations to extend nativeResourceForIntegratio…
…n. Contributes to JB#42170
  • Loading branch information
denexter committed Jul 25, 2018
1 parent 39f24dc commit 03895e5
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/plugins/platforms/eglfs/api/qeglfscontext.cpp
Expand Up @@ -333,7 +333,8 @@ void QEglFSContext::swapBuffers(QPlatformSurface *surface)
}

qt_egl_device_integration()->waitForVSync(surface);
QEGLPlatformContext::swapBuffers(surface);
if (!qt_egl_device_integration()->swapBuffers(surface))
QEGLPlatformContext::swapBuffers(surface);
qt_egl_device_integration()->presentBuffer(surface);
}

Expand Down
14 changes: 14 additions & 0 deletions src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp
Expand Up @@ -47,6 +47,7 @@
#include "qeglfshooks_p.h"

#include <QtEglSupport/private/qeglconvenience_p.h>
#include <QtEglSupport/private/qeglplatformcontext_p.h>
#include <QGuiApplication>
#include <private/qguiapplication_p.h>
#include <QScreen>
Expand Down Expand Up @@ -336,6 +337,12 @@ void QEglFSDeviceIntegration::waitForVSync(QPlatformSurface *surface) const
#endif
}

bool QEglFSDeviceIntegration::swapBuffers(QPlatformSurface *surface)
{
Q_UNUSED(surface);
return false;
}

void QEglFSDeviceIntegration::presentBuffer(QPlatformSurface *surface)
{
Q_UNUSED(surface);
Expand All @@ -356,6 +363,13 @@ void *QEglFSDeviceIntegration::wlDisplay() const
return Q_NULLPTR;
}

void *QEglFSDeviceIntegration::nativeResourceForIntegration(const QByteArray &resource)
{
Q_UNUSED(resource);

return nullptr;
}

EGLConfig QEglFSDeviceIntegration::chooseConfig(EGLDisplay display, const QSurfaceFormat &format)
{
class Chooser : public QEglConfigChooser {
Expand Down
4 changes: 4 additions & 0 deletions src/plugins/platforms/eglfs/api/qeglfsdeviceintegration_p.h
Expand Up @@ -106,6 +106,10 @@ class Q_EGLFS_EXPORT QEglFSDeviceIntegration

virtual void *wlDisplay() const;

// MER: extensions for hwcomposer device integration.
virtual bool swapBuffers(QPlatformSurface *surface);
virtual void *nativeResourceForIntegration(const QByteArray &resource);

static EGLConfig chooseConfig(EGLDisplay display, const QSurfaceFormat &format);
};

Expand Down
1 change: 1 addition & 0 deletions src/plugins/platforms/eglfs/api/qeglfsintegration.cpp
Expand Up @@ -324,6 +324,7 @@ void *QEglFSIntegration::nativeResourceForIntegration(const QByteArray &resource
result = qt_egl_device_integration()->wlDisplay();
break;
default:
result = qt_egl_device_integration()->nativeResourceForIntegration(resource);
break;
}

Expand Down

0 comments on commit 03895e5

Please sign in to comment.