diff --git a/3d-viewer/3d_canvas/eda_3d_canvas.cpp b/3d-viewer/3d_canvas/eda_3d_canvas.cpp index ba13174990..d62c770ffe 100644 --- a/3d-viewer/3d_canvas/eda_3d_canvas.cpp +++ b/3d-viewer/3d_canvas/eda_3d_canvas.cpp @@ -33,6 +33,7 @@ #include <3d_rendering/opengl/render_3d_opengl.h> #include <3d_viewer_id.h> #include +#include #include #include #include @@ -229,6 +230,9 @@ bool EDA_3D_CANVAS::initializeOpenGL() From_UTF8( (char*) glewGetString( GLEW_VERSION ) ) ); } + SetOpenGLInfo( (const char*) glGetString( GL_VENDOR ), (const char*) glGetString( GL_RENDERER ), + (const char*) glGetString( GL_VERSION ) ); + wxString version = From_UTF8( (char *) glGetString( GL_VERSION ) ); wxLogTrace( m_logTrace, wxT( "EDA_3D_CANVAS::%s OpenGL version string %s." ), diff --git a/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp b/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp index 1fce95d2e2..1e53e8df21 100644 --- a/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp +++ b/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2015-2016 Mario Luzeiro - * Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -35,6 +35,7 @@ #include "../3d_cache/3d_cache.h" #include #include +#include #include #include #include @@ -200,6 +201,9 @@ void EDA_3D_MODEL_VIEWER::ogl_initialize() From_UTF8( (char*) glewGetString( GLEW_VERSION ) ) ); } + SetOpenGLInfo( (const char*) glGetString( GL_VENDOR ), (const char*) glGetString( GL_RENDERER ), + (const char*) glGetString( GL_VERSION ) ); + glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); glHint( GL_LINE_SMOOTH_HINT, GL_NICEST ); glHint( GL_POLYGON_SMOOTH_HINT, GL_NICEST ); diff --git a/common/build_version.cpp b/common/build_version.cpp index 3e32d1cf75..4ffd65e55c 100644 --- a/common/build_version.cpp +++ b/common/build_version.cpp @@ -51,6 +51,19 @@ extern std::string GetCurlLibVersion(); #include #undef INCLUDE_KICAD_VERSION +// Remember OpenGL info +static wxString s_glVendor; +static wxString s_glRenderer; +static wxString s_glVersion; + +void SetOpenGLInfo( const char* aVendor, const char* aRenderer, const char* aVersion ) +{ + s_glVendor = wxString::FromUTF8( aVendor ); + s_glRenderer = wxString::FromUTF8( aRenderer ); + s_glVersion = wxString::FromUTF8( aVersion ); +} + + wxString GetPlatformGetBitnessName() { wxPlatformInfo platform; @@ -200,6 +213,12 @@ wxString GetVersionInfoData( const wxString& aTitle, bool aHtml, bool aBrief ) << ", " << wxGetenv( "XDG_SESSION_TYPE" ); #endif + if( !s_glVendor.empty() || !s_glRenderer.empty() || !s_glVersion.empty() ) + { + aMsg << eol; + aMsg << "OpenGL: " << s_glVendor << ", " << s_glRenderer << ", " << s_glVersion; + } + aMsg << eol << eol; if( !aBrief ) diff --git a/common/gal/opengl/opengl_gal.cpp b/common/gal/opengl/opengl_gal.cpp index d0421be081..b40525406a 100644 --- a/common/gal/opengl/opengl_gal.cpp +++ b/common/gal/opengl/opengl_gal.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KICAD, a free EDA CAD application. * * Copyright (C) 2012 Torsten Hueter, torstenhtr gmx.de - * Copyright (C) 2012-2023 Kicad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2012-2024 Kicad Developers, see AUTHORS.txt for contributors. * Copyright (C) 2013-2017 CERN * @author Maciej Suminski * @@ -33,6 +33,7 @@ #endif #include +#include #include #include #include @@ -2678,6 +2679,9 @@ void OPENGL_GAL::init() #endif // KICAD_USE_EGL + SetOpenGLInfo( (const char*) glGetString( GL_VENDOR ), (const char*) glGetString( GL_RENDERER ), + (const char*) glGetString( GL_VERSION ) ); + if( GLEW_OK != err ) throw std::runtime_error( (const char*) glewGetErrorString( err ) ); diff --git a/include/build_version.h b/include/build_version.h index 5c92a7bda8..56ce47d4a6 100644 --- a/include/build_version.h +++ b/include/build_version.h @@ -104,6 +104,11 @@ KICOMMON_API const std::tuple& GetMajorMinorPatchTuple(); */ KICOMMON_API bool IsNightlyVersion(); +/** + * A setter for OpenGL info when it's initialized. + */ +KICOMMON_API void SetOpenGLInfo( const char* aRenderer, const char* aVendor, const char* aVersion ); + /** * Create a version info string for bug reports and the about dialog * @param aTitle is the application title to include at the top of the report