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"