Comments (5)
Try v4.3.0?
from twgl.js.
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.
Hello, I made a pull request to resolve the 'document' issue into a webWorker.
from twgl.js.
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 returningnull
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.
Ok no problem for me, it works. I remove my PR.
Thanks!
from twgl.js.
Related Issues (20)
- Dynamically changing attribute values, does it require to create bufferinfo everytime
- Last framebuffer's attached texture is empty? HOT 3
- Incorrect sentence structure.
- GPGPU particles example performance HOT 5
- resizeCanvasToDisplaySize in a web worker sets the width and height to 0 HOT 2
- Should not update the number of elements too HOT 1
- Question about simple triangle rendering HOT 1
- Inconsistent `type` type in `createAttribsFromArrays` HOT 8
- Defer checking shader compile status HOT 8
- Unsetting a texture in webgl2 HOT 3
- gl.useProgram(program); HOT 1
- bindTransformFeedbackInfo with offset HOT 3
- Get the jsdoc into the tsd HOT 2
- Incorrect TypeScript types of `createAugmentedTypedArray` HOT 2
- TEXTURE_COMPARE_MODE and sampler2DShadow HOT 4
- twgl-base package.json refers to non-existent `module` file HOT 2
- Cubemap uses only first texture HOT 3
- Rendering objects using drawObjectList causes skybox to not be rendered HOT 6
- `opt_locations` of createProgramInfo is missing from typescript bindings HOT 2
- webgpu support ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from twgl.js.