Always load "opengl32.dll" from application directory if it exists
This commit is contained in:
@@ -102,6 +102,8 @@ bool cpu_thread_running = false;
|
|||||||
void qt_set_sequence_auto_mnemonic(bool b);
|
void qt_set_sequence_auto_mnemonic(bool b);
|
||||||
|
|
||||||
#ifdef Q_OS_WINDOWS
|
#ifdef Q_OS_WINDOWS
|
||||||
|
bool acp_utf8 = false;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
keyboard_getkeymap()
|
keyboard_getkeymap()
|
||||||
{
|
{
|
||||||
@@ -515,6 +517,13 @@ extern bool windows_is_light_theme();
|
|||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
#ifdef Q_OS_WINDOWS
|
||||||
|
/* Check if Windows supports UTF-8 */
|
||||||
|
if (GetACP() == CP_UTF8)
|
||||||
|
acp_utf8 = 1;
|
||||||
|
else
|
||||||
|
acp_utf8 = 0;
|
||||||
|
#endif
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||||
QApplication::setAttribute(Qt::AA_DisableHighDpiScaling, false);
|
QApplication::setAttribute(Qt::AA_DisableHighDpiScaling, false);
|
||||||
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||||
@@ -530,6 +539,9 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
#ifdef Q_OS_WINDOWS
|
#ifdef Q_OS_WINDOWS
|
||||||
Q_INIT_RESOURCE(darkstyle);
|
Q_INIT_RESOURCE(darkstyle);
|
||||||
|
if (QFile(QApplication::applicationDirPath() + "/opengl32.dll").exists()) {
|
||||||
|
qputenv("QT_OPENGL_DLL", QFileInfo(QApplication::applicationDirPath() + "/opengl32.dll").absoluteFilePath().toUtf8());
|
||||||
|
}
|
||||||
QApplication::setAttribute(Qt::AA_NativeWindows);
|
QApplication::setAttribute(Qt::AA_NativeWindows);
|
||||||
|
|
||||||
if (!windows_is_light_theme()) {
|
if (!windows_is_light_theme()) {
|
||||||
|
|||||||
@@ -177,14 +177,28 @@ do_stop(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern bool acp_utf8;
|
||||||
void
|
void
|
||||||
plat_get_exe_name(char *s, int size)
|
plat_get_exe_name(char *s, int size)
|
||||||
{
|
{
|
||||||
|
#ifdef Q_OS_WINDOWS
|
||||||
|
wchar_t *temp;
|
||||||
|
|
||||||
|
if (acp_utf8)
|
||||||
|
GetModuleFileNameA(NULL, s, size);
|
||||||
|
else {
|
||||||
|
temp = (wchar_t*)calloc(size, sizeof(wchar_t));
|
||||||
|
GetModuleFileNameW(NULL, temp, size);
|
||||||
|
c16stombs(s, (uint16_t*)temp, size);
|
||||||
|
free(temp);
|
||||||
|
}
|
||||||
|
#else
|
||||||
QByteArray exepath_temp = QCoreApplication::applicationDirPath().toLocal8Bit();
|
QByteArray exepath_temp = QCoreApplication::applicationDirPath().toLocal8Bit();
|
||||||
|
|
||||||
memcpy(s, exepath_temp.data(), std::min((qsizetype) exepath_temp.size(), (qsizetype) size));
|
memcpy(s, exepath_temp.data(), std::min((qsizetype) exepath_temp.size(), (qsizetype) size));
|
||||||
|
|
||||||
path_slash(s);
|
path_slash(s);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
|
|||||||
Reference in New Issue
Block a user