1From dc8c12331e567ace9e05fce3198c1c121ec2927d Mon Sep 17 00:00:00 2001 2From: Wenlin Kang <wenlin.kang@windriver.com> 3Date: Thu, 8 Sep 2016 12:18:13 +0800 4Subject: [PATCH] qtmultimedia: fix a conflicting declaration 5 6Use lgl2.h instead of gl2.h and gl2ext.h, 7fix a "conflicting declaration" error. 8 9Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com> 10Upstream-Status: Pending 11--- 12 src/plugins/videonode/imx6/lgl2.h | 46 +++++++++++++++++++ 13 .../imx6/qsgvivantevideomaterial.cpp | 5 +- 14 .../videonode/imx6/qsgvivantevideonode.cpp | 5 +- 15 3 files changed, 52 insertions(+), 4 deletions(-) 16 create mode 100644 src/plugins/videonode/imx6/lgl2.h 17 18diff --git a/src/plugins/videonode/imx6/lgl2.h b/src/plugins/videonode/imx6/lgl2.h 19new file mode 100644 20index 00000000..24236976 21--- /dev/null 22+++ b/src/plugins/videonode/imx6/lgl2.h 23@@ -0,0 +1,46 @@ 24+#ifndef __L_GL2_H__ 25+#define __L_GL2_H__ 26+ 27+// this file comes from <GLES2/gl2.h> and <GLES2/gl2ext.h>, 28+// it's a light gl2.h. 29+ 30+/*------------------------------------------------------------------------- 31+ * Definition of KHRONOS_APIENTRY 32+ *------------------------------------------------------------------------- 33+ * This follows the return type of the function and precedes the function 34+ * name in the function prototype. 35+ */ 36+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) 37+ /* Win32 but not WinCE */ 38+# define KHRONOS_APIENTRY __stdcall 39+#else 40+# define KHRONOS_APIENTRY 41+#endif 42+ 43+#ifndef GL_APIENTRY 44+# define GL_APIENTRY KHRONOS_APIENTRY 45+#endif 46+ 47+#ifndef GL_APIENTRYP 48+# define GL_APIENTRYP GL_APIENTRY* 49+#endif 50+ 51+typedef void GLvoid; 52+typedef unsigned int GLenum; 53+typedef unsigned int GLuint; 54+typedef int GLsizei; 55+ 56+#define GL_VIV_YV12 0x8FC0 57+#define GL_VIV_NV12 0x8FC1 58+#define GL_VIV_YUY2 0x8FC2 59+#define GL_VIV_UYVY 0x8FC3 60+#define GL_VIV_NV21 0x8FC4 61+#define GL_VIV_I420 0x8FC5 62+ 63+typedef void (GL_APIENTRYP PFNGLTEXDIRECTVIVMAPPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical); 64+typedef void (GL_APIENTRYP PFNGLTEXDIRECTMAPVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical); 65+typedef void (GL_APIENTRYP PFNGLTEXDIRECTVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Pixels); 66+typedef void (GL_APIENTRYP PFNGLTEXDIRECTINVALIDATEVIVPROC) (GLenum Target); 67+typedef void (GL_APIENTRYP PFNGLTEXDIRECTTILEDMAPVIVPROC) (GLenum Target, GLsizei Width, GLsizei Height, GLenum Format, GLvoid ** Logical, const GLuint * Physical); 68+ 69+#endif 70diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp 71index e1468fe3..a77a9d6a 100644 72--- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp 73+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp 74@@ -37,8 +37,9 @@ 75 ** 76 ****************************************************************************/ 77 78-#include <GLES2/gl2.h> 79-#include <GLES2/gl2ext.h> 80+// use lgl2.h instead of <GLES2/gl2.h> and <GLES2/gl2ext.h>, 81+// fixes a conflicting declaration issue. 82+#include "lgl2.h" 83 84 #include "qsgvivantevideomaterial.h" 85 #include "qsgvivantevideomaterialshader.h" 86diff --git a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp 87index c8d83b4b..5b1b8f24 100644 88--- a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp 89+++ b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp 90@@ -37,8 +37,9 @@ 91 ** 92 ****************************************************************************/ 93 94-#include <GLES2/gl2.h> 95-#include <GLES2/gl2ext.h> 96+// use lgl2.h instead of <GLES2/gl2.h> and <GLES2/gl2ext.h>, 97+// fixes a conflicting declaration issue. 98+#include "lgl2.h" 99 100 #include "qsgvivantevideonode.h" 101 #include "qsgvivantevideomaterialshader.h" 102