diff mbox

[v5,09/13] package/opencv: add opengl support

Message ID 1433672799-21387-10-git-send-email-s.martin49@gmail.com
State Superseded
Headers show

Commit Message

Samuel Martin June 7, 2015, 10:26 a.m. UTC
In OpenCV, OpenGL support is done using extensions from 3rd party
framework: either Qt5OpenGL with Qt5 (with GL support only, not GLES);
or gtkglext (which is not available in Buildroot) with gtk2

So, make OpenGL knob visible when Qt5 support is selected.

Signed-off-by: Samuel Martin <s.martin49@gmail.com>

---
changes v4->v5:
- new patch
---
 package/opencv/Config.in | 11 +++++++++++
 package/opencv/opencv.mk |  7 +++++++
 2 files changed, 18 insertions(+)

Comments

Yann E. MORIN June 7, 2015, 12:41 p.m. UTC | #1
Samuel, All,

On 2015-06-07 12:26 +0200, Samuel Martin spake thusly:
> In OpenCV, OpenGL support is done using extensions from 3rd party
> framework: either Qt5OpenGL with Qt5 (with GL support only, not GLES);
> or gtkglext (which is not available in Buildroot) with gtk2
> 
> So, make OpenGL knob visible when Qt5 support is selected.
> 
> Signed-off-by: Samuel Martin <s.martin49@gmail.com>
> 
> ---
> changes v4->v5:
> - new patch
> ---
>  package/opencv/Config.in | 11 +++++++++++
>  package/opencv/opencv.mk |  7 +++++++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/package/opencv/Config.in b/package/opencv/Config.in
> index 55e7580..f4072ef 100644
> --- a/package/opencv/Config.in
> +++ b/package/opencv/Config.in
> @@ -227,6 +227,17 @@ config BR2_PACKAGE_OPENCV_WITH_JPEG
>  	help
>  	  Use shared libjpeg from the target system.
>  
> +config BR2_PACKAGE_OPENCV_WITH_OPENGL
> +	bool "opengl support"
> +	# OpenGL support done using Qt5OpenGL, so depends on QT5_BACKEND
> +	depends on BR2_PACKAGE_OPENCV_QT5_BACKEND
> +	# OpenGL support requires Qt5OpenGL with GL support
> +	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
> +	depends on BR2_PACKAGE_HAS_LIBGL

I was going to say that BR2_PACKAGE_QT5_GL_AVAILABLE already depends on
BR2_PACKAGE_HAS_LIBGL, so it was not needed.

However, as you say in the commit log, BR2_PACKAGE_QT5_GL_AVAILABLE also
alternatively depends on BR2_PACKAGE_HAS_LIBGLES, which OpenCV does not
support.

So, that 'depends on BR2_PACKAGE_HAS_LIBGL' makes sense. I'd however add
a comment about that, like so:

    # OpenGL support requires Qt5OpenGL with GL support, not GLES
    depends on BR2_PACKAGE_QT5_GL_AVAILABLE
    depends on BR2_PACKAGE_HAS_LIBGL

> +	select BR2_PACKAGE_QT5BASE_OPENGL
> +	help
> +	  Enable OpenGL for UI.

Maybe add a comment about the Qt5 dependency:

    comment "OpenGL support needs Qt5 and an OpenGL provider"

Regards,
Yann E. MORIN.
diff mbox

Patch

diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index 55e7580..f4072ef 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -227,6 +227,17 @@  config BR2_PACKAGE_OPENCV_WITH_JPEG
 	help
 	  Use shared libjpeg from the target system.
 
+config BR2_PACKAGE_OPENCV_WITH_OPENGL
+	bool "opengl support"
+	# OpenGL support done using Qt5OpenGL, so depends on QT5_BACKEND
+	depends on BR2_PACKAGE_OPENCV_QT5_BACKEND
+	# OpenGL support requires Qt5OpenGL with GL support
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE
+	depends on BR2_PACKAGE_HAS_LIBGL
+	select BR2_PACKAGE_QT5BASE_OPENGL
+	help
+	  Enable OpenGL for UI.
+
 config BR2_PACKAGE_OPENCV_WITH_PNG
 	bool "png support"
 	select BR2_PACKAGE_LIBPNG
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
index 6162d1e..2902a20 100644
--- a/package/opencv/opencv.mk
+++ b/package/opencv/opencv.mk
@@ -243,6 +243,13 @@  else
 OPENCV_CONF_OPTS += -DWITH_JPEG=OFF
 endif
 
+ifeq ($(BR2_PACKAGE_OPENCV_WITH_OPENGL),y)
+OPENCV_CONF_OPTS += -DWITH_OPENGL=ON
+OPENCV_DEPENDENCIES += libgl qt5base
+else
+OPENCV_CONF_OPTS += -DWITH_OPENGL=OFF
+endif
+
 ifeq ($(BR2_PACKAGE_OPENCV_WITH_PNG),y)
 OPENCV_CONF_OPTS += -DWITH_PNG=ON
 OPENCV_DEPENDENCIES += libpng