> On May 2, 2018, at 6:20 PM, Michael Van Canneyt <mich...@freepascal.org> 
> wrote:
> 
> Yes: You posted the link to 1.0.

I think it’s actually an extension to the original so nothing was lost. The 
original didn’t have vertex array objects so it’s best to have both.

https://www.khronos.org/registry/webgl/specs/latest/2.0/webgl2.idl

That’s what my parser dumps out in current state (some bugs I know). I think 
TJSWebGL2RenderingContextBase is supposed to be a subclass of the first context 
base class to make it work.

unit webgl2;

{$mode objfpc}
{$modeswitch externalclass}

interface
uses
  JS, Web;

  type GLint64 = nativeint;
  type GLuint64 = unsigned long long;
  class TJSWebGLQuery = external name 'WebGLQuery' (TJSWebGLObject);
  class TJSWebGLSampler = external name 'WebGLSampler' (TJSWebGLObject);
  class TJSWebGLSync = external name 'WebGLSync' (TJSWebGLObject);
  class TJSWebGLTransformFeedback = external name 'WebGLTransformFeedback' 
(TJSWebGLObject);
  class TJSWebGLVertexArrayObject = external name 'WebGLVertexArrayObject' 
(TJSWebGLObject);
  class TJSWebGL2RenderingContextBase = external name 
