protected override void OnUpdate() { if (!windowOpen) { return; } var displayInfo = GetSingleton <DisplayInfo>(); GLFWNativeCalls.getWindowSize(out int winw, out int winh); if (winw != displayInfo.width || winh != displayInfo.height) { if (displayInfo.autoSizeToFrame) { displayInfo.width = winw; displayInfo.height = winh; displayInfo.frameWidth = winw; displayInfo.frameHeight = winh; displayInfo.framebufferWidth = winw; displayInfo.framebufferHeight = winh; SetSingleton(displayInfo); } else { GLFWNativeCalls.resize(displayInfo.width, displayInfo.height); } } if (GLFWNativeCalls.getWindowShouldClose() == 1) { World.QuitUpdate = true; return; } }
protected override void OnUpdate() { if (!initialized) { return; } GLFWNativeCalls.swapBuffers(); var env = World.TinyEnvironment(); var config = env.GetConfigData <DisplayInfo>(); int winw = 0, winh = 0; GLFWNativeCalls.getWindowSize(ref winw, ref winh); if (winw != config.width || winh != config.height) { if (config.autoSizeToFrame) { config.width = winw; config.height = winh; config.frameWidth = winw; config.frameHeight = winh; int fbw = 0, fbh = 0; GLFWNativeCalls.getFramebufferSize(ref fbw, ref fbh); config.framebufferWidth = fbw; config.framebufferHeight = fbh; env.SetConfigData(config); } else { GLFWNativeCalls.resize(config.width, config.height); } } if (!GLFWNativeCalls.messagePump()) { Debug.Log("GLFW message pump exit."); GLFWNativeCalls.shutdown(1); World.QuitUpdate = true; initialized = false; return; } #if DEBUG GLFWNativeCalls.debugClear(); #endif double newFrameTime = GLFWNativeCalls.time(); env.StepWallRealtimeFrame(newFrameTime - frameTime); frameTime = newFrameTime; }
protected override void OnUpdate() { if (!windowOpen) { return; } #if UNITY_DOTSPLAYER Unity.Profiling.Profiler.FrameEnd(); Unity.Profiling.Profiler.FrameBegin(); #endif var env = World.TinyEnvironment(); var config = env.GetConfigData <DisplayInfo>(); GLFWNativeCalls.getWindowSize(out int winw, out int winh); if (winw != config.width || winh != config.height) { if (config.autoSizeToFrame) { config.width = winw; config.height = winh; config.frameWidth = winw; config.frameHeight = winh; config.framebufferWidth = winw; config.framebufferHeight = winh; env.SetConfigData(config); } else { GLFWNativeCalls.resize(config.width, config.height); } } if (!GLFWNativeCalls.messagePump()) { #if UNITY_DOTSPLAYER World.QuitUpdate = true; #endif return; } double newFrameTime = GLFWNativeCalls.time(); var timeData = env.StepWallRealtimeFrame(newFrameTime - frameTime); World.SetTime(timeData); frameTime = newFrameTime; }