android: Implement nativeResourceForContext
To bring the plugin on par with xcb and eglfs in this regard. New code has a better way to query these via QOpenGLContext::nativeInterface() (or, more correctly, will have a better way once the ability to query the config and display is added in a follow up patch), but having some symmetry between the EGL-based plugins won't hurt. This is relevant in particular with OpenXR: not knowing the EGLConfig makes it impossible to use the API on Android: https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrGraphicsBindingOpenGLESAndroidKHR Pick-to: 6.2 Change-Id: I163aed070096a4b58d3f650906c2f70ea31b3231 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
This commit is contained in:
parent
0dbed05bbc
commit
0cea6384ae
@ -143,6 +143,19 @@ void *QAndroidPlatformNativeInterface::nativeResourceForWindow(const QByteArray
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *QAndroidPlatformNativeInterface::nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context)
|
||||||
|
{
|
||||||
|
if (QEGLPlatformContext *platformContext = static_cast<QEGLPlatformContext *>(context->handle())) {
|
||||||
|
if (resource == "eglcontext")
|
||||||
|
return platformContext->eglContext();
|
||||||
|
else if (resource == "eglconfig")
|
||||||
|
return platformContext->eglConfig();
|
||||||
|
else if (resource == "egldisplay")
|
||||||
|
return platformContext->eglDisplay();
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
void QAndroidPlatformNativeInterface::customEvent(QEvent *event)
|
void QAndroidPlatformNativeInterface::customEvent(QEvent *event)
|
||||||
{
|
{
|
||||||
if (event->type() != QEvent::User)
|
if (event->type() != QEvent::User)
|
||||||
|
@ -65,6 +65,7 @@ class QAndroidPlatformNativeInterface: public QPlatformNativeInterface
|
|||||||
public:
|
public:
|
||||||
void *nativeResourceForIntegration(const QByteArray &resource) override;
|
void *nativeResourceForIntegration(const QByteArray &resource) override;
|
||||||
void *nativeResourceForWindow(const QByteArray &resource, QWindow *window) override;
|
void *nativeResourceForWindow(const QByteArray &resource, QWindow *window) override;
|
||||||
|
void *nativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) override;
|
||||||
std::shared_ptr<AndroidStyle> m_androidStyle;
|
std::shared_ptr<AndroidStyle> m_androidStyle;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user