Updated IDLs with correct 'implements' syntax
Merge pull request #486 from toji/idl_update

Updated IDLs with correct 'implements' syntax
Correct singularity handling in J3DIMath matrix rotation decomposition

The old formula for handling the case where cos(rotate[1]) == 0 was
incorrect. This could cause flickering in the demo animation as it
calculated the rotation angles wrong when this singularity was
encountered. Implement the correct formulas solved from the equation
group:

row1[0] = sin(a)sin(b)cos(c) + cos(a)sin(c)
row1[1] = -sin(a)sin(b)sin(c) + cos(a)cos(c)
row2[0] = -cos(a)sin(b)cos(c) + sin(a)sin(c)
row2[1] = cos(a)sin(b)sin(c) + sin(a)cos(c)

where a = rotate[0], b = rotate[1], and c = rotate[2].

The bug reproduces in Chrome. It does not reproduce in Firefox due to
slightly different approximations for trigonometric functions, which
helps it avoid the singularity. These differences in approximations are
allowed by the ECMAScript spec.
Fix to adhere to the row/column confusion in J3DIMath

In J3DIMatrix, $matrix.mxy is actually the matrix value in the xth column
and yth row. WebKitCSSMatrix, which J3DIMatrix is based on, has incorrect
documentation about this. J3DIMatrix documentation in about row/column
majorness might be wrong as well, but this patch only attempts to fix the
matrix decomposition.
Fix remaining incorrect math in rotation decomposition

The cos(rotate[1]) != 0 code path in rotation decomposition used to work
only for a special case of the rotation. Fix it so that it should work
with arbitrary rotation.

The fix is demonstrated in MatrixTest.html. The first cube and the cube
with the decomposed rotation should rotate roughly the same way.
Fix browser detection for Chromium-based Opera.
Merge pull request #488 from kenrussell/fix-opera

Fix browser detection for Chromium-based Opera.
Add explanation of how the rotation decomposition is derived

Also fix an issue: rotate[2] can in fact be chosen arbitrarily when
cos(rotate[1]) == 0, so set it at 0 in that case. Still keep the more
robust formulas for rotate[0].
Merge pull request #487 from NVIDIA/matrix-singularity-fix

Fix rotation matrix decomposition in J3DIMath
Fix the most obvious issues in J3DIMath and add basic tests

Interface description was edited to match what the code does, cross
product now produces the correct results, and basic unit tests for
the functions where problems were found were added.

Note that WebKitCSSMatrix behavior does not seem to match docs in current
browsers: m12 represents the value in the 2nd row, not in 2nd column like
the class reference says [1]. The actual behavior is similar to how
J3DIMath implements it in JavaScript.

[1] See https://developer.apple.com/library/safari/documentation/AudioVideo/Reference/WebKitCSSMatrixClassReference
 Add a case for getTexParameter() returning correct float values.

Also, fix a bug in shaders-with-mis-matching-uniforms.html (fragment shader missing float precision)
Merge pull request #490 from zhenyao/fix

 Add a case for getTexParameter() returning correct float values.
Assign new test's copyright to Khronos

The header is copied from webgl-conformance-tests.html
Disallow compressedTexSubImage2D for ETC1 format

The original spec doesn't allow it, so we probably shouldn't either.
Merge pull request #491 from jdashg/etc1-no-sub

Disallow compressedTexSubImage2D for ETC1 format
Merge pull request #489 from NVIDIA/j3dimath-improvement

Fix the most obvious issues in J3DIMath and add basic tests
Fixed inverted test of WebGLContextEvent's "canceled" flag. Thanks to Justin Novosad for pointing out the bug. Updated modified and copyright dates.
Merge pull request #493 from kenrussell/cancelable-flag

Fixed inverted test of WebGLContextEvent's "canceled" flag. Thanks to Ju...
Make WEBGL_depth_texture refer to right section in main spec
ANGLE_instanced_arrays extension addendum for index validation

This makes the specification to have reasonable security and stability
guarantees and match what at least Chrome has already implemented.