Bug 1324626 - Pick a MAX_CLIENT_WAIT_TIMEOUT_WEBGL. - r=lenzak800

MozReview-Commit-ID: L4gaasXZYFb
This commit is contained in:
Jeff Gilbert 2016-12-19 19:31:18 -08:00
Родитель ac1470a840
Коммит 63439e0683
3 изменённых файлов: 9 добавлений и 1 удалений

Просмотреть файл

@ -325,6 +325,8 @@ public:
// -------------------------------------------------------------------------
// Sync objects - WebGL2ContextSync.cpp
const GLuint64 kMaxClientWaitSyncTimeoutNS = 1000 * 1000 * 1000; // 1000ms in ns.
already_AddRefed<WebGLSync> FenceSync(GLenum condition, GLbitfield flags);
bool IsSync(const WebGLSync* sync);
void DeleteSync(WebGLSync* sync);

Просмотреть файл

@ -112,7 +112,7 @@ WebGL2Context::GetParameter(JSContext* cx, GLenum pname, ErrorResult& rv)
/* GLint64 */
case LOCAL_GL_MAX_CLIENT_WAIT_TIMEOUT_WEBGL:
return JS::NumberValue(0); // TODO
return JS::NumberValue(kMaxClientWaitSyncTimeoutNS);
case LOCAL_GL_MAX_ELEMENT_INDEX:
// GL_MAX_ELEMENT_INDEX becomes available in GL 4.3 or via ES3

Просмотреть файл

@ -67,6 +67,12 @@ WebGL2Context::ClientWaitSync(const WebGLSync& sync, GLbitfield flags, GLuint64
return LOCAL_GL_WAIT_FAILED;
}
if (timeout > kMaxClientWaitSyncTimeoutNS) {
ErrorInvalidOperation("%s: `timeout` must not exceed %s nanoseconds.", funcName,
"MAX_CLIENT_WAIT_TIMEOUT_WEBGL");
return LOCAL_GL_WAIT_FAILED;
}
MakeContextCurrent();
return gl->fClientWaitSync(sync.mGLName, flags, timeout);
}