Mesa (gles3): Add es3api

Matt Turner mattst88 at kemper.freedesktop.org
Fri Aug 31 17:58:57 UTC 2012


Module: Mesa
Branch: gles3
Commit: d1f50c17bbad725b742ed978ee4a239a50d0e648
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d1f50c17bbad725b742ed978ee4a239a50d0e648

Author: Matt Turner <mattst88 at gmail.com>
Date:   Tue Aug 28 12:08:43 2012 -0700

Add es3api

---

 configure.ac                 |   23 ++++++++++++++--
 src/mapi/es3api/.gitignore   |    2 +
 src/mapi/es3api/Makefile.am  |   60 ++++++++++++++++++++++++++++++++++++++++++
 src/mapi/es3api/glesv3.pc.in |   12 ++++++++
 4 files changed, 94 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index e9d4e79..7eca9ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -535,6 +535,11 @@ AC_ARG_ENABLE([gles2],
         [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
     [enable_gles2="$enableval"],
     [enable_gles2=no])
+AC_ARG_ENABLE([gles3],
+    [AS_HELP_STRING([--enable-gles3],
+        [enable support for OpenGL ES 3.x API @<:@default=no@:>@])],
+    [enable_gles3="$enableval"],
+    [enable_gles3=no])
 AC_ARG_ENABLE([openvg],
     [AS_HELP_STRING([--enable-openvg],
         [enable support for OpenVG API @<:@default=no@:>@])],
@@ -656,6 +661,7 @@ esac
 if test "x$enable_opengl" = xno -a \
         "x$enable_gles1" = xno -a \
         "x$enable_gles2" = xno -a \
+        "x$enable_gles3" = xno -a \
         "x$enable_openvg" = xno -a \
         "x$enable_xorg" = xno -a \
         "x$enable_xa" = xno -a \
@@ -750,8 +756,13 @@ if test "x$enable_gles2" = xyes; then
     CORE_DIRS="$CORE_DIRS mapi/es2api"
 fi
 
+# build es3api if OpenGL ES 2.x is enabled
+if test "x$enable_gles3" = xyes; then
+    CORE_DIRS="$CORE_DIRS mapi/es3api"
+fi
+
 # build glsl and mesa if OpenGL or OpenGL ES is enabled
-case "x$enable_opengl$enable_gles1$enable_gles2" in
+case "x$enable_opengl$enable_gles1$enable_gles2$enable_gles3" in
 x*yes*)
     CORE_DIRS="mapi/glapi/gen $CORE_DIRS glsl mesa"
     ;;
@@ -901,6 +912,8 @@ GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
+GLESv3_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
+GLESv3_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
 
 AC_SUBST([GL_LIB_DEPS])
 AC_SUBST([GL_PC_REQ_PRIV])
@@ -911,6 +924,8 @@ AC_SUBST([GLESv1_CM_LIB_DEPS])
 AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
 AC_SUBST([GLESv2_LIB_DEPS])
 AC_SUBST([GLESv2_PC_LIB_PRIV])
+AC_SUBST([GLESv3_LIB_DEPS])
+AC_SUBST([GLESv3_PC_LIB_PRIV])
 
 GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS"
 AC_SUBST([GLAPI_LIB_DEPS])
@@ -1536,7 +1551,7 @@ AC_SUBST([LLVM_INCLUDEDIR])
 AC_SUBST([LLVM_VERSION])
 AC_SUBST([CLANG_RESOURCE_DIR])
 
-case "x$enable_opengl$enable_gles1$enable_gles2" in
+case "x$enable_opengl$enable_gles1$enable_gles2$enable_gles3" in
 x*yes*)
     EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
     ;;
