Coder Social home page Coder Social logo

using twgl in web worker about twgl.js HOT 5 CLOSED

kaktus40 avatar kaktus40 commented on May 22, 2024
using twgl in web worker

from twgl.js.

Comments (5)

greggman avatar greggman commented on May 22, 2024

Try v4.3.0?

from twgl.js.

kaktus40 avatar kaktus40 commented on May 22, 2024

Well, for window reference, it's OK now but I'm sorry to say that worker doesn't have document object. I have found 'document' references here, here, here and here. Thanks for your fast corrections!

from twgl.js.

kaktus40 avatar kaktus40 commented on May 22, 2024

Hello, I made a pull request to resolve the 'document' issue into a webWorker.

from twgl.js.

greggman avatar greggman commented on May 22, 2024

Thanks for the PR. Unfortunately we were working in parallel so I made most of the same changes 😅

I threw together a working example

http://twgljs.org/examples/offscreencanvas.html

Some notes: you probably know that OffscreenCanvas is not yet released (it's behind flags)

What I noticed while making this work

  • Chrome supports 2d canvas in a worker.
  • Firefox does NOT support 2d canvas in a worker. Worse, if you try to create one (ie, call someOffscreenCanvas.getContext('2d') instead of returning null and continuing Firefox seems to just stop executing JavaScript so that sucks.
  • Chrome is having no problems loading the textures from images but Firefox is. No idea why. No error messages. They just don't show up.
  • Firefox Nightly on macOS (59.0a1 (2018-01-02)) crashes trying to run the sample. Firefox stable 57.0.3 (64-bit) runs but no textures from images.

The short version of all of that is OffscreenCanvas is not really ready for prime time yet.

As for TWGL the code related to slicing one image into a cubemap or into a 3d texture will have to be reworked at some point. I could make it work in Chrome by using the 2D offscreencanvas that's working but as pointed out above it Firefox just stops running if you even try to make an offscreen canvas. Maybe I could check for OffscreenCanvas2DRenderingContext to see if I should or shouldn't make one.

I could fix the 3D slicing code to not use canvas. Will probably do that since that's WebGL2 only. Fixing the cubemap slicing code is a little problematic because it needs to work in WebGL (so can't use unpack settings) and it needs to use canvas for Safari and Edge so can't just switch the code to ImageBitmap slices. Also ImageBitmap slices are async. That probably doesn't matter but it would be a change to how twgl behaves for twgl.setTextureFromElement

from twgl.js.

kaktus40 avatar kaktus40 commented on May 22, 2024

Ok no problem for me, it works. I remove my PR.
Thanks!

from twgl.js.

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.