WebGL: the engine now runs shaders and draws triangles
A growing share of the web draws with WebGL - maps, charts, games, 3D product views - and Floati had none: asking a canvas for a 'webgl' context silently handed back the 2D one, so every WebGL page drew nothing. This release is a from-scratch software WebGL engine. It runs the real pipeline on the CPU: a GLSL ES shader language (its own tokenizer, parser and evaluator - vectors, matrices, swizzles, the common built-in functions), vertex buffers and attributes, uniforms and varyings, and a triangle rasteriser with perspective-correct interpolation. A page compiles a vertex and fragment shader, uploads its vertices, calls drawArrays, and the rendered frame appears on the canvas; readPixels reads it back exactly. It is proven the way the engine's other from-scratch subsystems are - against an independent reference: a red triangle covers precisely the lower-left half of the viewport and the corner outside it stays clear, a uniform colour reaches every pixel, and a three-colour triangle blends across its face. This is an honest MVP: it renders the shape intro and medium WebGL content uses, and it fails loudly (a shader that will not compile, an unsupported draw mode) rather than painting a wrong frame. Texture sampling and indexed drawing are named next steps. Because it runs on the CPU, this is a Web APIs capability, not GPU acceleration - the GPU score is unchanged and honest. Web APIs moves 54 to 56 and overall 55 to 56.