From 95192d6d4b7637bdd9c0347b1b4a8acac424f834 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 12 Jan 2021 12:43:53 +0100 Subject: [PATCH] factorize context initialization --- AABB_tree/demo/AABB_tree/AABB_demo.cpp | 18 +++--------------- .../demo/Alpha_shapes_3/Alpha_shape_3.cpp | 18 ++---------------- .../Circular_kernel_3/Circular_kernel_3.cpp | 19 ++----------------- .../include/CGAL/Qt/Context_initialization.h | 15 +++++++++++---- .../Linear_cell_complex_3_demo.cpp | 6 ++---- .../include/CGAL/draw_linear_cell_complex.h | 4 +++- Nef_3/include/CGAL/draw_nef_3.h | 4 +++- .../CGAL/draw_periodic_2_triangulation_2.h | 4 +++- .../periodic_3_triangulation_3_demo.cpp | 8 ++------ .../Periodic_Lloyd_3/Periodic_Lloyd_3.cpp | 14 ++++---------- Point_set_3/include/CGAL/draw_point_set_3.h | 4 +++- Polygon/include/CGAL/draw_polygon_2.h | 4 +++- .../include/CGAL/draw_polygon_with_holes_2.h | 4 +++- Polyhedron/include/CGAL/draw_polyhedron.h | 4 +++- .../Principal_component_analysis/PCA_demo.cpp | 11 ++--------- Surface_mesh/include/CGAL/draw_surface_mesh.h | 4 +++- .../include/CGAL/draw_face_graph_with_paths.h | 4 +++- .../include/CGAL/draw_triangulation_2.h | 4 +++- .../demo/Triangulation_3/T3_demo.cpp | 13 +++---------- .../include/CGAL/draw_triangulation_3.h | 4 +++- .../include/CGAL/draw_voronoi_diagram_2.h | 4 +++- 21 files changed, 67 insertions(+), 103 deletions(-) diff --git a/AABB_tree/demo/AABB_tree/AABB_demo.cpp b/AABB_tree/demo/AABB_tree/AABB_demo.cpp index 061036cd9cd..4e643e352f3 100644 --- a/AABB_tree/demo/AABB_tree/AABB_demo.cpp +++ b/AABB_tree/demo/AABB_tree/AABB_demo.cpp @@ -19,24 +19,12 @@ #include #include #include - +#include int main(int argc, char **argv) { - QSurfaceFormat fmt; -#ifdef Q_OS_MAC - fmt.setVersion(4, 1); -#else - fmt.setVersion(4, 3); -#endif - fmt.setRenderableType(QSurfaceFormat::OpenGL); - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setOption(QSurfaceFormat::DebugContext); - QSurfaceFormat::setDefaultFormat(fmt); - //for windows -#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)) - QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); -#endif + + CGAL::init_ogl_context(4,3); QApplication app(argc, argv); app.setOrganizationDomain("inria.fr"); app.setOrganizationName("INRIA"); diff --git a/Alpha_shapes_3/demo/Alpha_shapes_3/Alpha_shape_3.cpp b/Alpha_shapes_3/demo/Alpha_shapes_3/Alpha_shape_3.cpp index a83e4ae1683..8c9baa63e53 100644 --- a/Alpha_shapes_3/demo/Alpha_shapes_3/Alpha_shape_3.cpp +++ b/Alpha_shapes_3/demo/Alpha_shapes_3/Alpha_shape_3.cpp @@ -5,27 +5,13 @@ #include +#include int main(int argc, char** argv) { - QSurfaceFormat fmt; -#ifdef Q_OS_MAC - fmt.setVersion(4, 1); -#else - fmt.setVersion(4, 3); -#endif - fmt.setRenderableType(QSurfaceFormat::OpenGL); - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setOption(QSurfaceFormat::DebugContext); - QSurfaceFormat::setDefaultFormat(fmt); - - //for Windows -#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)) - QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); -#endif + CGAL::init_ogl_context(4,3); QApplication application(argc,argv); - application.setOrganizationDomain("geometryfactory.com"); application.setOrganizationName("GeometryFactory"); application.setApplicationName("Alpha Shape Reconstruction"); diff --git a/Circular_kernel_3/demo/Circular_kernel_3/Circular_kernel_3.cpp b/Circular_kernel_3/demo/Circular_kernel_3/Circular_kernel_3.cpp index 72c7a0a4c09..72fe7f88c8b 100644 --- a/Circular_kernel_3/demo/Circular_kernel_3/Circular_kernel_3.cpp +++ b/Circular_kernel_3/demo/Circular_kernel_3/Circular_kernel_3.cpp @@ -1,25 +1,10 @@ #include "Viewer.h" #include - +#include int main(int argc, char** argv) { - QSurfaceFormat fmt; -#ifdef Q_OS_MAC - fmt.setVersion(4, 1); -#else - fmt.setVersion(4, 3); -#endif - fmt.setRenderableType(QSurfaceFormat::OpenGL); - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setOption(QSurfaceFormat::DebugContext); - QSurfaceFormat::setDefaultFormat(fmt); - // Read command lines arguments. - //for Windows -#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)) - QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); -#endif + CGAL::init_ogl_context(4,3); QApplication application(argc,argv); - // Instantiate the viewer. Viewer viewer; viewer.setWindowTitle("Intersection points of randomly generated circles."); diff --git a/GraphicsView/include/CGAL/Qt/Context_initialization.h b/GraphicsView/include/CGAL/Qt/Context_initialization.h index 2c29b4eb6a8..1ad56f04a79 100644 --- a/GraphicsView/include/CGAL/Qt/Context_initialization.h +++ b/GraphicsView/include/CGAL/Qt/Context_initialization.h @@ -12,14 +12,22 @@ #ifndef CGAL_QT_CONTEXT_INITIALIZATION_H #define CGAL_QT_CONTEXT_INITIALIZATION_H + namespace CGAL { -void init_ogl_context(int major, int minor) { +inline void init_ogl_context(int major, int minor) { QSurfaceFormat fmt; #ifdef Q_OS_MAC - fmt.setVersion(4, 1); + if(major == 4) + { + fmt.setVersion(4, 1); + } + else + { + fmt.setVersion(major, minor); + } #else - fmt.setVersion(4, 3); + fmt.setVersion(major, minor); #endif fmt.setRenderableType(QSurfaceFormat::OpenGL); fmt.setProfile(QSurfaceFormat::CoreProfile); @@ -33,7 +41,6 @@ void init_ogl_context(int major, int minor) { //We set the locale to avoid any trouble with VTK setlocale(LC_ALL, "C"); - return i; } } diff --git a/Linear_cell_complex/demo/Linear_cell_complex/Linear_cell_complex_3_demo.cpp b/Linear_cell_complex/demo/Linear_cell_complex/Linear_cell_complex_3_demo.cpp index 1672adad3f8..e27fbb07aad 100644 --- a/Linear_cell_complex/demo/Linear_cell_complex/Linear_cell_complex_3_demo.cpp +++ b/Linear_cell_complex/demo/Linear_cell_complex/Linear_cell_complex_3_demo.cpp @@ -14,6 +14,7 @@ #include #include #include +#include // Global random CGAL::Random myrandom; @@ -23,10 +24,7 @@ int main(int argc, char** argv) // std::cout<<"Size of dart: "<= QT_VERSION_CHECK(5, 3, 0)) - QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); -#endif + CGAL::init_ogl_context(4,3); QApplication application(argc,argv); application.setOrganizationDomain("cgal.org"); diff --git a/Linear_cell_complex/include/CGAL/draw_linear_cell_complex.h b/Linear_cell_complex/include/CGAL/draw_linear_cell_complex.h index 650d78b0893..a34263b2a47 100644 --- a/Linear_cell_complex/include/CGAL/draw_linear_cell_complex.h +++ b/Linear_cell_complex/include/CGAL/draw_linear_cell_complex.h @@ -13,6 +13,7 @@ #define CGAL_DRAW_LCC_H #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -404,9 +405,10 @@ void draw(const CGAL_LCC_TYPE& alcc, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"lccviewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); SimpleLCCViewerQt mainwindow(app.activeWindow(), &alcc, title, nofill, drawing_functor); mainwindow.show(); diff --git a/Nef_3/include/CGAL/draw_nef_3.h b/Nef_3/include/CGAL/draw_nef_3.h index f4babd5f6a6..1ccdb02415f 100644 --- a/Nef_3/include/CGAL/draw_nef_3.h +++ b/Nef_3/include/CGAL/draw_nef_3.h @@ -15,6 +15,7 @@ #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -253,9 +254,10 @@ void draw(const CGAL_NEF3_TYPE &anef, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc = 1; const char *argv[2] = {"nef_polyhedron_viewer", "\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc), const_cast(argv)); + QApplication app(argc, const_cast(argv)); DefaultColorFunctorNefPolyhedron fcolor; SimpleNefPolyhedronViewerQt diff --git a/Periodic_2_triangulation_2/include/CGAL/draw_periodic_2_triangulation_2.h b/Periodic_2_triangulation_2/include/CGAL/draw_periodic_2_triangulation_2.h index e81c6fca7c3..f0df1f59c34 100644 --- a/Periodic_2_triangulation_2/include/CGAL/draw_periodic_2_triangulation_2.h +++ b/Periodic_2_triangulation_2/include/CGAL/draw_periodic_2_triangulation_2.h @@ -14,6 +14,7 @@ #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -260,9 +261,10 @@ void draw(const CGAL_P2T2_TYPE& ap2t2, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"p2t2_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); DefaultColorFunctorP2T2 fcolor; SimplePeriodic2Triangulation2ViewerQt diff --git a/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/periodic_3_triangulation_3_demo.cpp b/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/periodic_3_triangulation_3_demo.cpp index 14e004ca71b..b66d053b8ad 100644 --- a/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/periodic_3_triangulation_3_demo.cpp +++ b/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/periodic_3_triangulation_3_demo.cpp @@ -1,15 +1,11 @@ #include "MainWindow.h" #include +#include int main(int argc, char *argv[]) { - QSurfaceFormat fmt; - fmt.setVersion(2, 1); - fmt.setRenderableType(QSurfaceFormat::OpenGL); - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setOption(QSurfaceFormat::DebugContext); - QSurfaceFormat::setDefaultFormat(fmt); + init_ogl_context(2,1); QApplication a(argc, argv); MainWindow w; //w.ui->setupUi(w); diff --git a/Periodic_3_triangulation_3/demo/Periodic_Lloyd_3/Periodic_Lloyd_3.cpp b/Periodic_3_triangulation_3/demo/Periodic_Lloyd_3/Periodic_Lloyd_3.cpp index 6e0435f4b4e..3778226b2f5 100644 --- a/Periodic_3_triangulation_3/demo/Periodic_Lloyd_3/Periodic_Lloyd_3.cpp +++ b/Periodic_3_triangulation_3/demo/Periodic_Lloyd_3/Periodic_Lloyd_3.cpp @@ -1,19 +1,13 @@ #include "MainWindow.h" #include #include +#include int main(int argc, char** argv) { - QSurfaceFormat fmt; - fmt.setVersion(2, 1); - fmt.setRenderableType(QSurfaceFormat::OpenGL); - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setOption(QSurfaceFormat::DebugContext); - QSurfaceFormat::setDefaultFormat(fmt); - //for windows -#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)) - QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); -#endif + + CGAL::init_ogl_context(2, 1); + QApplication application(argc,argv); application.setOrganizationDomain("inria.fr"); application.setOrganizationName("INRIA"); diff --git a/Point_set_3/include/CGAL/draw_point_set_3.h b/Point_set_3/include/CGAL/draw_point_set_3.h index 295229bf568..c79da404ede 100644 --- a/Point_set_3/include/CGAL/draw_point_set_3.h +++ b/Point_set_3/include/CGAL/draw_point_set_3.h @@ -15,6 +15,7 @@ #include #include +#include #ifdef DOXYGEN_RUNNING namespace CGAL { @@ -100,9 +101,10 @@ void draw(const Point_set_3& apointset, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"point_set_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); SimplePointSetViewerQt > mainwindow(app.activeWindow(), apointset, title); diff --git a/Polygon/include/CGAL/draw_polygon_2.h b/Polygon/include/CGAL/draw_polygon_2.h index bad34bdc6f3..7c0b29cde20 100644 --- a/Polygon/include/CGAL/draw_polygon_2.h +++ b/Polygon/include/CGAL/draw_polygon_2.h @@ -18,6 +18,7 @@ #define CGAL_DRAW_POLYGON_2_H #include +#include #ifdef DOXYGEN_RUNNING namespace CGAL { @@ -122,9 +123,10 @@ void draw(const CGAL::Polygon_2& ap2, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"t2_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); SimplePolygon2ViewerQt > mainwindow(app.activeWindow(), ap2, title); mainwindow.show(); diff --git a/Polygon/include/CGAL/draw_polygon_with_holes_2.h b/Polygon/include/CGAL/draw_polygon_with_holes_2.h index 6aab87b3094..6cb017d3ef6 100644 --- a/Polygon/include/CGAL/draw_polygon_with_holes_2.h +++ b/Polygon/include/CGAL/draw_polygon_with_holes_2.h @@ -18,6 +18,7 @@ #define CGAL_DRAW_POLYGON_WITH_HOLES_2_H #include +#include #ifdef DOXYGEN_RUNNING namespace CGAL { @@ -138,9 +139,10 @@ void draw(const CGAL::Polygon_with_holes_2& ap2, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"t2_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); SimplePolygonWithHoles2ViewerQt > mainwindow(app.activeWindow(), ap2, title); mainwindow.show(); diff --git a/Polyhedron/include/CGAL/draw_polyhedron.h b/Polyhedron/include/CGAL/draw_polyhedron.h index 6bce7a1fa82..4c780145c9e 100644 --- a/Polyhedron/include/CGAL/draw_polyhedron.h +++ b/Polyhedron/include/CGAL/draw_polyhedron.h @@ -14,6 +14,7 @@ #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -208,9 +209,10 @@ void draw(const CGAL_POLY_TYPE& apoly, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"polyhedron_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); DefaultColorFunctorPolyhedron fcolor; SimplePolyhedronViewerQt mainwindow(app.activeWindow(), apoly, title, nofill, fcolor); diff --git a/Principal_component_analysis/demo/Principal_component_analysis/PCA_demo.cpp b/Principal_component_analysis/demo/Principal_component_analysis/PCA_demo.cpp index 63581649155..25a3bde8b5f 100644 --- a/Principal_component_analysis/demo/Principal_component_analysis/PCA_demo.cpp +++ b/Principal_component_analysis/demo/Principal_component_analysis/PCA_demo.cpp @@ -18,18 +18,11 @@ #include "MainWindow.h" #include #include +#include int main(int argc, char **argv) { - QSurfaceFormat fmt; - fmt.setVersion(2, 1); - fmt.setRenderableType(QSurfaceFormat::OpenGL); - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setOption(QSurfaceFormat::DebugContext); - QSurfaceFormat::setDefaultFormat(fmt); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)) - QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); -#endif + CGAL::init_ogl_context(2, 1); QApplication app(argc, argv); app.setOrganizationDomain("inria.fr"); diff --git a/Surface_mesh/include/CGAL/draw_surface_mesh.h b/Surface_mesh/include/CGAL/draw_surface_mesh.h index ec502ab9809..6ee0239cf98 100644 --- a/Surface_mesh/include/CGAL/draw_surface_mesh.h +++ b/Surface_mesh/include/CGAL/draw_surface_mesh.h @@ -29,6 +29,7 @@ void draw(const SM& asm); #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -208,9 +209,10 @@ void draw(const Surface_mesh& amesh, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"surface_mesh_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); DefaultColorFunctorSM fcolor; SimpleSurfaceMeshViewerQt, DefaultColorFunctorSM> mainwindow(app.activeWindow(), amesh, title, nofill, fcolor); diff --git a/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h b/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h index a310e1ae616..819297cc7d0 100644 --- a/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h +++ b/Surface_mesh_topology/include/CGAL/draw_face_graph_with_paths.h @@ -18,6 +18,7 @@ #include #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -409,9 +410,10 @@ void draw(const Mesh& alcc, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"lccviewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); Face_graph_with_path_viewer mainwindow(app.activeWindow(), alcc, &paths, amark, title, nofill, diff --git a/Triangulation_2/include/CGAL/draw_triangulation_2.h b/Triangulation_2/include/CGAL/draw_triangulation_2.h index 94cd7e0529c..7b854abb889 100644 --- a/Triangulation_2/include/CGAL/draw_triangulation_2.h +++ b/Triangulation_2/include/CGAL/draw_triangulation_2.h @@ -14,6 +14,7 @@ #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -144,9 +145,10 @@ void draw(const CGAL_T2_TYPE& at2, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"t2_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); DefaultColorFunctorT2 fcolor; SimpleTriangulation2ViewerQt mainwindow(app.activeWindow(), at2, title, nofill, fcolor); diff --git a/Triangulation_3/demo/Triangulation_3/T3_demo.cpp b/Triangulation_3/demo/Triangulation_3/T3_demo.cpp index 4d3be25b5ac..b590849fb2e 100644 --- a/Triangulation_3/demo/Triangulation_3/T3_demo.cpp +++ b/Triangulation_3/demo/Triangulation_3/T3_demo.cpp @@ -13,19 +13,12 @@ #include "MainWindow.h" #include +#include int main(int argc, char** argv) { - QSurfaceFormat fmt; - fmt.setVersion(2, 1); - fmt.setRenderableType(QSurfaceFormat::OpenGL); - fmt.setProfile(QSurfaceFormat::CoreProfile); - fmt.setOption(QSurfaceFormat::DebugContext); - QSurfaceFormat::setDefaultFormat(fmt); - //for windows - #if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)) - QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); - #endif + CGAL::init_ogl_context(2, 1); + QApplication app(argc, argv); app.setOrganizationDomain("inria.fr"); diff --git a/Triangulation_3/include/CGAL/draw_triangulation_3.h b/Triangulation_3/include/CGAL/draw_triangulation_3.h index cdb666564df..1a048c80d5b 100644 --- a/Triangulation_3/include/CGAL/draw_triangulation_3.h +++ b/Triangulation_3/include/CGAL/draw_triangulation_3.h @@ -14,6 +14,7 @@ #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -150,9 +151,10 @@ void draw(const CGAL_T3_TYPE& at3, if (!cgal_test_suite) { + init_ogl_context(4,3); int argc=1; const char* argv[2]={"t3_viewer","\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc),const_cast(argv)); + QApplication app(argc,const_cast(argv)); DefaultColorFunctorT3 fcolor; SimpleTriangulation3ViewerQt mainwindow(app.activeWindow(), at3, title, nofill, fcolor); diff --git a/Voronoi_diagram_2/include/CGAL/draw_voronoi_diagram_2.h b/Voronoi_diagram_2/include/CGAL/draw_voronoi_diagram_2.h index 11ab8f3acf4..b172513a29e 100644 --- a/Voronoi_diagram_2/include/CGAL/draw_voronoi_diagram_2.h +++ b/Voronoi_diagram_2/include/CGAL/draw_voronoi_diagram_2.h @@ -14,6 +14,7 @@ #include #include +#include #ifdef CGAL_USE_BASIC_VIEWER @@ -316,9 +317,10 @@ void draw(const CGAL_VORONOI_TYPE &av2, #endif if (!cgal_test_suite) { + init_ogl_context(4,3); int argc = 1; const char *argv[2] = {"voronoi_2_viewer", "\0"}; - QApplication app(CGAL::code_to_call_before_creation_of_QCoreApplication(argc), const_cast(argv)); + QApplication app(argc, const_cast(argv)); DefaultColorFunctorV2 fcolor; SimpleVoronoiDiagram2ViewerQt mainwindow(app.activeWindow(), av2, title, nofill,