Index: Source/modules/webgl/WebGLRenderingContextBase.cpp |
diff --git a/Source/modules/webgl/WebGLRenderingContextBase.cpp b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
index fca5c3e2eb1224b37564569495d2ec4ad4a8e37a..2f225860b2304320305e1ee647f405ea9301e660 100644 |
--- a/Source/modules/webgl/WebGLRenderingContextBase.cpp |
+++ b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
@@ -2866,6 +2866,17 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* scriptState, GL |
return WebGLAny(scriptState, maxDrawBuffers()); |
synthesizeGLError(GL_INVALID_ENUM, "getParameter", "invalid parameter name, WEBGL_draw_buffers not enabled"); |
return ScriptValue::createNull(scriptState); |
+ case GL_TIMESTAMP_EXT: |
+ if (extensionEnabled(EXTDisjointTimerQueryName)) |
+ return getInt64Parameter(scriptState, GL_TIMESTAMP_EXT); |
+ synthesizeGLError(GL_INVALID_ENUM, "getParameter", "invalid parameter name, EXT_disjoint_timer_query not enabled"); |
+ return ScriptValue::createNull(scriptState); |
+ case GL_GPU_DISJOINT_EXT: |
+ if (extensionEnabled(EXTDisjointTimerQueryName)) |
+ return getBooleanParameter(scriptState, GL_GPU_DISJOINT_EXT); |
+ synthesizeGLError(GL_INVALID_ENUM, "getParameter", "invalid parameter name, EXT_disjoint_timer_query not enabled"); |
+ return ScriptValue::createNull(scriptState); |
+ |
default: |
if ((extensionEnabled(WebGLDrawBuffersName) || isWebGL2OrHigher()) |
&& pname >= GL_DRAW_BUFFER0_EXT |
@@ -5168,6 +5179,14 @@ ScriptValue WebGLRenderingContextBase::getIntParameter(ScriptState* scriptState, |
return WebGLAny(scriptState, value); |
} |
+ScriptValue WebGLRenderingContextBase::getInt64Parameter(ScriptState* scriptState, GLenum pname) |
+{ |
+ GLint64 value = 0; |
+ if (!isContextLost()) |
+ webContext()->getInteger64v(pname, &value); |
+ return WebGLAny(scriptState, value); |
+} |
+ |
ScriptValue WebGLRenderingContextBase::getUnsignedIntParameter(ScriptState* scriptState, GLenum pname) |
{ |
GLint value = 0; |