File tree 6 files changed +44
-18
lines changed
6 files changed +44
-18
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ namespace hex {
29
29
void resize (i32 width, i32 height);
30
30
31
31
private:
32
+ void configureGLFW ();
32
33
void setupNativeWindow ();
33
34
void beginNativeWindowFrame ();
34
35
void endNativeWindowFrame ();
Original file line number Diff line number Diff line change @@ -72,6 +72,17 @@ namespace hex {
72
72
}
73
73
}
74
74
75
+ void Window::configureGLFW () {
76
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3 );
77
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 0 );
78
+ glfwWindowHint (GLFW_DECORATED, ImHexApi::System::isBorderlessWindowModeEnabled () ? GL_FALSE : GL_TRUE);
79
+ glfwWindowHint (GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_TRUE);
80
+
81
+ #if defined(GLFW_WAYLAND_APP_ID)
82
+ glfwWindowHintString (GLFW_WAYLAND_APP_ID, " imhex" );
83
+ #endif
84
+ }
85
+
75
86
void Window::initNative () {
76
87
log ::impl::enableColorPrinting ();
77
88
Original file line number Diff line number Diff line change @@ -20,6 +20,15 @@ namespace hex {
20
20
errorMessageMacos (message.c_str ());
21
21
}
22
22
23
+ void Window::configureGLFW () {
24
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3 );
25
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 2 );
26
+ glfwWindowHint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
27
+ glfwWindowHint (GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE);
28
+ glfwWindowHint (GLFW_COCOA_GRAPHICS_SWITCHING, GLFW_TRUE);
29
+ glfwWindowHint (GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_TRUE);
30
+ }
31
+
23
32
void Window::initNative () {
24
33
log ::impl::enableColorPrinting ();
25
34
Original file line number Diff line number Diff line change @@ -46,6 +46,13 @@ namespace hex {
46
46
}, message.c_str ());
47
47
}
48
48
49
+ void Window::configureGLFW () {
50
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3 );
51
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 0 );
52
+ glfwWindowHint (GLFW_DECORATED, GL_FALSE);
53
+ glfwWindowHint (GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_FALSE);
54
+ }
55
+
49
56
void Window::initNative () {
50
57
EM_ASM ({
51
58
// Save data directory
Original file line number Diff line number Diff line change @@ -308,6 +308,21 @@ namespace hex {
308
308
}
309
309
}
310
310
311
+ void Window::configureGLFW () {
312
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3 );
313
+ glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 0 );
314
+ glfwWindowHint (GLFW_DECORATED, ImHexApi::System::isBorderlessWindowModeEnabled () ? GL_FALSE : GL_TRUE);
315
+
316
+ // Windows versions before Windows 10 have issues with transparent framebuffers
317
+ // causing the entire window to be slightly transparent ignoring all configurations
318
+ OSVERSIONINFOA versionInfo = { };
319
+ if (::GetVersionExA (&versionInfo) && versionInfo.dwMajorVersion >= 10 ) {
320
+ glfwWindowHint (GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_TRUE);
321
+ } else {
322
+ glfwWindowHint (GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_FALSE);
323
+ }
324
+ }
325
+
311
326
312
327
void Window::initNative () {
313
328
if (ImHexApi::System::isDebugBuild ()) {
Original file line number Diff line number Diff line change @@ -717,25 +717,8 @@ namespace hex {
717
717
std::abort ();
718
718
}
719
719
720
- // Set up used OpenGL version
721
- #if defined(OS_MACOS)
722
- glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3 );
723
- glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 2 );
724
- glfwWindowHint (GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
725
- glfwWindowHint (GLFW_COCOA_RETINA_FRAMEBUFFER, GLFW_FALSE);
726
- glfwWindowHint (GLFW_COCOA_GRAPHICS_SWITCHING, GLFW_TRUE);
727
- #else
728
- glfwWindowHint (GLFW_CONTEXT_VERSION_MAJOR, 3 );
729
- glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 0 );
730
- glfwWindowHint (GLFW_DECORATED, ImHexApi::System::isBorderlessWindowModeEnabled () ? GL_FALSE : GL_TRUE);
731
- #endif
732
-
733
- #if defined(OS_LINUX) && defined(GLFW_WAYLAND_APP_ID)
734
- glfwWindowHintString (GLFW_WAYLAND_APP_ID, " imhex" );
735
- #endif
736
-
720
+ configureGLFW ();
737
721
glfwWindowHint (GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
738
- glfwWindowHint (GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_TRUE);
739
722
glfwWindowHint (GLFW_VISIBLE, GLFW_FALSE);
740
723
glfwWindowHint (GLFW_CLIENT_API, GLFW_OPENGL_API);
741
724
You can’t perform that action at this time.
0 commit comments