pas2js/packages/rtl/webgl.pas
2019-02-26 17:45:43 +00:00

699 lines
27 KiB
ObjectPascal

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.