-
Notifications
You must be signed in to change notification settings - Fork 81
Description
There's a few, um, less than best practices in the WebGL code. I didn't look at the others
2 examples
-
looking up uniform and attribute locations every frame at render time instead of once at init time
-
assigning properties to WebGLObjects that could be null
There's also questionable issues like forcing 800x600. That might make sense on desktop PCs where you'd be hard pressed to find a display that's only 800x600 but it makes far less sense on a browser that might be viewed in a phone where the phone is trying to emulate 320x568 resolution.
Another is using devicePixelRatio. Does that happen on your c++ version? In other words if you open an 800x600 window are you getting 800x600 pixels or 800x600 * devicePixelRatio
Other random stuff
Setting the size of the canvas directly is kind of an anti-pattern. You should let CSS choose the size on the web.
Vertex Buffer Objects are available pretty much universally on WebGL
http://webglstats.com/webgl/extension/OES_vertex_array_object?platforms=0000dfffcfbfabfd01
In fact it's only IE and Edge that, not the actual hardware so if you want to use them you can either just use them and tell IE and Edge users they're S.O.L. or you can use polyfill that will just fill it in on IE and EDGE.
Would you be interested in a PR that deals with those issues?