From 1c9494c8d0ed654c2d770dc8c456c6bb9967f009 Mon Sep 17 00:00:00 2001
From: startmenu <3387747+startmenu@users.noreply.github.com>
Date: Tue, 7 Dec 2021 13:28:32 +0800
Subject: [PATCH 1/4] Update zh-CN.rc
---
src/win/languages/zh-CN.rc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc
index c6bf385e6..9fbf5d2f6 100644
--- a/src/win/languages/zh-CN.rc
+++ b/src/win/languages/zh-CN.rc
@@ -29,7 +29,7 @@ BEGIN
MENUITEM SEPARATOR
MENUITEM "退出(&x)...", IDM_ACTION_EXIT
END
- POPUP "视图(&V)"
+ POPUP "显示(&V)"
BEGIN
MENUITEM "隐藏状态栏(&H)", IDM_VID_HIDE_STATUS_BAR
MENUITEM SEPARATOR
@@ -69,7 +69,7 @@ BEGIN
MENUITEM "全屏拉伸(&F)", IDM_VID_FS_FULL
MENUITEM "&4:3", IDM_VID_FS_43
MENUITEM "保持比例(&S)", IDM_VID_FS_KEEPRATIO
- MENUITEM "整数倍放大&I", IDM_VID_FS_INT
+ MENUITEM "整数倍放大(&I)", IDM_VID_FS_INT
END
POPUP "E&GA/(S)VGA 设置"
BEGIN
@@ -382,7 +382,7 @@ END
#define STR_ISAMEM_2 "扩展卡 2:"
#define STR_ISAMEM_3 "扩展卡 3:"
#define STR_ISAMEM_4 "扩展卡 4:"
-#define STR_BUGGER "ISABugger device"
+#define STR_BUGGER "ISABugger 设备"
#define STR_POSTCARD "自检卡(POST)"
#define FONT_SIZE 9
@@ -408,7 +408,7 @@ BEGIN
IDS_2056 "86Box 找不到支持的 ROM 镜像.\n\n请下载ROM包并解压到 ""roms"" 文件夹."
IDS_2057 "(空)"
IDS_2058 "ZIP 镜像 (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0所有文件 (*.*)\0*.*\0"
- IDS_2059 "Turbo"
+ IDS_2059 "加速"
IDS_2060 "开"
IDS_2061 "关"
IDS_2062 "所有镜像 (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0基本扇区镜像 (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0表面镜像 (*.86F)\0*.86F\0"
From 31daf6c7eb1f7819a7cf41aa4467a21f9e3016ff Mon Sep 17 00:00:00 2001
From: startmenu <3387747+startmenu@users.noreply.github.com>
Date: Tue, 7 Dec 2021 15:55:44 +0800
Subject: [PATCH 2/4] Update zh-CN.rc
---
src/win/languages/zh-CN.rc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc
index 9fbf5d2f6..652516e66 100644
--- a/src/win/languages/zh-CN.rc
+++ b/src/win/languages/zh-CN.rc
@@ -115,7 +115,7 @@ BEGIN
POPUP "记录日志(&L)"
BEGIN
# ifdef ENABLE_BUSLOGIC_LOG
- MENUITEM "启用 总线Logic 日志\tCtrl+F4", IDM_LOG_BUSLOGIC
+ MENUITEM "启用 BusLogic 日志\tCtrl+F4", IDM_LOG_BUSLOGIC
# endif
# ifdef ENABLE_CDROM_LOG
MENUITEM "启用 CD-ROM 日志\tCtrl+F5", IDM_LOG_CDROM
From a1955a7698fde4a38ee8d30e15c0f642fdd62455 Mon Sep 17 00:00:00 2001
From: ts-korhonen
Date: Tue, 7 Dec 2021 20:04:56 +0200
Subject: [PATCH 3/4] opengl: more error handling
Show message box on fail.
Enable debug output only when logfile is defined; performance optimization.
Fail if reported opengl version is less than 3.0 or errors are generated
after context is created; fixes some crashes on unsupported hardware or
faulty drivers.
---
src/include/86box/language.h | 4 +++-
src/win/languages/cs-CZ.rc | 2 ++
src/win/languages/de-DE.rc | 2 ++
src/win/languages/en-GB.rc | 2 ++
src/win/languages/en-US.rc | 2 ++
src/win/languages/es-ES.rc | 2 ++
src/win/languages/fi-FI.rc | 2 ++
src/win/languages/fr-FR.rc | 2 ++
src/win/languages/hr-HR.rc | 2 ++
src/win/languages/hu-HU.rc | 2 ++
src/win/languages/it-IT.rc | 2 ++
src/win/languages/ja-JP.rc | 2 ++
src/win/languages/ko-KR.rc | 2 ++
src/win/languages/pt-BR.rc | 2 ++
src/win/languages/pt-PT.rc | 2 ++
src/win/languages/ru-RU.rc | 2 ++
src/win/languages/sl-SI.rc | 2 ++
src/win/languages/tr-TR.rc | 2 ++
src/win/languages/zh-CN.rc | 2 ++
src/win/win_opengl.c | 36 +++++++++++++++++++++++++++++++++---
20 files changed, 72 insertions(+), 4 deletions(-)
diff --git a/src/include/86box/language.h b/src/include/86box/language.h
index a1f3ce3aa..7b2b55afa 100644
--- a/src/include/86box/language.h
+++ b/src/include/86box/language.h
@@ -125,6 +125,8 @@
#define IDS_2149 2149 // "Cassette images (*.PCM;*.RAW;*..."
#define IDS_2150 2150 // "Cartridge %i: %ls"
#define IDS_2151 2151 // "Cartridge images (*.JRC)\0*.JRC\0..."
+#define IDS_2152 2152 // "Error initializing OpenGL 3.0 renderer"
+#define IDS_2153 2153 // "OpenGL (3.0 Core) renderer could not be initialized."
#define IDS_4096 4096 // "Hard disk (%s)"
#define IDS_4097 4097 // "%01i:%01i"
@@ -233,7 +235,7 @@
#define IDS_LANG_ENUS IDS_7168
-#define STR_NUM_2048 104
+#define STR_NUM_2048 106
#define STR_NUM_3072 11
#define STR_NUM_4096 40
#define STR_NUM_4352 6
diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc
index 200c5c9d4..b63d8a176 100644
--- a/src/win/languages/cs-CZ.rc
+++ b/src/win/languages/cs-CZ.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Kazetové nahrávky (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Všechny soubory (*.*)\0*.*\0"
IDS_2150 "Cartridge %i: %ls"
IDS_2151 "Obrazy cartridge (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Všechny soubory (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc
index 9f7925854..eaaa28171 100644
--- a/src/win/languages/de-DE.rc
+++ b/src/win/languages/de-DE.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Kassettenimages (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Alle Dateien (*.*)\0*.*\0"
IDS_2150 "Cartridge %i: %ls"
IDS_2151 "Cartridgeimages (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Alle Dateien (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/en-GB.rc b/src/win/languages/en-GB.rc
index 7ceeeed2b..61749d954 100644
--- a/src/win/languages/en-GB.rc
+++ b/src/win/languages/en-GB.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Cassette images (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0"
IDS_2150 "Cartridge %i: %ls"
IDS_2151 "Cartridge images (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc
index 05616379f..3bee70556 100644
--- a/src/win/languages/en-US.rc
+++ b/src/win/languages/en-US.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Cassette images (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0"
IDS_2150 "Cartridge %i: %ls"
IDS_2151 "Cartridge images (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/es-ES.rc b/src/win/languages/es-ES.rc
index 7f2e2c2e4..2232e69c5 100644
--- a/src/win/languages/es-ES.rc
+++ b/src/win/languages/es-ES.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Imágenes de Cassette (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0"
IDS_2150 "Cartucho %i: %ls"
IDS_2151 "Imágenes de Cartucho (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc
index f3e4f10bf..56430464d 100644
--- a/src/win/languages/fi-FI.rc
+++ b/src/win/languages/fi-FI.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Kasetti-tiedostot (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Kaikki tiedostot (*.*)\0*.*\0"
IDS_2150 "ROM-moduuli %i: %ls"
IDS_2151 "ROM-moduulikuvat (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Kaikki tiedostot (*.*)\0*.*\0"
+ IDS_2152 "Virhe renderöijän alustuksessa"
+ IDS_2153 "OpenGL (3.0 Core) renderöijän alustus epäonnistui. Käytä toista renderöijää."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc
index 1a212d5cc..997eefec4 100644
--- a/src/win/languages/fr-FR.rc
+++ b/src/win/languages/fr-FR.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Images cassette (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tous les fichiers (*.*)\0*.*\0"
IDS_2150 "Cartouche %i: %ls"
IDS_2151 "Images cartouche (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tous les fichiers (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc
index 0c4f4d38c..c6d4c4cc5 100644
--- a/src/win/languages/hr-HR.rc
+++ b/src/win/languages/hr-HR.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Slike audio kasete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Sve datoteke (*.*)\0*.*\0"
IDS_2150 "Kaseta %i: %ls"
IDS_2151 "Slike kasete (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Sve datoteke (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc
index 4081389b7..3a8dfe756 100644
--- a/src/win/languages/hu-HU.rc
+++ b/src/win/languages/hu-HU.rc
@@ -532,6 +532,8 @@ BEGIN
IDS_2149 "Magnókazetta-képek (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Minden fájl (*.*)\0*.*\0"
IDS_2150 "ROM-kazetta %i: %ls"
IDS_2151 "ROM-kazetta képek (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Minden fájl (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc
index 1397da930..461b76e71 100644
--- a/src/win/languages/it-IT.rc
+++ b/src/win/languages/it-IT.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Immagini cassetta (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tutti i file (*.*)\0*.*\0"
IDS_2150 "Cartuccia %i: %ls"
IDS_2151 "Immagini cartuccia (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tutti i file (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/ja-JP.rc b/src/win/languages/ja-JP.rc
index 044f48c3e..f5fef7e3f 100644
--- a/src/win/languages/ja-JP.rc
+++ b/src/win/languages/ja-JP.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "カセットイメージ (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0すべてのファイル (*.*)\0*.*\0"
IDS_2150 "カートリッジ %i: %ls"
IDS_2151 "カートリッジイメージ (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0すべてのファイル (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/ko-KR.rc b/src/win/languages/ko-KR.rc
index 0c0924b84..a46c8f6d7 100644
--- a/src/win/languages/ko-KR.rc
+++ b/src/win/languages/ko-KR.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "카세트 이미지 (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0모든 파일 (*.*)\0*.*\0"
IDS_2150 "카트리지 %i: %ls"
IDS_2151 "카트리지 이미지 (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0모든 파일 (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc
index 16eb2e48f..44968872e 100644
--- a/src/win/languages/pt-BR.rc
+++ b/src/win/languages/pt-BR.rc
@@ -531,6 +531,8 @@ BEGIN
IDS_2149 "Imagens de cassete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Todos os arquivos (*.*)\0*.*\0"
IDS_2150 "Cartucho %i: %ls"
IDS_2151 "Imagens de cartucho (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Todos os arquivos (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc
index f983fd24e..a424ad141 100644
--- a/src/win/languages/pt-PT.rc
+++ b/src/win/languages/pt-PT.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Imagens de cassete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Todos os ficheiros (*.*)\0*.*\0"
IDS_2150 "Cartucho %i: %ls"
IDS_2151 "Imagens de cartucho (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Todos os ficheiros (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/ru-RU.rc b/src/win/languages/ru-RU.rc
index 9f78a06b3..36ebf4ee3 100644
--- a/src/win/languages/ru-RU.rc
+++ b/src/win/languages/ru-RU.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Образы кассет (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Все файлы (*.*)\0*.*\0"
IDS_2150 "Картридж %i: %ls"
IDS_2151 "Образы картриджей (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Все файлы (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/sl-SI.rc b/src/win/languages/sl-SI.rc
index e2cc77005..fb1c80b8b 100644
--- a/src/win/languages/sl-SI.rc
+++ b/src/win/languages/sl-SI.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Slike kaset (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Vse datoteke (*.*)\0*.*\0"
IDS_2150 "Spominski vložek %i: %ls"
IDS_2151 "Slike spominskega vložka (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Vse datoteke (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/tr-TR.rc b/src/win/languages/tr-TR.rc
index 76a14fb1d..5d2ef2c50 100644
--- a/src/win/languages/tr-TR.rc
+++ b/src/win/languages/tr-TR.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "Kaset imajları (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tüm dosyalar (*.*)\0*.*\0"
IDS_2150 "Kartuş %i: %ls"
IDS_2151 "Kartuş imajları (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tüm dosyalar (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc
index c6bf385e6..793123d80 100644
--- a/src/win/languages/zh-CN.rc
+++ b/src/win/languages/zh-CN.rc
@@ -530,6 +530,8 @@ BEGIN
IDS_2149 "磁带镜像 (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0所有文件 (*.*)\0*.*\0"
IDS_2150 "卡带 %i: %ls"
IDS_2151 "卡带镜像 (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0所有文件 (*.*)\0*.*\0"
+ IDS_2152 "Error initializing renderer"
+ IDS_2153 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
END
STRINGTABLE DISCARDABLE
diff --git a/src/win/win_opengl.c b/src/win/win_opengl.c
index 4a2db844f..13b8c4fb7 100644
--- a/src/win/win_opengl.c
+++ b/src/win/win_opengl.c
@@ -56,6 +56,7 @@ typedef LONG atomic_flag;
#include <86box/plat.h>
#include <86box/video.h>
#include <86box/win.h>
+#include <86box/language.h>
#include <86box/win_opengl.h>
#include <86box/win_opengl_glslp.h>
@@ -445,7 +446,9 @@ static void opengl_fail()
window = NULL;
}
- /* TODO: Notify user. */
+ wchar_t* message = plat_get_string(IDS_2152);
+ wchar_t* header = plat_get_string(IDS_2153);
+ MessageBox(parent, header, message, MB_OK);
WaitForSingleObject(sync_objects.closing, INFINITE);
@@ -476,7 +479,7 @@ static void opengl_main(void* param)
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
- if (GLAD_GL_ARB_debug_output)
+ if (GLAD_GL_ARB_debug_output && log_path[0] != '\0')
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG | SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG);
else
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG);
@@ -527,7 +530,7 @@ static void opengl_main(void* param)
opengl_fail();
}
- if (GLAD_GL_ARB_debug_output)
+ if (GLAD_GL_ARB_debug_output && log_path[0] != '\0')
{
glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
glDebugMessageControlARB(GL_DONT_CARE, GL_DEBUG_TYPE_PERFORMANCE_ARB, GL_DONT_CARE, 0, 0, GL_FALSE);
@@ -539,6 +542,33 @@ static void opengl_main(void* param)
pclog("OpenGL version: %s\n", glGetString(GL_VERSION));
pclog("OpenGL shader language version: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION));
+ /* Check that the driver actually reports version 3.0 or later */
+ GLint major = -1;
+ glGetIntegerv(GL_MAJOR_VERSION, &major);
+ if (major < 3)
+ {
+ pclog("OpenGL: Minimum OpenGL version 3.0 is required.\n");
+ SDL_GL_DeleteContext(context);
+ opengl_fail();
+ }
+
+ /* Check if errors have been generated at this point */
+ GLenum gl_error = glGetError();
+ if (gl_error != GL_NO_ERROR)
+ {
+ /* Log up to 10 errors */
+ int i = 0;
+ do
+ {
+ pclog("OpenGL: Error %u\n", gl_error);
+ i++;
+ }
+ while((gl_error = glGetError()) != GL_NO_ERROR && i < 10);
+
+ SDL_GL_DeleteContext(context);
+ opengl_fail();
+ }
+
gl_identifiers gl = { 0 };
if (!initialize_glcontext(&gl))
From 3a5c0383c22136cc65eb958031ddb6a06ae63ff8 Mon Sep 17 00:00:00 2001
From: ts-korhonen
Date: Tue, 7 Dec 2021 20:12:14 +0200
Subject: [PATCH 4/4] Fix comment mismatch on language.h
---
src/include/86box/language.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/include/86box/language.h b/src/include/86box/language.h
index 7b2b55afa..467a5704c 100644
--- a/src/include/86box/language.h
+++ b/src/include/86box/language.h
@@ -125,8 +125,8 @@
#define IDS_2149 2149 // "Cassette images (*.PCM;*.RAW;*..."
#define IDS_2150 2150 // "Cartridge %i: %ls"
#define IDS_2151 2151 // "Cartridge images (*.JRC)\0*.JRC\0..."
-#define IDS_2152 2152 // "Error initializing OpenGL 3.0 renderer"
-#define IDS_2153 2153 // "OpenGL (3.0 Core) renderer could not be initialized."
+#define IDS_2152 2152 // "Error initializing renderer"
+#define IDS_2153 2153 // "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer."
#define IDS_4096 4096 // "Hard disk (%s)"
#define IDS_4097 4097 // "%01i:%01i"