'WebGL2RenderingContextBase' (TJSObject)
  public
    const READ_BUFFER: nativeint;
    const UNPACK_ROW_LENGTH: nativeint;
    const UNPACK_SKIP_ROWS: nativeint;
    const UNPACK_SKIP_PIXELS: nativeint;
    const PACK_ROW_LENGTH: nativeint;
    const PACK_SKIP_ROWS: nativeint;
    const PACK_SKIP_PIXELS: nativeint;
    const COLOR: nativeint;
    const DEPTH: nativeint;
    const STENCIL: nativeint;
    const RED: nativeint;
    const RGB8: nativeint;
    const RGBA8: nativeint;
    const RGB10_A2: nativeint;
    const TEXTURE_BINDING_3D: nativeint;
    const UNPACK_SKIP_IMAGES: nativeint;
    const UNPACK_IMAGE_HEIGHT: nativeint;
    const TEXTURE_3D: nativeint;
    const TEXTURE_WRAP_R: nativeint;
    const MAX_3D_TEXTURE_SIZE: nativeint;
    const UNSIGNED_INT_2_10_10_10_REV: nativeint;
    const MAX_ELEMENTS_VERTICES: nativeint;
    const MAX_ELEMENTS_INDICES: nativeint;
    const TEXTURE_MIN_LOD: nativeint;
    const TEXTURE_MAX_LOD: nativeint;
    const TEXTURE_BASE_LEVEL: nativeint;
    const TEXTURE_MAX_LEVEL: nativeint;
    const MIN: nativeint;
    const MAX: nativeint;
    const DEPTH_COMPONENT24: nativeint;
    const MAX_TEXTURE_LOD_BIAS: nativeint;
    const TEXTURE_COMPARE_MODE: nativeint;
    const TEXTURE_COMPARE_FUNC: nativeint;
    const CURRENT_QUERY: nativeint;
    const QUERY_RESULT: nativeint;
    const QUERY_RESULT_AVAILABLE: nativeint;
    const STREAM_READ: nativeint;
    const STREAM_COPY: nativeint;
    const STATIC_READ: nativeint;
    const STATIC_COPY: nativeint;
    const DYNAMIC_READ: nativeint;
    const DYNAMIC_COPY: nativeint;
    const MAX_DRAW_BUFFERS: nativeint;
    const DRAW_BUFFER0: nativeint;
    const DRAW_BUFFER1: nativeint;
    const DRAW_BUFFER2: nativeint;
    const DRAW_BUFFER3: nativeint;
    const DRAW_BUFFER4: nativeint;
    const DRAW_BUFFER5: nativeint;
    const DRAW_BUFFER6: nativeint;
    const DRAW_BUFFER7: nativeint;
    const DRAW_BUFFER8: nativeint;
    const DRAW_BUFFER9: nativeint;
    const DRAW_BUFFER10: nativeint;
    const DRAW_BUFFER11: nativeint;
    const DRAW_BUFFER12: nativeint;
    const DRAW_BUFFER13: nativeint;
    const DRAW_BUFFER14: nativeint;
    const DRAW_BUFFER15: nativeint;
    const MAX_FRAGMENT_UNIFORM_COMPONENTS: nativeint;
    const MAX_VERTEX_UNIFORM_COMPONENTS: nativeint;
    const SAMPLER_3D: nativeint;
    const SAMPLER_2D_SHADOW: nativeint;
    const FRAGMENT_SHADER_DERIVATIVE_HINT: nativeint;
    const PIXEL_PACK_BUFFER: nativeint;
    const PIXEL_UNPACK_BUFFER: nativeint;
    const PIXEL_PACK_BUFFER_BINDING: nativeint;
    const PIXEL_UNPACK_BUFFER_BINDING: nativeint;
    const FLOAT_MAT2x3: nativeint;
    const FLOAT_MAT2x4: nativeint;
    const FLOAT_MAT3x2: nativeint;
    const FLOAT_MAT3x4: nativeint;
    const FLOAT_MAT4x2: nativeint;
    const FLOAT_MAT4x3: nativeint;
    const SRGB: nativeint;
    const SRGB8: nativeint;
    const SRGB8_ALPHA8: nativeint;
    const COMPARE_REF_TO_TEXTURE: nativeint;
    const RGBA32F: nativeint;
    const RGB32F: nativeint;
    const RGBA16F: nativeint;
    const RGB16F: nativeint;
    const VERTEX_ATTRIB_ARRAY_INTEGER: nativeint;
    const MAX_ARRAY_TEXTURE_LAYERS: nativeint;
    const MIN_PROGRAM_TEXEL_OFFSET: nativeint;
    const MAX_PROGRAM_TEXEL_OFFSET: nativeint;
    const MAX_VARYING_COMPONENTS: nativeint;
    const TEXTURE_2D_ARRAY: nativeint;
    const TEXTURE_BINDING_2D_ARRAY: nativeint;
    const R11F_G11F_B10F: nativeint;
    const UNSIGNED_INT_10F_11F_11F_REV: nativeint;
    const RGB9_E5: nativeint;
    const UNSIGNED_INT_5_9_9_9_REV: nativeint;
    const TRANSFORM_FEEDBACK_BUFFER_MODE: nativeint;
    const MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: nativeint;
    const TRANSFORM_FEEDBACK_VARYINGS: nativeint;
    const TRANSFORM_FEEDBACK_BUFFER_START: nativeint;
    const TRANSFORM_FEEDBACK_BUFFER_SIZE: nativeint;
    const TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: nativeint;
    const RASTERIZER_DISCARD: nativeint;
    const MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: nativeint;
    const MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: nativeint;
    const INTERLEAVED_ATTRIBS: nativeint;
    const SEPARATE_ATTRIBS: nativeint;
    const TRANSFORM_FEEDBACK_BUFFER: nativeint;
    const TRANSFORM_FEEDBACK_BUFFER_BINDING: nativeint;
    const RGBA32UI: nativeint;
    const RGB32UI: nativeint;
    const RGBA16UI: nativeint;
    const RGB16UI: nativeint;
    const RGBA8UI: nativeint;
    const RGB8UI: nativeint;
    const RGBA32I: nativeint;
    const RGB32I: nativeint;
    const RGBA16I: nativeint;
    const RGB16I: nativeint;
    const RGBA8I: nativeint;
    const RGB8I: nativeint;
    const RED_INTEGER: nativeint;
    const RGB_INTEGER: nativeint;
    const RGBA_INTEGER: nativeint;
    const SAMPLER_2D_ARRAY: nativeint;
    const SAMPLER_2D_ARRAY_SHADOW: nativeint;
    const SAMPLER_CUBE_SHADOW: nativeint;
    const UNSIGNED_INT_VEC2: nativeint;
    const UNSIGNED_INT_VEC3: nativeint;
    const UNSIGNED_INT_VEC4: nativeint;
    const INT_SAMPLER_2D: nativeint;
    const INT_SAMPLER_3D: nativeint;
    const INT_SAMPLER_CUBE: nativeint;
    const INT_SAMPLER_2D_ARRAY: nativeint;
    const UNSIGNED_INT_SAMPLER_2D: nativeint;
    const UNSIGNED_INT_SAMPLER_3D: nativeint;
    const UNSIGNED_INT_SAMPLER_CUBE: nativeint;
    const UNSIGNED_INT_SAMPLER_2D_ARRAY: nativeint;
    const DEPTH_COMPONENT32F: nativeint;
    const DEPTH32F_STENCIL8: nativeint;
    const FLOAT_32_UNSIGNED_INT_24_8_REV: nativeint;
    const FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: nativeint;
    const FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: nativeint;
    const FRAMEBUFFER_ATTACHMENT_RED_SIZE: nativeint;
    const FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: nativeint;
    const FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: nativeint;
    const FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: nativeint;
    const FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: nativeint;
    const FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: nativeint;
    const FRAMEBUFFER_DEFAULT: nativeint;
    const DEPTH_STENCIL_ATTACHMENT: nativeint;
    const DEPTH_STENCIL: nativeint;
    const UNSIGNED_INT_24_8: nativeint;
    const DEPTH24_STENCIL8: nativeint;
    const UNSIGNED_NORMALIZED: nativeint;
    const DRAW_FRAMEBUFFER_BINDING: nativeint;
    const READ_FRAMEBUFFER: nativeint;
    const DRAW_FRAMEBUFFER: nativeint;
    const READ_FRAMEBUFFER_BINDING: nativeint;
    const RENDERBUFFER_SAMPLES: nativeint;
    const FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: nativeint;
    const MAX_COLOR_ATTACHMENTS: nativeint;
    const COLOR_ATTACHMENT1: nativeint;
    const COLOR_ATTACHMENT2: nativeint;
    const COLOR_ATTACHMENT3: nativeint;
    const COLOR_ATTACHMENT4: nativeint;
    const COLOR_ATTACHMENT5: nativeint;
    const COLOR_ATTACHMENT6: nativeint;
    const COLOR_ATTACHMENT7: nativeint;
    const COLOR_ATTACHMENT8: nativeint;
    const COLOR_ATTACHMENT9: nativeint;
    const COLOR_ATTACHMENT10: nativeint;
    const COLOR_ATTACHMENT11: nativeint;
    const COLOR_ATTACHMENT12: nativeint;
    const COLOR_ATTACHMENT13: nativeint;
    const COLOR_ATTACHMENT14: nativeint;
    const COLOR_ATTACHMENT15: nativeint;
    const FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: nativeint;
    const MAX_SAMPLES: nativeint;
    const HALF_FLOAT: nativeint;
    const RG: nativeint;
    const RG_INTEGER: nativeint;
    const R8: nativeint;
    const RG8: nativeint;
    const R16F: nativeint;
    const R32F: nativeint;
    const RG16F: nativeint;
    const RG32F: nativeint;
    const R8I: nativeint;
    const R8UI: nativeint;
    const R16I: nativeint;
    const R16UI: nativeint;
    const R32I: nativeint;
    const R32UI: nativeint;
    const RG8I: nativeint;
    const RG8UI: nativeint;
    const RG16I: nativeint;
    const RG16UI: nativeint;
    const RG32I: nativeint;
    const RG32UI: nativeint;
    const VERTEX_ARRAY_BINDING: nativeint;
    const R8_SNORM: nativeint;
    const RG8_SNORM: nativeint;
    const RGB8_SNORM: nativeint;
    const RGBA8_SNORM: nativeint;
    const SIGNED_NORMALIZED: nativeint;
    const COPY_READ_BUFFER: nativeint;
    const COPY_WRITE_BUFFER: nativeint;
    const COPY_READ_BUFFER_BINDING: nativeint;
    const COPY_WRITE_BUFFER_BINDING: nativeint;
    const UNIFORM_BUFFER: nativeint;
    const UNIFORM_BUFFER_BINDING: nativeint;
    const UNIFORM_BUFFER_START: nativeint;
    const UNIFORM_BUFFER_SIZE: nativeint;
    const MAX_VERTEX_UNIFORM_BLOCKS: nativeint;
    const MAX_FRAGMENT_UNIFORM_BLOCKS: nativeint;
    const MAX_COMBINED_UNIFORM_BLOCKS: nativeint;
    const MAX_UNIFORM_BUFFER_BINDINGS: nativeint;
    const MAX_UNIFORM_BLOCK_SIZE: nativeint;
    const MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: nativeint;
    const MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: nativeint;
    const UNIFORM_BUFFER_OFFSET_ALIGNMENT: nativeint;
    const ACTIVE_UNIFORM_BLOCKS: nativeint;
    const UNIFORM_TYPE: nativeint;
    const UNIFORM_SIZE: nativeint;
    const UNIFORM_BLOCK_INDEX: nativeint;
    const UNIFORM_OFFSET: nativeint;
    const UNIFORM_ARRAY_STRIDE: nativeint;
    const UNIFORM_MATRIX_STRIDE: nativeint;
    const UNIFORM_IS_ROW_MAJOR: nativeint;
    const UNIFORM_BLOCK_BINDING: nativeint;
    const UNIFORM_BLOCK_DATA_SIZE: nativeint;
    const UNIFORM_BLOCK_ACTIVE_UNIFORMS: nativeint;
    const UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: nativeint;
    const UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: nativeint;
    const UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: nativeint;
    const INVALID_INDEX: nativeint;
    const MAX_VERTEX_OUTPUT_COMPONENTS: nativeint;
    const MAX_FRAGMENT_INPUT_COMPONENTS: nativeint;
    const MAX_SERVER_WAIT_TIMEOUT: nativeint;
    const OBJECT_TYPE: nativeint;
    const SYNC_CONDITION: nativeint;
    const SYNC_STATUS: nativeint;
    const SYNC_FLAGS: nativeint;
    const SYNC_FENCE: nativeint;
    const SYNC_GPU_COMMANDS_COMPLETE: nativeint;
    const UNSIGNALED: nativeint;
    const SIGNALED: nativeint;
    const ALREADY_SIGNALED: nativeint;
    const TIMEOUT_EXPIRED: nativeint;
    const CONDITION_SATISFIED: nativeint;
    const WAIT_FAILED: nativeint;
    const SYNC_FLUSH_COMMANDS_BIT: nativeint;
    const VERTEX_ATTRIB_ARRAY_DIVISOR: nativeint;
    const ANY_SAMPLES_PASSED: nativeint;
    const ANY_SAMPLES_PASSED_CONSERVATIVE: nativeint;
    const SAMPLER_BINDING: nativeint;
    const RGB10_A2UI: nativeint;
    const INT_2_10_10_10_REV: nativeint;
    const TRANSFORM_FEEDBACK: nativeint;
    const TRANSFORM_FEEDBACK_PAUSED: nativeint;
    const TRANSFORM_FEEDBACK_ACTIVE: nativeint;
    const TRANSFORM_FEEDBACK_BINDING: nativeint;
    const TEXTURE_IMMUTABLE_FORMAT: nativeint;
    const MAX_ELEMENT_INDEX: nativeint;
    const TEXTURE_IMMUTABLE_LEVELS: nativeint;
    const MAX_CLIENT_WAIT_TIMEOUT_WEBGL: nativeint;
    procedure bufferData (target: GLenum; size: GLsizeiptr; usage: GLenum);
    procedure bufferData (target: GLenum; srcData: BufferSource; usage: GLenum);
    procedure bufferSubData (target: GLenum; dstByteOffset: GLintptr; srcData: 
BufferSource);
    procedure bufferData (target: GLenum; srcData: ArrayBufferView; usage: 
GLenum; srcOffset: GLuint; length: GLuint);
    procedure bufferSubData (target: GLenum; dstByteOffset: GLintptr; srcData: 
ArrayBufferView; length: GLuint);
    procedure copyBufferSubData (readTarget: GLenum; writeTarget: GLenum; 
readOffset: GLintptr; size: GLsizeiptr);
    procedure getBufferSubData (target: GLenum; srcByteOffset: GLintptr; 
dstBuffer: ArrayBufferView; dstOffset: GLuint; length: GLuint);
    procedure blitFramebuffer (srcX0: GLint; srcY0: GLint; srcX1: GLint; srcY1: 
GLint; dstX0: GLint; dstY0: GLint; dstY1: GLint; mask: GLbitfield; filter: 
GLenum);
    procedure framebufferTextureLayer (target: GLenum; attachment: GLenum; 
texture: TJSWebGLTexture; level: GLint);
    procedure invalidateFramebuffer (target: GLenum; attachments: 
GLenumDynArray);
    procedure invalidateSubFramebuffer (target: GLenum; attachments: 
GLenumDynArray; y: GLint; width: GLsizei; height: GLsizei);
    procedure readBuffer (src: GLenum);
    function getInternalformatParameter (target: GLenum; internalformat: 
GLenum; pname: GLenum): JSValue;
    procedure renderbufferStorageMultisample (target: GLenum; samples: GLsizei; 
internalformat: GLenum; height: GLsizei);
    procedure texStorage2D (target: GLenum; levels: GLsizei; internalformat: 
GLenum; width: GLsizei);
    procedure texStorage3D (target: GLenum; levels: GLsizei; internalformat: 
GLenum; width: GLsizei; depth: GLsizei);
    procedure texImage2D (target: GLenum; level: GLint; internalformat: GLint; 
height: GLsizei; border: GLint; format: GLenum; pixels: ArrayBufferView);
    procedure texImage2D (target: GLenum; level: GLint; internalformat: GLint; 
type: GLenum; source: TexImageSource);
    procedure texSubImage2D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; height: GLsizei; type: GLenum; pixels: ArrayBufferView);
    procedure texSubImage2D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; type: GLenum; source: TexImageSource);
    procedure texImage2D (target: GLenum; level: GLint; internalformat: GLint; 
width: GLsizei; height: GLsizei; format: GLenum; type: GLenum; pboOffset: 
GLintptr);
    procedure texImage2D (target: GLenum; level: GLint; internalformat: GLint; 
width: GLsizei; height: GLsizei; format: GLenum; type: GLenum);
    procedure texImage2D (target: GLenum; level: GLint; internalformat: GLint; 
width: GLsizei; height: GLsizei; format: GLenum; type: GLenum; srcData: 
ArrayBufferView);
    procedure texImage3D (target: GLenum; level: GLint; internalformat: GLint; 
width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type: GLenum; 
pboOffset: GLintptr);
    procedure texImage3D (target: GLenum; level: GLint; internalformat: GLint; 
width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type: GLenum);
    procedure texImage3D (target: GLenum; level: GLint; internalformat: GLint; 
width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type: GLenum; 
srcData: ArrayBufferView);
    procedure texImage3D (target: GLenum; level: GLint; internalformat: GLint; 
width: GLsizei; height: GLsizei; border: GLint; format: GLenum; type: GLenum; 
srcData: ArrayBufferView);
    procedure texSubImage2D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; width: GLsizei; format: GLenum; type: GLenum; pboOffset: 