@@ -2028,6 +2043,8 @@ AC_CONFIG_FILES([configs/current
 		src/mapi/es1api/glesv1_cm.pc
 		src/mapi/es2api/Makefile
 		src/mapi/es2api/glesv2.pc
+		src/mapi/es3api/Makefile
+		src/mapi/es3api/glesv3.pc
 		src/mapi/glapi/Makefile
 		src/mapi/glapi/gen/Makefile
 		src/mapi/shared-glapi/Makefile
@@ -2074,7 +2091,7 @@ echo "        includedir:      $includedir"
 
 dnl API info
 echo ""
-echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
+echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2 ES3: $enable_gles3)"
 echo "        OpenVG:          $enable_openvg"
 
 dnl Driver info
diff --git a/src/mapi/es3api/.gitignore b/src/mapi/es3api/.gitignore
new file mode 100644
index 0000000..39b0e7c
--- /dev/null
+++ b/src/mapi/es3api/.gitignore
@@ -0,0 +1,2 @@
+glapi_mapi_tmp.h
+Makefile
diff --git a/src/mapi/es3api/Makefile.am b/src/mapi/es3api/Makefile.am
new file mode 100644
index 0000000..7e5e20e
--- /dev/null
+++ b/src/mapi/es3api/Makefile.am
@@ -0,0 +1,60 @@
+# Copyright © 2012 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+AM_CPPFLAGS = \
+	$(DEFINES) \
+	-I$(top_srcdir)/include \
+	-I$(top_srcdir)/src/mapi \
+	-DMAPI_MODE_BRIDGE \
+	-DMAPI_ABI_HEADER=\"glapi_mapi_tmp.h\"
+
+AM_CFLAGS = $(VISIBILITY_CFLAGS)
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = glesv3.pc
+
+GLES_includedir = $(includedir)/GLES
+GLES_include_HEADERS = \
+	$(top_srcdir)/include/GLES/egl.h \
+	$(top_srcdir)/include/GLES/gl.h \
+	$(top_srcdir)/include/GLES/glext.h \
+	$(top_srcdir)/include/GLES/glplatform.h
+
+lib_LTLIBRARIES = libGLESv3.la
+
+libGLESv3_la_SOURCES = ../mapi/entry.c glapi_mapi_tmp.h
+libGLESv3_la_LIBADD = $(GLESv3_LIB_DEPS)
+libGLESv3_la_LDFLAGS = -version-number 3 -no-undefined
+
+include ../glapi/gen/glapi_gen.mk
+glapi_mapi_tmp.h: ../glapi/gen/gl_and_es_API.xml $(glapi_gen_mapi_deps)
+	$(call glapi_gen_mapi,$<,es3api)
+
+BUILT_SOURCES = glapi_mapi_tmp.h
+CLEANFILES = $(BUILT_SOURCES)
+
+# Provide compatibility with scripts for the old Mesa build system for
+# a while by putting a link to the driver into /lib of the build tree.
+all-local: libGLESv3.la
+	$(MKDIR_P) $(top_builddir)/$(LIB_DIR);
+	ln -f .libs/libGLESv3.so $(top_builddir)/$(LIB_DIR)/libGLESv3.so
+	ln -f .libs/libGLESv3.so.3 $(top_builddir)/$(LIB_DIR)/libGLESv3.so.3
+	ln -f .libs/libGLESv3.so.3.0.0 $(top_builddir)/$(LIB_DIR)/libGLESv3.so.3.0.0
diff --git a/src/mapi/es3api/glesv3.pc.in b/src/mapi/es3api/glesv3.pc.in
new file mode 100644
index 0000000..e5bf12f
--- /dev/null
+++ b/src/mapi/es3api/glesv3.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=${prefix}
+libdir=@libdir@
+includedir=@includedir@
+
+Name: glesv2
+Description: Mesa OpenGL ES 2.0 library
+Requires.private:
+Version: @VERSION@
+Libs: -L${libdir} -lGLESv2
+Libs.private: @GLESv2_PC_LIB_PRIV@
+Cflags: -I${includedir}




More information about the mesa-commit mailing list