Initial implementation of WebGLQueries

This patch adds initial support for WeGLQueries. Most related WebGL
functions and objects are implemented [1]. What's still missing is
the `EXT_disjoint_timer_query_webgl2` support.

[1]: https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.12
This commit is contained in:
Mátyás Mustoha 2019-09-09 11:21:46 +02:00
parent 402db83b2b
commit f2e2b3d34b
12 changed files with 542 additions and 165 deletions

View file

@ -12,9 +12,6 @@ typedef long long GLint64;
typedef unsigned long long GLuint64;
// interface WebGLQuery : WebGLObject {
// };
// interface WebGLSampler : WebGLObject {
// };
@ -528,13 +525,13 @@ interface WebGL2RenderingContextBase
// void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
/* Query Objects */
/*WebGLQuery? createQuery();
WebGLQuery? createQuery();
void deleteQuery(WebGLQuery? query);
[WebGLHandlesContextLoss] GLboolean isQuery(WebGLQuery? query);
/*[WebGLHandlesContextLoss]*/ GLboolean isQuery(WebGLQuery? query);
void beginQuery(GLenum target, WebGLQuery query);
void endQuery(GLenum target);
WebGLQuery? getQuery(GLenum target, GLenum pname);
any getQueryParameter(WebGLQuery query, GLenum pname);*/
any getQueryParameter(WebGLQuery query, GLenum pname);
/* Sampler Objects */
/*WebGLSampler? createSampler();

View file

@ -0,0 +1,11 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
//
// WebGL IDL definitions scraped from the Khronos specification:
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.8
//
[Exposed=Window, Pref="dom.webgl2.enabled"]
interface WebGLQuery : WebGLObject {
};