GLintptr);
    procedure texSubImage2D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; width: GLsizei; format: GLenum; type: GLenum);
    procedure texSubImage2D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; width: GLsizei; format: GLenum; type: GLenum; srcData: 
ArrayBufferView);
    procedure texSubImage3D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; zoffset: GLint; height: GLsizei; depth: GLsizei; format: 
GLenum; type: GLenum);
    procedure texSubImage3D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; zoffset: GLint; height: GLsizei; depth: GLsizei; format: 
GLenum; type: GLenum);
    procedure texSubImage3D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; zoffset: GLint; height: GLsizei; depth: GLsizei; format: 
GLenum; type: GLenum; srcOffset: GLuint);
    procedure copyTexSubImage3D (target: GLenum; level: GLint; xoffset: GLint; 
yoffset: GLint; zoffset: GLint; y: GLint; width: GLsizei; height: GLsizei);
    procedure compressedTexImage2D (target: GLenum; level: GLint; 
internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; 
offset: GLintptr);
    procedure compressedTexImage2D (target: GLenum; level: GLint; 
internalformat: GLenum; width: GLsizei; border: GLint; srcData: 
ArrayBufferView; srcOffset: GLuint; srcLengthOverride: GLuint);
    procedure compressedTexImage3D (target: GLenum; level: GLint; 
internalformat: GLenum; width: GLsizei; depth: GLsizei; border: GLint; 
imageSize: GLsizei; offset: GLintptr);
    procedure compressedTexImage3D (target: GLenum; level: GLint; 
internalformat: GLenum; width: GLsizei; depth: GLsizei; border: GLint; srcData: 
ArrayBufferView; srcOffset: GLuint; srcLengthOverride: GLuint);
    procedure compressedTexSubImage2D (target: GLenum; level: GLint; xoffset: 
GLint; yoffset: GLint; height: GLsizei; format: GLenum; imageSize: GLsizei; 
offset: GLintptr);
    procedure compressedTexSubImage2D (target: GLenum; level: GLint; xoffset: 
GLint; yoffset: GLint; height: GLsizei; format: GLenum; srcOffset: GLuint; 
srcLengthOverride: GLuint);
    procedure compressedTexSubImage3D (target: GLenum; level: GLint; xoffset: 
GLint; yoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; 
imageSize: GLsizei; offset: GLintptr);
    procedure compressedTexSubImage3D (target: GLenum; level: GLint; xoffset: 
GLint; yoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; 
srcData: ArrayBufferView; srcOffset: GLuint; srcLengthOverride: GLuint);
    function getFragDataLocation (program: WebGLProgram; name: DOMString): 
