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;
            }
        }
Example #2
0
        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;
        }
Example #3
0
        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;
        }