Unit webgl; {$MODE ObjFPC} {$H+} {$modeswitch externalclass} interface uses JS, Web; { Automatically generated file by TWebIDLToPas on 2018-06-23 15:31:57 Used command-line options : -i webgl.idl -v v2 -t EventTarget=TJSEventTarget,DOMHighResTimeStamp=TJSDOMHighResTimeStamp,HTMLMediaElement=TJSElement,MediaStream=JSValue,MediaStreamTrack=JSValue,EventHandler=TJSEVentHandler,Promise=TJSPromise,Event=TJSEvent,Worklet=TJSOBject,WorkletGlobalScope=TJSObject,VoidFunction=TProcedure,MessagePort=TJSMessagePort,HTMLCanvasElement=TJSHTMLCanvasElement,BufferSource=TJSBufferSource,ArrayBufferView=TJSTypedArray -x web,types -d -p Command-line options translate to: Options : [coDictionaryAsClass,coaddOptionsToheader] Keyword prefix : Keyword suffix : _ Class prefix : TJS Class suffix : Field prefix : F WEBIDLversion : v2 Type aliases: EventTarget=TJSEventTarget DOMHighResTimeStamp=TJSDOMHighResTimeStamp HTMLMediaElement=TJSElement MediaStream=JSValue MediaStreamTrack=JSValue EventHandler=TJSEVentHandler Promise=TJSPromise Event=TJSEvent Worklet=TJSOBject WorkletGlobalScope=TJSObject VoidFunction=TProcedure MessagePort=TJSMessagePort HTMLCanvasElement=TJSHTMLCanvasElement BufferSource=TJSBufferSource ArrayBufferView=TJSTypedArray } Type // Forward class definitions TJSWebGLObject = Class; TJSWebGLBuffer = Class; TJSWebGLFramebuffer = Class; TJSWebGLProgram = Class; TJSWebGLRenderbuffer = Class; TJSWebGLShader = Class; TJSWebGLTexture = Class; TJSWebGLUniformLocation = Class; TJSWebGLActiveInfo = Class; TJSWebGLShaderPrecisionFormat = Class; TJSWebGLRenderingContextBase = Class; TJSWebGLRenderingContext = Class; TJSWebGLContextEvent = Class; TJSWebGLContextAttributes = Class; TJSWebGLContextEventInit = Class; WebGLPowerPreference = String; GLenum = NativeInt; GLboolean = boolean; GLbitfield = NativeInt; GLbyte = byte; GLshort = Integer; GLint = Integer; GLsizei = Integer; GLintptr = NativeInt; GLsizeiptr = NativeInt; GLubyte = Byte; GLushort = Cardinal; GLuint = NativeInt; GLfloat = Double; GLclampf = Double; // Union of ImageBitmap, ImageData, HTMLImageElement, HTMLCanvasElement, HTMLVideoElement TexImageSource = JSValue; // Union of Float32Array, sequence Float32List = JSValue; // Union of Int32Array, sequence Int32List = JSValue; { -------------------------------------------------------------------- TJSWebGLContextAttributes --------------------------------------------------------------------} TJSWebGLContextAttributes = class(TJSObject) alpha : GLboolean; depth : GLboolean; stencil : GLboolean; antialias : GLboolean; premultipliedAlpha : GLboolean; preserveDrawingBuffer : GLboolean; powerPreference : WebGLPowerPreference; failIfMajorPerformanceCaveat : GLboolean; end; { -------------------------------------------------------------------- TJSWebGLContextEventInit --------------------------------------------------------------------} TJSWebGLContextEventInit = class(TJSObject) statusMessage : String; end; { -------------------------------------------------------------------- TJSWebGLObject --------------------------------------------------------------------} TJSWebGLObject = class external name 'WebGLObject' Private Public end; { -------------------------------------------------------------------- TJSWebGLBuffer --------------------------------------------------------------------} TJSWebGLBuffer = class external name 'WebGLBuffer' (TJSWebGLObject) Private Public end; { -------------------------------------------------------------------- TJSWebGLFramebuffer --------------------------------------------------------------------} TJSWebGLFramebuffer = class external name 'WebGLFramebuffer' (TJSWebGLObject) Private Public end; { -------------------------------------------------------------------- TJSWebGLProgram --------------------------------------------------------------------} TJSWebGLProgram = class external name 'WebGLProgram' (TJSWebGLObject) Private Public end; { -------------------------------------------------------------------- TJSWebGLRenderbuffer --------------------------------------------------------------------} TJSWebGLRenderbuffer = class external name 'WebGLRenderbuffer' (TJSWebGLObject) Private Public end; { -------------------------------------------------------------------- TJSWebGLShader --------------------------------------------------------------------} TJSWebGLShader = class external name 'WebGLShader' (TJSWebGLObject) Private Public end; { -------------------------------------------------------------------- TJSWebGLTexture --------------------------------------------------------------------} TJSWebGLTexture = class external name 'WebGLTexture' (TJSWebGLObject) Private Public end; { -------------------------------------------------------------------- TJSWebGLUniformLocation --------------------------------------------------------------------} TJSWebGLUniformLocation = class external name 'WebGLUniformLocation' Private Public end; { -------------------------------------------------------------------- TJSWebGLActiveInfo --------------------------------------------------------------------} TJSWebGLActiveInfo = class external name 'WebGLActiveInfo' Private Fsize : GLint; external name 'size'; Ftype_ : GLenum; external name 'type'; Fname : String; external name 'name'; Public Property size : GLint Read Fsize; Property type_ : GLenum Read Ftype_; Property name : String Read Fname; end; { -------------------------------------------------------------------- TJSWebGLShaderPrecisionFormat --------------------------------------------------------------------} TJSWebGLShaderPrecisionFormat = class external name 'WebGLShaderPrecisionFormat' Private FrangeMin : GLint; external name 'rangeMin'; FrangeMax : GLint; external name 'rangeMax'; Fprecision : GLint; external name 'precision'; Public Property rangeMin : GLint Read FrangeMin; Property rangeMax : GLint Read FrangeMax; Property precision : GLint Read Fprecision; end; { -------------------------------------------------------------------- TJSWebGLRenderingContextBase --------------------------------------------------------------------} TStringDynArray = Array of String; TTJSWebGLShaderDynArray = Array of TJSWebGLShader; TGLfloatDynArray = Array of GLfloat; TGLintDynArray = Array of GLint; // MG: added ancestor (TJSObject), issue 34745 TJSWebGLRenderingContextBase = class external name 'WebGLRenderingContextBase' (TJSObject) Private Fcanvas : TJSHTMLCanvasElement; external name 'canvas'; FdrawingBufferWidth : GLsizei; external name 'drawingBufferWidth'; FdrawingBufferHeight : GLsizei; external name 'drawingBufferHeight'; Public Const DEPTH_BUFFER_BIT = $00000100; STENCIL_BUFFER_BIT = $00000400; COLOR_BUFFER_BIT = $00004000; POINTS = $0000; LINES = $0001; LINE_LOOP = $0002; LINE_STRIP = $0003; TRIANGLES = $0004; TRIANGLE_STRIP = $0005; TRIANGLE_FAN = $0006; ZERO = 0; ONE = 1; SRC_COLOR = $0300; ONE_MINUS_SRC_COLOR = $0301; SRC_ALPHA = $0302; ONE_MINUS_SRC_ALPHA = $0303; DST_ALPHA = $0304; ONE_MINUS_DST_ALPHA = $0305; DST_COLOR = $0306; ONE_MINUS_DST_COLOR = $0307; SRC_ALPHA_SATURATE = $0308; FUNC_ADD = $8006; BLEND_EQUATION = $8009; BLEND_EQUATION_RGB = $8009; BLEND_EQUATION_ALPHA = $883D; FUNC_SUBTRACT = $800A; FUNC_REVERSE_SUBTRACT = $800B; BLEND_DST_RGB = $80C8; BLEND_SRC_RGB = $80C9; BLEND_DST_ALPHA = $80CA; BLEND_SRC_ALPHA = $80CB; CONSTANT_COLOR = $8001; ONE_MINUS_CONSTANT_COLOR = $8002; CONSTANT_ALPHA = $8003; ONE_MINUS_CONSTANT_ALPHA = $8004; BLEND_COLOR = $8005; ARRAY_BUFFER = $8892; ELEMENT_ARRAY_BUFFER = $8893; ARRAY_BUFFER_BINDING = $8894; ELEMENT_ARRAY_BUFFER_BINDING = $8895; STREAM_DRAW = $88E0; STATIC_DRAW = $88E4; DYNAMIC_DRAW = $88E8; BUFFER_SIZE = $8764; BUFFER_USAGE = $8765; CURRENT_VERTEX_ATTRIB = $8626; FRONT = $0404; BACK = $0405; FRONT_AND_BACK = $0408; CULL_FACE = $0B44; BLEND = $0BE2; DITHER = $0BD0; STENCIL_TEST = $0B90; DEPTH_TEST = $0B71; SCISSOR_TEST = $0C11; POLYGON_OFFSET_FILL = $8037; SAMPLE_ALPHA_TO_COVERAGE = $809E; SAMPLE_COVERAGE = $80A0; NO_ERROR = 0; INVALID_ENUM = $0500; INVALID_VALUE = $0501; INVALID_OPERATION = $0502; OUT_OF_MEMORY = $0505; CW = $0900; CCW = $0901; LINE_WIDTH = $0B21; ALIASED_POINT_SIZE_RANGE = $846D; ALIASED_LINE_WIDTH_RANGE = $846E; CULL_FACE_MODE = $0B45; FRONT_FACE = $0B46; DEPTH_RANGE = $0B70; DEPTH_WRITEMASK = $0B72; DEPTH_CLEAR_VALUE = $0B73; DEPTH_FUNC = $0B74; STENCIL_CLEAR_VALUE = $0B91; STENCIL_FUNC = $0B92; STENCIL_FAIL = $0B94; STENCIL_PASS_DEPTH_FAIL = $0B95; STENCIL_PASS_DEPTH_PASS = $0B96; STENCIL_REF = $0B97; STENCIL_VALUE_MASK = $0B93; STENCIL_WRITEMASK = $0B98; STENCIL_BACK_FUNC = $8800; STENCIL_BACK_FAIL = $8801; STENCIL_BACK_PASS_DEPTH_FAIL = $8802; STENCIL_BACK_PASS_DEPTH_PASS = $8803; STENCIL_BACK_REF = $8CA3; STENCIL_BACK_VALUE_MASK = $8CA4; STENCIL_BACK_WRITEMASK = $8CA5; VIEWPORT_ = $0BA2; SCISSOR_BOX = $0C10; COLOR_CLEAR_VALUE = $0C22; COLOR_WRITEMASK = $0C23; UNPACK_ALIGNMENT = $0CF5; PACK_ALIGNMENT = $0D05; MAX_TEXTURE_SIZE = $0D33; MAX_VIEWPORT_DIMS = $0D3A; SUBPIXEL_BITS = $0D50; RED_BITS = $0D52; GREEN_BITS = $0D53; BLUE_BITS = $0D54; ALPHA_BITS = $0D55; DEPTH_BITS = $0D56; STENCIL_BITS = $0D57; POLYGON_OFFSET_UNITS = $2A00; POLYGON_OFFSET_FACTOR = $8038; TEXTURE_BINDING_2D = $8069; SAMPLE_BUFFERS = $80A8; SAMPLES = $80A9; SAMPLE_COVERAGE_VALUE = $80AA; SAMPLE_COVERAGE_INVERT = $80AB; COMPRESSED_TEXTURE_FORMATS = $86A3; DONT_CARE = $1100; FASTEST = $1101; NICEST = $1102; GENERATE_MIPMAP_HINT = $8192; BYTE = $1400; UNSIGNED_BYTE = $1401; SHORT = $1402; UNSIGNED_SHORT = $1403; INT = $1404; UNSIGNED_INT = $1405; FLOAT = $1406; DEPTH_COMPONENT = $1902; ALPHA = $1906; RGB = $1907; RGBA = $1908; LUMINANCE = $1909; LUMINANCE_ALPHA = $190A; UNSIGNED_SHORT_4_4_4_4 = $8033; UNSIGNED_SHORT_5_5_5_1 = $8034; UNSIGNED_SHORT_5_6_5 = $8363; FRAGMENT_SHADER = $8B30; VERTEX_SHADER = $8B31; MAX_VERTEX_ATTRIBS = $8869; MAX_VERTEX_UNIFORM_VECTORS = $8DFB; MAX_VARYING_VECTORS = $8DFC; MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D; MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C; MAX_TEXTURE_IMAGE_UNITS = $8872; MAX_FRAGMENT_UNIFORM_VECTORS = $8DFD; SHADER_TYPE = $8B4F; DELETE_STATUS = $8B80; LINK_STATUS = $8B82; VALIDATE_STATUS = $8B83; ATTACHED_SHADERS = $8B85; ACTIVE_UNIFORMS = $8B86; ACTIVE_ATTRIBUTES = $8B89; SHADING_LANGUAGE_VERSION = $8B8C; CURRENT_PROGRAM = $8B8D; NEVER = $0200; LESS = $0201; EQUAL = $0202; LEQUAL = $0203; GREATER = $0204; NOTEQUAL = $0205; GEQUAL = $0206; ALWAYS = $0207; KEEP = $1E00; REPLACE = $1E01; INCR = $1E02; DECR = $1E03; INVERT = $150A; INCR_WRAP = $8507; DECR_WRAP = $8508; VENDOR = $1F00; RENDERER = $1F01; VERSION = $1F02; NEAREST = $2600; LINEAR = $2601; NEAREST_MIPMAP_NEAREST = $2700; LINEAR_MIPMAP_NEAREST = $2701; NEAREST_MIPMAP_LINEAR = $2702; LINEAR_MIPMAP_LINEAR = $2703; TEXTURE_MAG_FILTER = $2800; TEXTURE_MIN_FILTER = $2801; TEXTURE_WRAP_S = $2802; TEXTURE_WRAP_T = $2803; TEXTURE_2D = $0DE1; TEXTURE = $1702; TEXTURE_CUBE_MAP = $8513; TEXTURE_BINDING_CUBE_MAP = $8514; TEXTURE_CUBE_MAP_POSITIVE_X = $8515; TEXTURE_CUBE_MAP_NEGATIVE_X = $8516; TEXTURE_CUBE_MAP_POSITIVE_Y = $8517; TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518; TEXTURE_CUBE_MAP_POSITIVE_Z = $8519; TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A; MAX_CUBE_MAP_TEXTURE_SIZE = $851C; TEXTURE0 = $84C0; TEXTURE1 = $84C1; TEXTURE2 = $84C2; TEXTURE3 = $84C3; TEXTURE4 = $84C4; TEXTURE5 = $84C5; TEXTURE6 = $84C6; TEXTURE7 = $84C7; TEXTURE8 = $84C8; TEXTURE9 = $84C9; TEXTURE10 = $84CA; TEXTURE11 = $84CB; TEXTURE12 = $84CC; TEXTURE13 = $84CD; TEXTURE14 = $84CE; TEXTURE15 = $84CF; TEXTURE16 = $84D0; TEXTURE17 = $84D1; TEXTURE18 = $84D2; TEXTURE19 = $84D3; TEXTURE20 = $84D4; TEXTURE21 = $84D5; TEXTURE22 = $84D6; TEXTURE23 = $84D7; TEXTURE24 = $84D8; TEXTURE25 = $84D9; TEXTURE26 = $84DA; TEXTURE27 = $84DB; TEXTURE28 = $84DC; TEXTURE29 = $84DD; TEXTURE30 = $84DE; TEXTURE31 = $84DF; ACTIVE_TEXTURE = $84E0; REPEAT_ = $2901; CLAMP_TO_EDGE = $812F; MIRRORED_REPEAT = $8370; FLOAT_VEC2 = $8B50; FLOAT_VEC3 = $8B51; FLOAT_VEC4 = $8B52; INT_VEC2 = $8B53; INT_VEC3 = $8B54; INT_VEC4 = $8B55; BOOL = $8B56; BOOL_VEC2 = $8B57; BOOL_VEC3 = $8B58; BOOL_VEC4 = $8B59; FLOAT_MAT2 = $8B5A; FLOAT_MAT3 = $8B5B; FLOAT_MAT4 = $8B5C; SAMPLER_2D = $8B5E; SAMPLER_CUBE = $8B60; VERTEX_ATTRIB_ARRAY_ENABLED = $8622; VERTEX_ATTRIB_ARRAY_SIZE = $8623; VERTEX_ATTRIB_ARRAY_STRIDE = $8624; VERTEX_ATTRIB_ARRAY_TYPE = $8625; VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A; VERTEX_ATTRIB_ARRAY_POINTER = $8645; VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F; IMPLEMENTATION_COLOR_READ_TYPE = $8B9A; IMPLEMENTATION_COLOR_READ_FORMAT = $8B9B; COMPILE_STATUS = $8B81; LOW_FLOAT = $8DF0; MEDIUM_FLOAT = $8DF1; HIGH_FLOAT = $8DF2; LOW_INT = $8DF3; MEDIUM_INT = $8DF4; HIGH_INT = $8DF5; FRAMEBUFFER = $8D40; RENDERBUFFER = $8D41; RGBA4 = $8056; RGB5_A1 = $8057; RGB565 = $8D62; DEPTH_COMPONENT16 = $81A5; STENCIL_INDEX8 = $8D48; DEPTH_STENCIL = $84F9; RENDERBUFFER_WIDTH = $8D42; RENDERBUFFER_HEIGHT = $8D43; RENDERBUFFER_INTERNAL_FORMAT = $8D44; RENDERBUFFER_RED_SIZE = $8D50; RENDERBUFFER_GREEN_SIZE = $8D51; RENDERBUFFER_BLUE_SIZE = $8D52; RENDERBUFFER_ALPHA_SIZE = $8D53; RENDERBUFFER_DEPTH_SIZE = $8D54; RENDERBUFFER_STENCIL_SIZE = $8D55; FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = $8CD0; FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = $8CD1; FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = $8CD2; FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = $8CD3; COLOR_ATTACHMENT0 = $8CE0; DEPTH_ATTACHMENT = $8D00; STENCIL_ATTACHMENT = $8D20; DEPTH_STENCIL_ATTACHMENT = $821A; NONE = 0; FRAMEBUFFER_COMPLETE = $8CD5; FRAMEBUFFER_INCOMPLETE_ATTACHMENT = $8CD6; FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = $8CD7; FRAMEBUFFER_INCOMPLETE_DIMENSIONS = $8CD9; FRAMEBUFFER_UNSUPPORTED = $8CDD; FRAMEBUFFER_BINDING = $8CA6; RENDERBUFFER_BINDING = $8CA7; MAX_RENDERBUFFER_SIZE = $84E8; INVALID_FRAMEBUFFER_OPERATION = $0506; UNPACK_FLIP_Y_WEBGL = $9240; UNPACK_PREMULTIPLY_ALPHA_WEBGL = $9241; CONTEXT_LOST_WEBGL = $9242; UNPACK_COLORSPACE_CONVERSION_WEBGL = $9243; BROWSER_DEFAULT_WEBGL = $9244; Public function getContextAttributes: TJSWebGLContextAttributes; function isContextLost: boolean; function getSupportedExtensions: TStringDynArray; function getExtension(name : String): TJSObject; Procedure activeTexture(texture : GLenum); Procedure attachShader(program_ : TJSWebGLProgram; shader : TJSWebGLShader); Procedure bindAttribLocation(program_ : TJSWebGLProgram; index : GLuint; name : String); Procedure bindBuffer(target : GLenum; buffer : TJSWebGLBuffer); Procedure bindFramebuffer(target : GLenum; framebuffer : TJSWebGLFramebuffer); Procedure bindRenderbuffer(target : GLenum; renderbuffer : TJSWebGLRenderbuffer); Procedure bindTexture(target : GLenum; texture : TJSWebGLTexture); Procedure blendColor(red : GLclampf; green : GLclampf; blue : GLclampf; alpha : GLclampf); Procedure blendEquation(mode : GLenum); Procedure blendEquationSeparate(modeRGB : GLenum; modeAlpha : GLenum); Procedure blendFunc(sfactor : GLenum; dfactor : GLenum); Procedure blendFuncSeparate(srcRGB : GLenum; dstRGB : GLenum; srcAlpha : GLenum; dstAlpha : GLenum); Procedure bufferData(target : GLenum; size : GLsizeiptr; usage : GLenum); overload; Procedure bufferData(target : GLenum; data : TJSBufferSource; usage : GLenum); overload; Procedure bufferSubData(target : GLenum; offset : GLintptr; data : TJSBufferSource); function checkFramebufferStatus(target : GLenum): GLenum; Procedure clear(mask : GLbitfield); Procedure clearColor(red : GLclampf; green : GLclampf; blue : GLclampf; alpha : GLclampf); Procedure clearDepth(depth : GLclampf); Procedure clearStencil(s : GLint); Procedure colorMask(red : GLboolean; green : GLboolean; blue : GLboolean; alpha : GLboolean); Procedure compileShader(shader : TJSWebGLShader); Procedure compressedTexImage2D(target : GLenum; level : GLint; internalformat : GLenum; width : GLsizei; height : GLsizei; border : GLint; data : TJSTypedArray); Procedure compressedTexSubImage2D(target : GLenum; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; data : TJSTypedArray); Procedure copyTexImage2D(target : GLenum; level : GLint; internalformat : GLenum; x : GLint; y : GLint; width : GLsizei; height : GLsizei; border : GLint); Procedure copyTexSubImage2D(target : GLenum; level : GLint; xoffset : GLint; yoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei); function createBuffer: TJSWebGLBuffer; function createFramebuffer: TJSWebGLFramebuffer; function createProgram: TJSWebGLProgram; function createRenderbuffer: TJSWebGLRenderbuffer; function createShader(type_ : GLenum): TJSWebGLShader; function createTexture: TJSWebGLTexture; Procedure cullFace(mode : GLenum); Procedure deleteBuffer(buffer : TJSWebGLBuffer); Procedure deleteFramebuffer(framebuffer : TJSWebGLFramebuffer); Procedure deleteProgram(program_ : TJSWebGLProgram); Procedure deleteRenderbuffer(renderbuffer : TJSWebGLRenderbuffer); Procedure deleteShader(shader : TJSWebGLShader); Procedure deleteTexture(texture : TJSWebGLTexture); Procedure depthFunc(func : GLenum); Procedure depthMask(flag : GLboolean); Procedure depthRange(zNear : GLclampf; zFar : GLclampf); Procedure detachShader(program_ : TJSWebGLProgram; shader : TJSWebGLShader); Procedure disable(cap : GLenum); Procedure disableVertexAttribArray(index : GLuint); Procedure drawArrays(mode : GLenum; first : GLint; count : GLsizei); Procedure drawElements(mode : GLenum; count : GLsizei; type_ : GLenum; offset : GLintptr); Procedure enable(cap : GLenum); Procedure enableVertexAttribArray(index : GLuint); Procedure finish; Procedure flush; Procedure framebufferRenderbuffer(target : GLenum; attachment : GLenum; renderbuffertarget : GLenum; renderbuffer : TJSWebGLRenderbuffer); Procedure framebufferTexture2D(target : GLenum; attachment : GLenum; textarget : GLenum; texture : TJSWebGLTexture; level : GLint); Procedure frontFace(mode : GLenum); Procedure generateMipmap(target : GLenum); function getActiveAttrib(program_ : TJSWebGLProgram; index : GLuint): TJSWebGLActiveInfo; function getActiveUniform(program_ : TJSWebGLProgram; index : GLuint): TJSWebGLActiveInfo; function getAttachedShaders(program_ : TJSWebGLProgram): TTJSWebGLShaderDynArray; function getAttribLocation(program_ : TJSWebGLProgram; name : String): GLint; function getBufferParameter(target : GLenum; pname : GLenum): JSValue; function getParameter(pname : GLenum): JSValue; function getError: GLenum; function getFramebufferAttachmentParameter(target : GLenum; attachment : GLenum; pname : GLenum): JSValue; function getProgramParameter(program_ : TJSWebGLProgram; pname : GLenum): JSValue; function getProgramInfoLog(program_ : TJSWebGLProgram): String; function getRenderbufferParameter(target : GLenum; pname : GLenum): JSValue; function getShaderParameter(shader : TJSWebGLShader; pname : GLenum): JSValue; function getShaderPrecisionFormat(shadertype : GLenum; precisiontype : GLenum): TJSWebGLShaderPrecisionFormat; function getShaderInfoLog(shader : TJSWebGLShader): String; function getShaderSource(shader : TJSWebGLShader): String; function getTexParameter(target : GLenum; pname : GLenum): JSValue; function getUniform(program_ : TJSWebGLProgram; location : TJSWebGLUniformLocation): JSValue; function getUniformLocation(program_ : TJSWebGLProgram; name : String): TJSWebGLUniformLocation; function getVertexAttrib(index : GLuint; pname : GLenum): JSValue; function getVertexAttribOffset(index : GLuint; pname : GLenum): GLintptr; Procedure hint(target : GLenum; mode : GLenum); function isBuffer(buffer : TJSWebGLBuffer): GLboolean; function isEnabled(cap : GLenum): GLboolean; function isFramebuffer(framebuffer : TJSWebGLFramebuffer): GLboolean; function isProgram(program_ : TJSWebGLProgram): GLboolean; function isRenderbuffer(renderbuffer : TJSWebGLRenderbuffer): GLboolean; function isShader(shader : TJSWebGLShader): GLboolean; function isTexture(texture : TJSWebGLTexture): GLboolean; Procedure lineWidth(width : GLfloat); Procedure linkProgram(program_ : TJSWebGLProgram); Procedure pixelStorei(pname : GLenum; param : GLint); Procedure polygonOffset(factor : GLfloat; units : GLfloat); Procedure readPixels(x : GLint; y : GLint; width : GLsizei; height : GLsizei; format : GLenum; type_ : GLenum; pixels : TJSTypedArray); Procedure renderbufferStorage(target : GLenum; internalformat : GLenum; width : GLsizei; height : GLsizei); Procedure sampleCoverage(value : GLclampf; invert : GLboolean); Procedure scissor(x : GLint; y : GLint; width : GLsizei; height : GLsizei); Procedure shaderSource(shader : TJSWebGLShader; source : String); Procedure stencilFunc(func : GLenum; ref : GLint; mask : GLuint); Procedure stencilFuncSeparate(face : GLenum; func : GLenum; ref : GLint; mask : GLuint); Procedure stencilMask(mask : GLuint); Procedure stencilMaskSeparate(face : GLenum; mask : GLuint); Procedure stencilOp(fail : GLenum; zfail : GLenum; zpass : GLenum); Procedure stencilOpSeparate(face : GLenum; fail : GLenum; zfail : GLenum; zpass : GLenum); Procedure texImage2D(target : GLenum; level : GLint; internalformat : GLint; width : GLsizei; height : GLsizei; border : GLint; format : GLenum; type_ : GLenum; pixels : TJSTypedArray); Procedure texImage2D(target : GLenum; level : GLint; internalformat : GLint; format : GLenum; type_ : GLenum; source : TexImageSource); Procedure texParameterf(target : GLenum; pname : GLenum; param : GLfloat); Procedure texParameteri(target : GLenum; pname : GLenum; param : GLint); Procedure texSubImage2D(target : GLenum; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; type_ : GLenum; pixels : TJSTypedArray); Procedure texSubImage2D(target : GLenum; level : GLint; xoffset : GLint; yoffset : GLint; format : GLenum; type_ : GLenum; source : TexImageSource); Procedure uniform1f(location : TJSWebGLUniformLocation; x : GLfloat); Procedure uniform2f(location : TJSWebGLUniformLocation; x : GLfloat; y : GLfloat); Procedure uniform3f(location : TJSWebGLUniformLocation; x : GLfloat; y : GLfloat; z : GLfloat); Procedure uniform4f(location : TJSWebGLUniformLocation; x : GLfloat; y : GLfloat; z : GLfloat; w : GLfloat); Procedure uniform1i(location : TJSWebGLUniformLocation; x : GLint); Procedure uniform2i(location : TJSWebGLUniformLocation; x : GLint; y : GLint); Procedure uniform3i(location : TJSWebGLUniformLocation; x : GLint; y : GLint; z : GLint); Procedure uniform4i(location : TJSWebGLUniformLocation; x : GLint; y : GLint; z : GLint; w : GLint); Procedure uniform1fv(location : TJSWebGLUniformLocation; v : Float32List); Procedure uniform2fv(location : TJSWebGLUniformLocation; v : Float32List); Procedure uniform3fv(location : TJSWebGLUniformLocation; v : Float32List); Procedure uniform4fv(location : TJSWebGLUniformLocation; v : Float32List); Procedure uniform1iv(location : TJSWebGLUniformLocation; v : Int32List); Procedure uniform2iv(location : TJSWebGLUniformLocation; v : Int32List); Procedure uniform3iv(location : TJSWebGLUniformLocation; v : Int32List); Procedure uniform4iv(location : TJSWebGLUniformLocation; v : Int32List); Procedure uniformMatrix2fv(location : TJSWebGLUniformLocation; transpose : GLboolean; value : Float32List); Procedure uniformMatrix3fv(location : TJSWebGLUniformLocation; transpose : GLboolean; value : Float32List); Procedure uniformMatrix4fv(location : TJSWebGLUniformLocation; transpose : GLboolean; value : Float32List); Procedure useProgram(program_ : TJSWebGLProgram); Procedure validateProgram(program_ : TJSWebGLProgram); Procedure vertexAttrib1f(index : GLuint; x : GLfloat); Procedure vertexAttrib2f(index : GLuint; x : GLfloat; y : GLfloat); Procedure vertexAttrib3f(index : GLuint; x : GLfloat; y : GLfloat; z : GLfloat); Procedure vertexAttrib4f(index : GLuint; x : GLfloat; y : GLfloat; z : GLfloat; w : GLfloat); Procedure vertexAttrib1fv(index : GLuint; values : Float32List); Procedure vertexAttrib2fv(index : GLuint; values : Float32List); Procedure vertexAttrib3fv(index : GLuint; values : Float32List); Procedure vertexAttrib4fv(index : GLuint; values : Float32List); Procedure vertexAttribPointer(index : GLuint; size : GLint; type_ : GLenum; normalized : GLboolean; stride : GLsizei; offset : GLintptr); Procedure viewport(x : GLint; y : GLint; width : GLsizei; height : GLsizei); Property canvas : TJSHTMLCanvasElement Read Fcanvas; Property drawingBufferWidth : GLsizei Read FdrawingBufferWidth; Property drawingBufferHeight : GLsizei Read FdrawingBufferHeight; end; { -------------------------------------------------------------------- TJSWebGLRenderingContext --------------------------------------------------------------------} TJSWebGLRenderingContext = class external name 'WebGLRenderingContext' (TJSWebGLRenderingContextBase) Private Public end; { -------------------------------------------------------------------- TJSWebGLContextEvent --------------------------------------------------------------------} TJSWebGLContextEvent = class external name 'WebGLContextEvent' (TJSEvent) Private FstatusMessage : String; external name 'statusMessage'; Public Property statusMessage : String Read FstatusMessage; end; implementation end.