GithubHelp home page GithubHelp logo

Comments (9)

davidfig avatar davidfig commented on May 18, 2024

Where are you testing this? Are you using viewport.start() or manually updating the loop?

from pixi-viewport.

defaultsamson avatar defaultsamson commented on May 18, 2024

using viewport.start()

Full code for initialization is here

var options = {
    pauseOnBlur: true,
    screenWidth: w,
    screenHeight: h,
    worldWidth: w,
    worldHeight: h,
};

var viewport = new Viewport(game.stage, options);

var clampOptions = {
    minWidth: 1,
    minHeight: minHeight,
    maxWidth: 1000 * w,
    maxHeight: maxHeight
};

viewport
    .drag()
    .wheel()
    .pinch({
        percent: 4.5
    })
    .clampZoom(clampOptions)
    .decelerate()
    .start();

from pixi-viewport.

davidfig avatar davidfig commented on May 18, 2024

So when pauseOnBlur = false, then the viewport still pauses when focus is lost?

from pixi-viewport.

defaultsamson avatar defaultsamson commented on May 18, 2024

Correct. I can also confirm that pauseOnBlur acts appropriately when manually updating the viewport via

game.ticker.add(function () {
    viewport.update();
}

from pixi-viewport.

davidfig avatar davidfig commented on May 18, 2024

Hmm...strange.

Have you tried it with overlay windows or Chrome's devtool instead of tabs? options.pauseOnBlur is triggered only when using the viewport's built in loop through viewport.start(). It should have no effect if you manually call viewport.update. I checked PIXI.Ticker, and it does not have a blur event handler.

from pixi-viewport.

defaultsamson avatar defaultsamson commented on May 18, 2024

My apologies, I retested the viewport. Regardless of the value of the option pauseOnBlur ...

  • When starting using viewport.start() the viewport always pauses upon blurring
  • When using viewport.update() in a PIXI.ticker loop, the viewport never pauses upon blurring

from pixi-viewport.

davidfig avatar davidfig commented on May 18, 2024

Ugh. I still can't replicate this bug.

Can you try the demo: https://davidfig.github.io/pixi-viewport/ It's currently set with pauseOnBlur: false so it should not pause when blurring.

The PIXI.ticker.loop makes sense since the pauseOnBlur only works when using yy-loop's start() command. It's ignored if you use your own loop.

from pixi-viewport.

defaultsamson avatar defaultsamson commented on May 18, 2024

Tried the demo, same results: https://youtu.be/BFKZDqoMZSo
The effect on the decelerate plugin is quite visible in the video.

Running on Windows 10 (64-bit)
Running on Chrome Version 61.0.3163.100 (Official Build) (64-bit)

Can also confirm the same results for
Running on Chrome OS (64-bit)
Chrome Version 62.0.3202.74 (Official Build) beta (64-bit)

from pixi-viewport.

davidfig avatar davidfig commented on May 18, 2024

Ok. Did a bit of research. I remember I spent many hours on this when I was first worked on my loop API (mostly around whether to use blur/focus or page visibility).

The tab issue is related to battery life (from MDN]:

  • Window.requestAnimationFrame() calls are paused in most browsers when running in background tabs or hidden <iframe>s in order to improve performance and battery life.

The pauseOnBlur works when you switch applications, but not when switching tabs. Not sure how PIXI.ticker does it since they should have the same limitation when switching tabs.

from pixi-viewport.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.