Skip to content

Commit 3d842fd

Browse files
committed
Do not render anything when window is minimized
1 parent 23a0c59 commit 3d842fd

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

engine/system/win/sys_local.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class sys_main_c: public sys_IMain {
6060
class core_IMain* core = nullptr;
6161

6262
bool initialised = false;
63+
bool minimized = false;
6364
volatile bool exitFlag = false;
6465
volatile bool restartFlag = false;
6566
char* exitMsg = nullptr;

engine/system/win/sys_main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -804,8 +804,8 @@ bool sys_main_c::Run(int argc, char** argv)
804804
Exit();
805805
break;
806806
}
807-
808-
core->Frame();
807+
if (minimized == false)
808+
core->Frame();
809809

810810
if (threadError) {
811811
Error(threadError);

engine/system/win/sys_video.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,10 @@ int sys_video_c::Apply(sys_vidSet_s* set)
426426
auto sys = (sys_main_c*)glfwGetWindowUserPointer(wnd);
427427
glfwSetWindowShouldClose(wnd, sys->initialised && sys->core->CanExit());
428428
});
429+
glfwSetWindowIconifyCallback(wnd, [](GLFWwindow* wnd, int value) {
430+
auto sys = (sys_main_c*)glfwGetWindowUserPointer(wnd);
431+
sys->minimized = value == 1 ? true : false;
432+
});
429433
glfwSetFramebufferSizeCallback(wnd, [](GLFWwindow* wnd, int width, int height) {
430434
auto sys = (sys_main_c*)glfwGetWindowUserPointer(wnd);
431435
sys->video->FramebufferSizeChanged(width, height);

0 commit comments

Comments
 (0)