From 199febefb670f227ceb2824b086f476e4362ca28 Mon Sep 17 00:00:00 2001 From: kallaballa Date: Tue, 11 Apr 2023 20:52:13 +0200 Subject: [PATCH] GLES3 adaption --- modules/viz2d/CMakeLists.txt | 3 ++- modules/viz2d/include/opencv2/viz2d/dialog.hpp | 9 +++++++++ modules/viz2d/include/opencv2/viz2d/viz2d.hpp | 9 ++++++++- modules/viz2d/samples/cpp/Makefile | 1 + modules/viz2d/src/dialog.cpp | 10 ++++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/modules/viz2d/CMakeLists.txt b/modules/viz2d/CMakeLists.txt index cf2648ec3..d58969d39 100644 --- a/modules/viz2d/CMakeLists.txt +++ b/modules/viz2d/CMakeLists.txt @@ -18,12 +18,13 @@ elseif(NOT nanovg_FOUND) elseif(NOT nanogui_FOUND) message(STATUS "Module opencv_viz2d disabled because NanoGUI was not found") ocv_module_disable(viz2d) -else() # we need C++20 +else() if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qstd=c++20") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20") endif() +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVIZ2D_USE_ES3=1") endif() include_directories(${glfw3_INCLUDE_DIRS}) diff --git a/modules/viz2d/include/opencv2/viz2d/dialog.hpp b/modules/viz2d/include/opencv2/viz2d/dialog.hpp index 2f4304374..f19aaae78 100644 --- a/modules/viz2d/include/opencv2/viz2d/dialog.hpp +++ b/modules/viz2d/include/opencv2/viz2d/dialog.hpp @@ -5,7 +5,16 @@ #ifndef SRC_COMMON_DIALOG_HPP_ #define SRC_COMMON_DIALOG_HPP_ +#ifdef __EMSCRIPTEN__ +#define VIZ2D_USE_ES3 1 +#endif +#ifndef VIZ2D_USE_ES3 +#define NANOGUI_USE_OPENGL +#else +#define NANOGUI_USE_GLES +#define NANOGUI_GLES_VERSION 3 +#endif #include #include diff --git a/modules/viz2d/include/opencv2/viz2d/viz2d.hpp b/modules/viz2d/include/opencv2/viz2d/viz2d.hpp index 401e10b7e..842de2478 100644 --- a/modules/viz2d/include/opencv2/viz2d/viz2d.hpp +++ b/modules/viz2d/include/opencv2/viz2d/viz2d.hpp @@ -17,11 +17,18 @@ #include #include #include -#include #ifdef __EMSCRIPTEN__ #define VIZ2D_USE_ES3 1 #include #endif + +#ifndef VIZ2D_USE_ES3 +#define NANOGUI_USE_OPENGL +#else +#define NANOGUI_USE_GLES +#define NANOGUI_GLES_VERSION 3 +#endif +#include #ifndef VIZ2D_USE_ES3 #include #else diff --git a/modules/viz2d/samples/cpp/Makefile b/modules/viz2d/samples/cpp/Makefile index 6ce89c754..b14c24929 100644 --- a/modules/viz2d/samples/cpp/Makefile +++ b/modules/viz2d/samples/cpp/Makefile @@ -4,6 +4,7 @@ ifdef EMSDK LDFLAGS := -flto -L/usr/local/lib/ -L../common LIBS := -lopencv_core -lopencv_imgproc -lnanogui else +#CXXFLAGS += -DVIZ2D_USE_ES3=1 LDFLAGS := -L/opt/local/lib -flto -L/usr/local/lib64 -L../common/ -L/usr/local/lib LIBS := -lnanogui endif diff --git a/modules/viz2d/src/dialog.cpp b/modules/viz2d/src/dialog.cpp index 11bea4234..ca5927a0a 100644 --- a/modules/viz2d/src/dialog.cpp +++ b/modules/viz2d/src/dialog.cpp @@ -5,6 +5,16 @@ #include "opencv2/viz2d/dialog.hpp" #include +#ifdef __EMSCRIPTEN__ +#define VIZ2D_USE_ES3 1 +#endif +#ifndef VIZ2D_USE_ES3 +# include +# define GLFW_INCLUDE_GLCOREARB +#else +# define GLFW_INCLUDE_ES3 +# define GLFW_INCLUDE_GLEXT +#endif #include namespace cv {