GLint;
    procedure uniform1ui (location: TJSWebGLUniformLocation; v0: GLuint);
    procedure uniform2ui (location: TJSWebGLUniformLocation; v0: GLuint; v1: 
GLuint);
    procedure uniform3ui (location: TJSWebGLUniformLocation; v0: GLuint; v1: 
GLuint; v2: GLuint);
    procedure uniform4ui (location: TJSWebGLUniformLocation; v0: GLuint; v1: 
GLuint; v2: GLuint; v3: GLuint);
    procedure uniform1fv (location: TJSWebGLUniformLocation; data: Float32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform2fv (location: TJSWebGLUniformLocation; data: Float32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform3fv (location: TJSWebGLUniformLocation; data: Float32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform4fv (location: TJSWebGLUniformLocation; data: Float32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform1iv (location: TJSWebGLUniformLocation; data: Int32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform2iv (location: TJSWebGLUniformLocation; data: Int32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform3iv (location: TJSWebGLUniformLocation; data: Int32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform4iv (location: TJSWebGLUniformLocation; data: Int32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform1uiv (location: TJSWebGLUniformLocation; data: Uint32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform2uiv (location: TJSWebGLUniformLocation; data: Uint32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform3uiv (location: TJSWebGLUniformLocation; data: Uint32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniform4uiv (location: TJSWebGLUniformLocation; data: Uint32List; 
srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix2fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix3x2fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix4x2fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix2x3fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix3fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix4x3fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix2x4fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix3x4fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure uniformMatrix4fv (location: TJSWebGLUniformLocation; transpose: 
GLboolean; data: Float32List; srcOffset: GLuint; srcLength: GLuint);
    procedure vertexAttribI4i (index: GLuint; x: GLint; y: GLint; z: GLint; w: 
GLint);
    procedure vertexAttribI4iv (index: GLuint; values: Int32List);
    procedure vertexAttribI4ui (index: GLuint; x: GLuint; y: GLuint; z: GLuint; 
w: GLuint);
    procedure vertexAttribI4uiv (index: GLuint; values: Uint32List);
    procedure vertexAttribIPointer (index: GLuint; size: GLint; type: GLenum; 
stride: GLsizei; offset: GLintptr);
    procedure vertexAttribDivisor (index: GLuint; divisor: GLuint);
    procedure drawArraysInstanced (mode: GLenum; first: GLint; count: GLsizei; 
instanceCount: GLsizei);
    procedure drawElementsInstanced (mode: GLenum; count: GLsizei; type: 
GLenum; offset: GLintptr; instanceCount: GLsizei);
    procedure drawRangeElements (mode: GLenum; start: GLuint; end: GLuint; 
count: GLsizei; type: GLenum; offset: GLintptr);
    procedure readPixels (x: GLint; y: GLint; width: GLsizei; height: GLsizei; 
format: GLenum; type: GLenum);
    procedure readPixels (x: GLint; y: GLint; width: GLsizei; height: GLsizei; 
format: GLenum; type: GLenum);
    procedure readPixels (x: GLint; y: GLint; width: GLsizei; height: GLsizei; 
format: GLenum; type: GLenum; dstOffset: GLuint);
    procedure drawBuffers (buffers: GLenumDynArray);
    procedure clearBufferfv (buffer: GLenum; drawbuffer: GLint; values: 
Float32List; srcOffset: GLuint);
    procedure clearBufferiv (buffer: GLenum; drawbuffer: GLint; values: 
Int32List; srcOffset: GLuint);
    procedure clearBufferuiv (buffer: GLenum; drawbuffer: GLint; values: 
Uint32List; srcOffset: GLuint);
    procedure clearBufferfi (buffer: GLenum; drawbuffer: GLint; depth: GLfloat; 
stencil: GLint);
    function createQuery: TJSWebGLQuery;
    procedure deleteQuery (query: TJSWebGLQuery);
    function isQuery (query: TJSWebGLQuery): GLboolean;
    procedure beginQuery (target: GLenum; query: WebGLQuery);
    procedure endQuery (target: GLenum);
    function getQuery (target: GLenum; pname: GLenum): TJSWebGLQuery;
    function getQueryParameter (query: WebGLQuery; pname: GLenum): JSValue;
    function createSampler: TJSWebGLSampler;
    procedure deleteSampler (sampler: TJSWebGLSampler);
    function isSampler (sampler: TJSWebGLSampler): GLboolean;
    procedure bindSampler (unit: GLuint; sampler: TJSWebGLSampler);
    procedure samplerParameteri (sampler: WebGLSampler; pname: GLenum; param: 
GLint);
    procedure samplerParameterf (sampler: WebGLSampler; pname: GLenum; param: 
GLfloat);
    function getSamplerParameter (sampler: WebGLSampler; pname: GLenum): 
JSValue;
    function fenceSync (condition: GLenum; flags: GLbitfield): TJSWebGLSync;
    function isSync (sync: TJSWebGLSync): GLboolean;
    procedure deleteSync (sync: TJSWebGLSync);
    function clientWaitSync (sync: WebGLSync; flags: GLbitfield; timeout: 
GLuint64): GLenum;
    procedure waitSync (sync: WebGLSync; flags: GLbitfield; timeout: GLint64);
    function getSyncParameter (sync: WebGLSync; pname: GLenum): JSValue;
    function createTransformFeedback: TJSWebGLTransformFeedback;
    procedure deleteTransformFeedback (tf: TJSWebGLTransformFeedback);
    function isTransformFeedback (tf: TJSWebGLTransformFeedback): GLboolean;
    procedure bindTransformFeedback (target: GLenum; tf: 
TJSWebGLTransformFeedback);
    procedure beginTransformFeedback (primitiveMode: GLenum);
    procedure endTransformFeedback;
    procedure transformFeedbackVaryings (program: WebGLProgram; varyings: 
DOMStringDynArray; bufferMode: GLenum);
    function getTransformFeedbackVarying (program: WebGLProgram; index: 
GLuint): TJSWebGLActiveInfo;
    procedure pauseTransformFeedback;
    procedure resumeTransformFeedback;
    procedure bindBufferBase (target: GLenum; index: GLuint; buffer: 
TJSWebGLBuffer);
    procedure bindBufferRange (target: GLenum; index: GLuint; buffer: 
TJSWebGLBuffer; offset: GLintptr; size: GLsizeiptr);
    function getIndexedParameter (target: GLenum; index: GLuint): JSValue;
    function getUniformIndices (program: WebGLProgram; uniformNames: 
DOMStringDynArray): GLuintDynArray;
    function getActiveUniforms (program: WebGLProgram; uniformIndices: 
GLuintDynArray; pname: GLenum): JSValue;
    function getUniformBlockIndex (program: WebGLProgram; uniformBlockName: 
DOMString): GLuint;
    function getActiveUniformBlockParameter (program: WebGLProgram; 
uniformBlockIndex: GLuint; pname: GLenum): JSValue;
    function getActiveUniformBlockName (program: WebGLProgram; 
uniformBlockIndex: GLuint): TJSDOMString;
    procedure uniformBlockBinding (program: WebGLProgram; uniformBlockIndex: 
GLuint; uniformBlockBinding: GLuint);
    function createVertexArray: TJSWebGLVertexArrayObject;
    procedure deleteVertexArray (vertexArray: TJSWebGLVertexArrayObject);
    function isVertexArray (vertexArray: TJSWebGLVertexArrayObject): GLboolean;
    procedure bindVertexArray (array: TJSWebGLVertexArrayObject);
  end;

  class TJSWebGL2RenderingContext = external name 'WebGL2RenderingContext' 
(TJSWebGL2RenderingContextBase);

implementation
end;

Regards,
        Ryan Joseph

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to