Delay before resetting the demo when resizing
Maybe it will prevent the laptop from crashing.
This commit is contained in:
parent
93308ac578
commit
2bbf14d827
1 changed files with 14 additions and 1 deletions
15
main.cc
15
main.cc
|
@ -13,6 +13,8 @@
|
||||||
|
|
||||||
struct T_Main
|
struct T_Main
|
||||||
{
|
{
|
||||||
|
static constexpr uint32_t ResizeDelay = 50;
|
||||||
|
|
||||||
T_Main( );
|
T_Main( );
|
||||||
~T_Main( );
|
~T_Main( );
|
||||||
|
|
||||||
|
@ -24,6 +26,9 @@ struct T_Main
|
||||||
ImVec2 mouseInitial;
|
ImVec2 mouseInitial;
|
||||||
ImVec2 mouseMove;
|
ImVec2 mouseMove;
|
||||||
|
|
||||||
|
uint32_t stopResize = 0;
|
||||||
|
ImVec2 prevSize;
|
||||||
|
|
||||||
std::unique_ptr< T_Demo > demo;
|
std::unique_ptr< T_Demo > demo;
|
||||||
|
|
||||||
void initDemo( );
|
void initDemo( );
|
||||||
|
@ -39,6 +44,7 @@ struct T_Main
|
||||||
T_Main::T_Main( )
|
T_Main::T_Main( )
|
||||||
{
|
{
|
||||||
Globals::Init( );
|
Globals::Init( );
|
||||||
|
prevSize = ImVec2( 1280 , 720 );
|
||||||
}
|
}
|
||||||
|
|
||||||
void T_Main::mainLoop( )
|
void T_Main::mainLoop( )
|
||||||
|
@ -47,7 +53,14 @@ void T_Main::mainLoop( )
|
||||||
while ( !done ) {
|
while ( !done ) {
|
||||||
if ( demo ) {
|
if ( demo ) {
|
||||||
auto const& dspSize( ImGui::GetIO( ).DisplaySize );
|
auto const& dspSize( ImGui::GetIO( ).DisplaySize );
|
||||||
if ( demo->width != dspSize.x || demo->height != dspSize.y ) {
|
if ( prevSize.x != dspSize.x || prevSize.y != dspSize.y ) {
|
||||||
|
stopResize = ResizeDelay;
|
||||||
|
prevSize = dspSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( stopResize > 0 ) {
|
||||||
|
stopResize --;
|
||||||
|
if ( stopResize == 0 ) {
|
||||||
demo.reset( );
|
demo.reset( );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue