mirror of https://github.com/CGAL/cgal
factorize context initialization
This commit is contained in:
parent
3ec3ffc518
commit
95192d6d4b
|
|
@ -19,24 +19,12 @@
|
|||
#include <QApplication>
|
||||
#include <CGAL/Qt/resources.h>
|
||||
#include <QMimeData>
|
||||
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
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");
|
||||
|
|
|
|||
|
|
@ -5,27 +5,13 @@
|
|||
|
||||
|
||||
#include <CGAL/Qt/resources.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
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");
|
||||
|
|
|
|||
|
|
@ -1,25 +1,10 @@
|
|||
#include "Viewer.h"
|
||||
#include <qapplication.h>
|
||||
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
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.");
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <QApplication>
|
||||
#include <CGAL/Qt/resources.h>
|
||||
#include <CGAL/assertions_behaviour.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
// Global random
|
||||
CGAL::Random myrandom;
|
||||
|
|
@ -23,10 +24,7 @@ int main(int argc, char** argv)
|
|||
// std::cout<<"Size of dart: "<<sizeof(LCC::Dart)<<std::endl;
|
||||
CGAL::set_error_behaviour(CGAL::ABORT);
|
||||
|
||||
//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("cgal.org");
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#define CGAL_DRAW_LCC_H
|
||||
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
SimpleLCCViewerQt<CGAL_LCC_TYPE, DrawingFunctorLCC>
|
||||
mainwindow(app.activeWindow(), &alcc, title, nofill, drawing_functor);
|
||||
mainwindow.show();
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include <CGAL/license/Nef_3.h>
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char **>(argv));
|
||||
QApplication app(argc, const_cast<char **>(argv));
|
||||
DefaultColorFunctorNefPolyhedron fcolor;
|
||||
SimpleNefPolyhedronViewerQt<CGAL_NEF3_TYPE,
|
||||
DefaultColorFunctorNefPolyhedron>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <CGAL/license/Periodic_2_triangulation_2.h>
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
DefaultColorFunctorP2T2 fcolor;
|
||||
SimplePeriodic2Triangulation2ViewerQt<CGAL_P2T2_TYPE,
|
||||
DefaultColorFunctorP2T2>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,11 @@
|
|||
#include "MainWindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -1,19 +1,13 @@
|
|||
#include "MainWindow.h"
|
||||
#include <QApplication>
|
||||
#include <CGAL/Qt/resources.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
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");
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include <CGAL/license/Point_set_3.h>
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
namespace CGAL {
|
||||
|
|
@ -100,9 +101,10 @@ void draw(const Point_set_3<P, V>& 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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
SimplePointSetViewerQt<Point_set_3<P, V> > mainwindow(app.activeWindow(),
|
||||
apointset,
|
||||
title);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#define CGAL_DRAW_POLYGON_2_H
|
||||
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
namespace CGAL {
|
||||
|
|
@ -122,9 +123,10 @@ void draw(const CGAL::Polygon_2<T, C>& 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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
SimplePolygon2ViewerQt<CGAL::Polygon_2<T, C> >
|
||||
mainwindow(app.activeWindow(), ap2, title);
|
||||
mainwindow.show();
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#define CGAL_DRAW_POLYGON_WITH_HOLES_2_H
|
||||
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#ifdef DOXYGEN_RUNNING
|
||||
namespace CGAL {
|
||||
|
|
@ -138,9 +139,10 @@ void draw(const CGAL::Polygon_with_holes_2<T, C>& 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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
SimplePolygonWithHoles2ViewerQt<CGAL::Polygon_with_holes_2<T, C> >
|
||||
mainwindow(app.activeWindow(), ap2, title);
|
||||
mainwindow.show();
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <CGAL/license/Polyhedron.h>
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
DefaultColorFunctorPolyhedron fcolor;
|
||||
SimplePolyhedronViewerQt<CGAL_POLY_TYPE, DefaultColorFunctorPolyhedron>
|
||||
mainwindow(app.activeWindow(), apoly, title, nofill, fcolor);
|
||||
|
|
|
|||
|
|
@ -18,18 +18,11 @@
|
|||
#include "MainWindow.h"
|
||||
#include <QApplication>
|
||||
#include <CGAL/Qt/resources.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
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");
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ void draw(const SM& asm);
|
|||
|
||||
#include <CGAL/license/Surface_mesh.h>
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#ifdef CGAL_USE_BASIC_VIEWER
|
||||
|
||||
|
|
@ -208,9 +209,10 @@ void draw(const Surface_mesh<K>& 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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
DefaultColorFunctorSM fcolor;
|
||||
SimpleSurfaceMeshViewerQt<Surface_mesh<K>, DefaultColorFunctorSM>
|
||||
mainwindow(app.activeWindow(), amesh, title, nofill, fcolor);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include <initializer_list>
|
||||
#include <CGAL/draw_linear_cell_complex.h>
|
||||
#include <CGAL/Path_on_surface.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
Face_graph_with_path_viewer<Mesh, DrawingFunctor> mainwindow(app.activeWindow(),
|
||||
alcc, &paths, amark,
|
||||
title, nofill,
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <CGAL/license/Triangulation_2.h>
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
DefaultColorFunctorT2 fcolor;
|
||||
SimpleTriangulation2ViewerQt<CGAL_T2_TYPE, DefaultColorFunctorT2>
|
||||
mainwindow(app.activeWindow(), at2, title, nofill, fcolor);
|
||||
|
|
|
|||
|
|
@ -13,19 +13,12 @@
|
|||
|
||||
#include "MainWindow.h"
|
||||
#include <QApplication>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
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");
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <CGAL/license/Triangulation_3.h>
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char**>(argv));
|
||||
QApplication app(argc,const_cast<char**>(argv));
|
||||
DefaultColorFunctorT3 fcolor;
|
||||
SimpleTriangulation3ViewerQt<CGAL_T3_TYPE, DefaultColorFunctorT3>
|
||||
mainwindow(app.activeWindow(), at3, title, nofill, fcolor);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include <CGAL/Qt/Basic_viewer_qt.h>
|
||||
#include <CGAL/license/Voronoi_diagram_2.h>
|
||||
#include <CGAL/Qt/Context_initialization.h>
|
||||
|
||||
#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<char **>(argv));
|
||||
QApplication app(argc, const_cast<char **>(argv));
|
||||
DefaultColorFunctorV2 fcolor;
|
||||
SimpleVoronoiDiagram2ViewerQt<CGAL_VORONOI_TYPE, DefaultColorFunctorV2>
|
||||
mainwindow(app.activeWindow(), av2, title, nofill,
|
||||
|
|
|
|||
Loading…
Reference in New Issue