From 9293eadbdac802eba0aa782c08d5dd9972e5b4c1 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Mon, 7 Dec 2020 17:33:55 -0600 Subject: [PATCH] opengl/glinfo: Fix broken GLinfo app * Can't call InfoView() with an unlocked BGLView. * If unable to obtain to glGetString, show some "unknown" messages Change-Id: I17d8ff84feed166644d54b0e19e0ef1fce202a74 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3476 Reviewed-by: X512 Reviewed-by: waddlesplash --- src/tests/kits/opengl/glinfo/InfoView.cpp | 20 +++++++++++++------- src/tests/kits/opengl/glinfo/OpenGLView.cpp | 4 ++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/tests/kits/opengl/glinfo/InfoView.cpp b/src/tests/kits/opengl/glinfo/InfoView.cpp index c6d6e0e68c..65568e932c 100644 --- a/src/tests/kits/opengl/glinfo/InfoView.cpp +++ b/src/tests/kits/opengl/glinfo/InfoView.cpp @@ -37,17 +37,23 @@ InfoView::InfoView() : BGroupView(B_TRANSLATE("Information"), B_HORIZONTAL) { - BStringView* rendererView = new BStringView(NULL, - (const char*)glGetString(GL_RENDERER)); + const char* glRenderer = (const char*)glGetString(GL_RENDERER); + if (glRenderer == NULL) + glRenderer = B_TRANSLATE("Unknown or missing OpenGL renderer."); + BStringView* rendererView = new BStringView(NULL, glRenderer); rendererView->SetExplicitAlignment(kLabelAlignment); rendererView->SetFont(be_bold_font); - BStringView* vendorNameView = new BStringView(NULL, - (const char*)glGetString(GL_VENDOR)); - vendorNameView->SetExplicitAlignment(kLabelAlignment); + const char* glVendor = (const char*)glGetString(GL_VENDOR); + if (glVendor == NULL) + glVendor = B_TRANSLATE("Unknown vendor"); + BStringView* vendorNameView = new BStringView(NULL, glVendor); + vendorNameView->SetExplicitAlignment(kLabelAlignment); - BStringView* glVersionView = new BStringView(NULL, - (const char*)glGetString(GL_VERSION)); + const char* glVersion = (const char*)glGetString(GL_VERSION); + if (glVersion == NULL) + glVersion = B_TRANSLATE("Unknown version"); + BStringView* glVersionView = new BStringView(NULL, glVersion); glVersionView->SetExplicitAlignment(kLabelAlignment); BString apiString("GLU "); diff --git a/src/tests/kits/opengl/glinfo/OpenGLView.cpp b/src/tests/kits/opengl/glinfo/OpenGLView.cpp index 30fe9882b8..d763792d91 100644 --- a/src/tests/kits/opengl/glinfo/OpenGLView.cpp +++ b/src/tests/kits/opengl/glinfo/OpenGLView.cpp @@ -52,8 +52,6 @@ OpenGLView::OpenGLView() tabView->AddTab(new CapabilitiesView()); tabView->AddTab(new ExtensionsView()); - glView->UnlockGL(); - GroupLayout()->SetSpacing(0); BLayoutBuilder::Group<>(this) .AddGroup(B_HORIZONTAL, 0) @@ -66,6 +64,8 @@ OpenGLView::OpenGLView() .End() .AddGlue() .End(); + + glView->UnlockGL(); } OpenGLView::~OpenGLView()