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