> On Aug 25, 2015, at 12:00 AM, Andreas Müller <[email protected]> 
> wrote:
> 
> On Mon, Aug 24, 2015 at 7:43 PM, Khem Raj <[email protected]> wrote:
>> rpi uses bcom EGL implementation and it has descrepency when it comes to
>> defining 'EGLNativePixmapType', lets typecast the ussage of this type to
>> avoid this sort of errors.
>> 
>> Signed-off-by: Khem Raj <[email protected]>
> Upstream-Status?

Pending

>> ---
>> ...egl-Typecast-proper-EGLNativeWindowType-t.patch | 56 
>> ++++++++++++++++++++++
>> recipes-qt/qt5/qtwayland_git.bb                    |  1 +
>> 2 files changed, 57 insertions(+)
>> create mode 100644 
>> recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch
>> 
>> diff --git 
>> a/recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch
>>  
>> b/recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch
>> new file mode 100644
>> index 0000000..2e1f2c4
>> --- /dev/null
>> +++ 
>> b/recipes-qt/qt5/qtwayland/0001-xcomposite-egl-Typecast-proper-EGLNativeWindowType-t.patch
>> @@ -0,0 +1,56 @@
>> +From 91746518a0cd56d7b0bfda69ba6cf743bf051fb9 Mon Sep 17 00:00:00 2001
>> +From: Khem Raj <[email protected]>
>> +Date: Sun, 23 Aug 2015 17:33:25 -0700
>> +Subject: [PATCH] xcomposite-egl: Typecast proper EGLNativeWindowType to
>> + eglCreateWindowSurface params
>> +
>> +This surfaces on rpi which has slightly different definition of
>> +EGLNativeWindowType
>> +
>> +Fixes errors like
>> +
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/armv7at2hf-vfp-neon-angstrom-linux-gnueabi/qtwayland/5.4.2+gitAUTOINC+182488129c-r0/git/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp:117:26:
>>  error: no matching function for call
>> +      to 'eglCreatePixmapSurface'
>> +    EGLSurface surface = 
>> eglCreatePixmapSurface(mEglDisplay,config,pixmap,attribList.constData());
>> +                         ^~~~~~~~~~~~~~~~~~~~~~
>> +/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/sysroots/raspberrypi2/usr/include/EGL/egl.h:270:31:
>>  note: candidate function not viable: no known conversion from 'Pixmap' (aka 
>> 'unsigned long') to 'EGLNativePixmapType' (aka 'void *') for 3rd argument; 
>> take the
>> +      address of the argument with &
>> +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, 
>> EGLConfig config,
>> +                              ^
>> +1 error generated.
>> +
>> +Signed-off-by: Khem Raj <[email protected]>
>> +---
>> + .../client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp               | 
>> 2 +-
>> + .../compositor/xcomposite-egl/xcompositeeglintegration.cpp              | 
>> 2 +-
>> + 2 files changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git 
>> a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp
>>  
>> b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp
>> +index 01d6324..e268ede 100644
>> +--- 
>> a/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp
>> ++++ 
>> b/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp
>> +@@ -122,7 +122,7 @@ void QWaylandXCompositeEGLWindow::createEglSurface()
>> +     XCompositeRedirectWindow(m_glxIntegration->xDisplay(), m_xWindow, 
>> CompositeRedirectManual);
>> +     XMapWindow(m_glxIntegration->xDisplay(), m_xWindow);
>> +
>> +-    m_surface = eglCreateWindowSurface(m_glxIntegration->eglDisplay(), 
>> m_config, m_xWindow,0);
>> ++    m_surface = eglCreateWindowSurface(m_glxIntegration->eglDisplay(), 
>> m_config, (EGLNativeWindowType)m_xWindow,0);
>> +     if (m_surface == EGL_NO_SURFACE) {
>> +         qFatal("Could not make eglsurface");
>> +     }
>> +diff --git 
>> a/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp
>>  
>> b/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp
>> +index 2401d67..61664b5 100644
>> +--- 
>> a/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp
>> ++++ 
>> b/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp
>> +@@ -114,7 +114,7 @@ void 
>> XCompositeEglClientBufferIntegration::bindTextureToBuffer(struct ::wl_resou
>> +     attribList.append(EGL_TEXTURE_2D);
>> +     attribList.append(EGL_NONE);
>> +
>> +-    EGLSurface surface = 
>> eglCreatePixmapSurface(mEglDisplay,config,pixmap,attribList.constData());
>> ++    EGLSurface surface = 
>> eglCreatePixmapSurface(mEglDisplay,config,(EGLNativeWindowType)pixmap,attribList.constData());
> ^ When looking at [1] this does not look correct to me.
> 
> Generally I think errors caused by a specific egl implementation
> should not be fixed in packets using egl - and yes I know we have
> these hacks in qt.
> 
> [1] 
> https://www.khronos.org/registry/egl/sdk/docs/man/html/eglCreatePixmapSurface.xhtml
> 
> Andreas
> --
> _______________________________________________
> Openembedded-devel mailing list
> [email protected]
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

-- 
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to