mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-19 01:19:22 +02:00
* Added webgl import unit
This commit is contained in:
parent
016fb2628e
commit
62a7354a77
693
packages/rtl/webgl.pas
Normal file
693
packages/rtl/webgl.pas
Normal file
@ -0,0 +1,693 @@
|
||||
unit webgl;
|
||||
|
||||
{$mode objfpc}
|
||||
{$modeswitch externalclass}
|
||||
|
||||
interface
|
||||
|
||||
uses JS, Web;
|
||||
|
||||
Type
|
||||
GLenum = Cardinal;
|
||||
GLboolean = Boolean;
|
||||
GLbitfield = Cardinal;
|
||||
GLbyte = ShortInt; (* 'byte' should be a signed 8 bit type. *)
|
||||
GLshort = Integer;
|
||||
GLint = Integer;
|
||||
GLsizei = Integer;
|
||||
GLintptr = NativeInt;
|
||||
GLsizeiptr = NativeInt;
|
||||
// Ideally the typedef below would use 'unsigned byte', but that doesn't currently exist in Web IDL.
|
||||
GLubyte = Byte; (* 'octet' should be an unsigned 8 bit type. *)
|
||||
GLushort = Word;
|
||||
GLuint = Cardinal;
|
||||
GLfloat = Double;
|
||||
GLclampf = Double;
|
||||
|
||||
TJSWebGLPowerPreference = String;
|
||||
// "default", "low-power", "high-performance"
|
||||
|
||||
|
||||
TJSWebGLContextAttributes = Class external name 'WebGLContextAttributes' (TJSObject)
|
||||
alpha :GLboolean;
|
||||
depth : GLboolean;
|
||||
stencil : GLboolean;
|
||||
antialias : GLboolean;
|
||||
premultipliedAlpha : GLboolean;
|
||||
preserveDrawingBuffer : GLboolean;
|
||||
powerPreference : string;
|
||||
failIfMajorPerformanceCaveat : GLBoolean;
|
||||
end;
|
||||
|
||||
TJSWebGLObject = class external name 'WebGLObject'(TJSObject);
|
||||
TJSWebGLBuffer = Class external name 'WebGLObject'(TJSWebGLObject);
|
||||
TJSWebGLFramebuffer = Class external name 'WebGLFramebuffer' (TJSWebGLObject);
|
||||
TJSWebGLProgram = Class external name 'WebGLProgram' (TJSWebGLObject);
|
||||
TJSWebGLRenderbuffer = Class external name 'WebGLRenderbuffer' (TJSWebGLObject);
|
||||
TJSWebGLShader = Class external name 'WebGLShader' (TJSWebGLObject);
|
||||
TJSWebGLTexture = Class external name 'WebGLTexture' (TJSWebGLObject);
|
||||
TJSWebGLUniformLocation = class external name 'WebGLUniformLocation' (TJSWebGLObject);
|
||||
|
||||
TJSWebGLActiveInfo = Class external name 'WebGLActiveInfo' (TJSOBject)
|
||||
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 = Class external name 'WebGLShaderPrecisionFormat' (TJSObject)
|
||||
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;
|
||||
|
||||
{
|
||||
typedef (ImageBitmap or
|
||||
ImageData or
|
||||
HTMLImageElement or
|
||||
HTMLCanvasElement or
|
||||
HTMLVideoElement)
|
||||
}
|
||||
|
||||
TJSArrayBufferView = TJSTypedArray;
|
||||
TJSTexImageSource = JSValue;
|
||||
TJSFloat32List = Array of GLFloat;
|
||||
TJSInt32List = Array of integer;
|
||||
|
||||
TJSWebGLShaderArray = array of TJSWebGLShader;
|
||||
TJSWebGLRenderingContextBase = Class External name 'WebGLRenderingContextBase' (TJSObject)
|
||||
|
||||
Public
|
||||
|
||||
(* ClearBufferMask *)
|
||||
const
|
||||
DEPTH_BUFFER_BIT : Nativeint;
|
||||
STENCIL_BUFFER_BIT : NativeInt;
|
||||
COLOR_BUFFER_BIT : NativeInt;
|
||||
|
||||
(* BeginMode *)
|
||||
POINTS : NativeInt;
|
||||
LINES : NativeInt;
|
||||
LINE_LOOP : NativeInt;
|
||||
LINE_STRIP : NativeInt;
|
||||
TRIANGLES : NativeInt;
|
||||
TRIANGLE_STRIP : NativeInt;
|
||||
TRIANGLE_FAN : NativeInt;
|
||||
|
||||
(* AlphaFunction (not supported in ES20) *)
|
||||
(* NEVER *)
|
||||
(* LESS *)
|
||||
(* EQUAL *)
|
||||
(* LEQUAL *)
|
||||
(* GREATER *)
|
||||
(* NOTEQUAL *)
|
||||
(* GEQUAL *)
|
||||
(* ALWAYS *)
|
||||
|
||||
(* BlendingFactorDest *)
|
||||
ZERO : NativeInt;
|
||||
ONE : NativeInt;
|
||||
SRC_COLOR : NativeInt;
|
||||
ONE_MINUS_SRC_COLOR : NativeInt;
|
||||
SRC_ALPHA : NativeInt;
|
||||
ONE_MINUS_SRC_ALPHA : NativeInt;
|
||||
DST_ALPHA : NativeInt;
|
||||
ONE_MINUS_DST_ALPHA : NativeInt;
|
||||
|
||||
(* BlendingFactorSrc *)
|
||||
(* ZERO *)
|
||||
(* ONE *)
|
||||
DST_COLOR : NativeInt;
|
||||
ONE_MINUS_DST_COLOR : NativeInt;
|
||||
SRC_ALPHA_SATURATE : NativeInt;
|
||||
(* SRC_ALPHA *)
|
||||
(* ONE_MINUS_SRC_ALPHA *)
|
||||
(* DST_ALPHA *)
|
||||
(* ONE_MINUS_DST_ALPHA *)
|
||||
|
||||
(* BlendEquationSeparate *)
|
||||
FUNC_ADD : NativeInt;
|
||||
BLEND_EQUATION : NativeInt;
|
||||
BLEND_EQUATION_RGB : Nativeint; (* same as BLEND_EQUATION *)
|
||||
BLEND_EQUATION_ALPHA : NativeInt;
|
||||
|
||||
(* BlendSubtract *)
|
||||
FUNC_SUBTRACT : NativeInt;
|
||||
FUNC_REVERSE_SUBTRACT : NativeInt;
|
||||
|
||||
(* Separate Blend Functions *)
|
||||
BLEND_DST_RGB : NativeInt;
|
||||
BLEND_SRC_RGB : NativeInt;
|
||||
BLEND_DST_ALPHA : NativeInt;
|
||||
BLEND_SRC_ALPHA : NativeInt;
|
||||
CONSTANT_COLOR : NativeInt;
|
||||
ONE_MINUS_CONSTANT_COLOR : NativeInt;
|
||||
CONSTANT_ALPHA : NativeInt;
|
||||
ONE_MINUS_CONSTANT_ALPHA : NativeInt;
|
||||
BLEND_COLOR : NativeInt;
|
||||
|
||||
(* Buffer Objects *)
|
||||
ARRAY_BUFFER : NativeInt;
|
||||
ELEMENT_ARRAY_BUFFER : NativeInt;
|
||||
ARRAY_BUFFER_BINDING : NativeInt;
|
||||
ELEMENT_ARRAY_BUFFER_BINDING : NativeInt;
|
||||
|
||||
STREAM_DRAW : NativeInt;
|
||||
STATIC_DRAW : NativeInt;
|
||||
DYNAMIC_DRAW : NativeInt;
|
||||
|
||||
BUFFER_SIZE : NativeInt;
|
||||
BUFFER_USAGE : NativeInt;
|
||||
|
||||
CURRENT_VERTEX_ATTRIB : NativeInt;
|
||||
|
||||
(* CullFaceMode *)
|
||||
FRONT : NativeInt;
|
||||
BACK : NativeInt;
|
||||
FRONT_AND_BACK : NativeInt;
|
||||
|
||||
(* DepthFunction *)
|
||||
(* NEVER *)
|
||||
(* LESS *)
|
||||
(* EQUAL *)
|
||||
(* LEQUAL *)
|
||||
(* GREATER *)
|
||||
(* NOTEQUAL *)
|
||||
(* GEQUAL *)
|
||||
(* ALWAYS *)
|
||||
|
||||
(* EnableCap *)
|
||||
(* TEXTURE_2D *)
|
||||
CULL_FACE : NativeInt;
|
||||
BLEND : NativeInt;
|
||||
DITHER : NativeInt;
|
||||
STENCIL_TEST : NativeInt;
|
||||
DEPTH_TEST : NativeInt;
|
||||
SCISSOR_TEST : NativeInt;
|
||||
POLYGON_OFFSET_FILL : NativeInt;
|
||||
SAMPLE_ALPHA_TO_COVERAGE : NativeInt;
|
||||
SAMPLE_COVERAGE : NativeInt;
|
||||
|
||||
(* ErrorCode *)
|
||||
NO_ERROR : NativeInt;
|
||||
INVALID_ENUM : NativeInt;
|
||||
INVALID_VALUE : NativeInt;
|
||||
INVALID_OPERATION : NativeInt;
|
||||
OUT_OF_MEMORY : NativeInt;
|
||||
|
||||
(* FrontFaceDirection *)
|
||||
CW : NativeInt;
|
||||
CCW : NativeInt;
|
||||
|
||||
(* GetPName *)
|
||||
LINE_WIDTH : NativeInt;
|
||||
ALIASED_POINT_SIZE_RANGE : NativeInt;
|
||||
ALIASED_LINE_WIDTH_RANGE : NativeInt;
|
||||
CULL_FACE_MODE : NativeInt;
|
||||
FRONT_FACE : NativeInt;
|
||||
DEPTH_RANGE : NativeInt;
|
||||
DEPTH_WRITEMASK : NativeInt;
|
||||
DEPTH_CLEAR_VALUE : NativeInt;
|
||||
DEPTH_FUNC : NativeInt;
|
||||
STENCIL_CLEAR_VALUE : NativeInt;
|
||||
STENCIL_FUNC : NativeInt;
|
||||
STENCIL_FAIL : NativeInt;
|
||||
STENCIL_PASS_DEPTH_FAIL : NativeInt;
|
||||
STENCIL_PASS_DEPTH_PASS : NativeInt;
|
||||
STENCIL_REF : NativeInt;
|
||||
STENCIL_VALUE_MASK : NativeInt;
|
||||
STENCIL_WRITEMASK : NativeInt;
|
||||
STENCIL_BACK_FUNC : NativeInt;
|
||||
STENCIL_BACK_FAIL : NativeInt;
|
||||
STENCIL_BACK_PASS_DEPTH_FAIL : NativeInt;
|
||||
STENCIL_BACK_PASS_DEPTH_PASS : NativeInt;
|
||||
STENCIL_BACK_REF : NativeInt;
|
||||
STENCIL_BACK_VALUE_MASK : NativeInt;
|
||||
STENCIL_BACK_WRITEMASK : NativeInt;
|
||||
_VIEWPORT : NativeInt;
|
||||
SCISSOR_BOX : NativeInt;
|
||||
(* SCISSOR_TEST *)
|
||||
COLOR_CLEAR_VALUE : NativeInt;
|
||||
COLOR_WRITEMASK : NativeInt;
|
||||
UNPACK_ALIGNMENT : NativeInt;
|
||||
PACK_ALIGNMENT : NativeInt;
|
||||
MAX_TEXTURE_SIZE : NativeInt;
|
||||
MAX_VIEWPORT_DIMS : NativeInt;
|
||||
SUBPIXEL_BITS : NativeInt;
|
||||
RED_BITS : NativeInt;
|
||||
GREEN_BITS : NativeInt;
|
||||
BLUE_BITS : NativeInt;
|
||||
ALPHA_BITS : NativeInt;
|
||||
DEPTH_BITS : NativeInt;
|
||||
STENCIL_BITS : NativeInt;
|
||||
POLYGON_OFFSET_UNITS : NativeInt;
|
||||
(* POLYGON_OFFSET_FILL *)
|
||||
POLYGON_OFFSET_FACTOR : NativeInt;
|
||||
TEXTURE_BINDING_2D : NativeInt;
|
||||
SAMPLE_BUFFERS : NativeInt;
|
||||
SAMPLES : NativeInt;
|
||||
SAMPLE_COVERAGE_VALUE : NativeInt;
|
||||
SAMPLE_COVERAGE_INVERT : NativeInt;
|
||||
|
||||
(* GetTextureParameter *)
|
||||
(* TEXTURE_MAG_FILTER *)
|
||||
(* TEXTURE_MIN_FILTER *)
|
||||
(* TEXTURE_WRAP_S *)
|
||||
(* TEXTURE_WRAP_T *)
|
||||
|
||||
COMPRESSED_TEXTURE_FORMATS : NativeInt;
|
||||
|
||||
(* HintMode *)
|
||||
DONT_CARE : NativeInt;
|
||||
FASTEST : NativeInt;
|
||||
NICEST : NativeInt;
|
||||
|
||||
(* HintTarget *)
|
||||
GENERATE_MIPMAP_HINT : NativeInt;
|
||||
|
||||
(* DataType *)
|
||||
BYTE : NativeInt;
|
||||
UNSIGNED_BYTE : NativeInt;
|
||||
SHORT : NativeInt;
|
||||
UNSIGNED_SHORT : NativeInt;
|
||||
INT : NativeInt;
|
||||
UNSIGNED_INT : NativeInt;
|
||||
FLOAT : NativeInt;
|
||||
|
||||
(* PixelFormat *)
|
||||
DEPTH_COMPONENT : NativeInt;
|
||||
ALPHA : NativeInt;
|
||||
RGB : NativeInt;
|
||||
RGBA : NativeInt;
|
||||
LUMINANCE : NativeInt;
|
||||
LUMINANCE_ALPHA : NativeInt;
|
||||
|
||||
(* PixelType *)
|
||||
(* UNSIGNED_BYTE *)
|
||||
UNSIGNED_SHORT_4_4_4_4 : NativeInt;
|
||||
UNSIGNED_SHORT_5_5_5_1 : NativeInt;
|
||||
UNSIGNED_SHORT_5_6_5 : NativeInt;
|
||||
|
||||
(* Shaders *)
|
||||
FRAGMENT_SHADER : NativeInt;
|
||||
VERTEX_SHADER : NativeInt;
|
||||
MAX_VERTEX_ATTRIBS : NativeInt;
|
||||
MAX_VERTEX_UNIFORM_VECTORS : NativeInt;
|
||||
MAX_VARYING_VECTORS : NativeInt;
|
||||
MAX_COMBINED_TEXTURE_IMAGE_UNITS : NativeInt;
|
||||
MAX_VERTEX_TEXTURE_IMAGE_UNITS : NativeInt;
|
||||
MAX_TEXTURE_IMAGE_UNITS : NativeInt;
|
||||
MAX_FRAGMENT_UNIFORM_VECTORS : NativeInt;
|
||||
SHADER_TYPE : NativeInt;
|
||||
DELETE_STATUS : NativeInt;
|
||||
LINK_STATUS : NativeInt;
|
||||
VALIDATE_STATUS : NativeInt;
|
||||
ATTACHED_SHADERS : NativeInt;
|
||||
ACTIVE_UNIFORMS : NativeInt;
|
||||
ACTIVE_ATTRIBUTES : NativeInt;
|
||||
SHADING_LANGUAGE_VERSION : NativeInt;
|
||||
CURRENT_PROGRAM : NativeInt;
|
||||
|
||||
(* StencilFunction *)
|
||||
NEVER : NativeInt;
|
||||
LESS : NativeInt;
|
||||
EQUAL : NativeInt;
|
||||
LEQUAL : NativeInt;
|
||||
GREATER : NativeInt;
|
||||
NOTEQUAL : NativeInt;
|
||||
GEQUAL : NativeInt;
|
||||
ALWAYS : NativeInt;
|
||||
|
||||
(* StencilOp *)
|
||||
(* ZERO *)
|
||||
KEEP : NativeInt;
|
||||
REPLACE : NativeInt;
|
||||
INCR : NativeInt;
|
||||
DECR : NativeInt;
|
||||
INVERT : NativeInt;
|
||||
INCR_WRAP : NativeInt;
|
||||
DECR_WRAP : NativeInt;
|
||||
|
||||
(* StringName *)
|
||||
VENDOR : NativeInt;
|
||||
RENDERER : NativeInt;
|
||||
VERSION : NativeInt;
|
||||
|
||||
(* TextureMagFilter *)
|
||||
NEAREST : NativeInt;
|
||||
LINEAR : NativeInt;
|
||||
|
||||
(* TextureMinFilter *)
|
||||
(* NEAREST *)
|
||||
(* LINEAR *)
|
||||
NEAREST_MIPMAP_NEAREST : NativeInt;
|
||||
LINEAR_MIPMAP_NEAREST : NativeInt;
|
||||
NEAREST_MIPMAP_LINEAR : NativeInt;
|
||||
LINEAR_MIPMAP_LINEAR : NativeInt;
|
||||
|
||||
(* TextureParameterName *)
|
||||
TEXTURE_MAG_FILTER : NativeInt;
|
||||
TEXTURE_MIN_FILTER : NativeInt;
|
||||
TEXTURE_WRAP_S : NativeInt;
|
||||
TEXTURE_WRAP_T : NativeInt;
|
||||
|
||||
(* TextureTarget *)
|
||||
TEXTURE_2D : NativeInt;
|
||||
TEXTURE : NativeInt;
|
||||
|
||||
TEXTURE_CUBE_MAP : NativeInt;
|
||||
TEXTURE_BINDING_CUBE_MAP : NativeInt;
|
||||
TEXTURE_CUBE_MAP_POSITIVE_X : NativeInt;
|
||||
TEXTURE_CUBE_MAP_NEGATIVE_X : NativeInt;
|
||||
TEXTURE_CUBE_MAP_POSITIVE_Y : NativeInt;
|
||||
TEXTURE_CUBE_MAP_NEGATIVE_Y : NativeInt;
|
||||
TEXTURE_CUBE_MAP_POSITIVE_Z : NativeInt;
|
||||
TEXTURE_CUBE_MAP_NEGATIVE_Z : NativeInt;
|
||||
MAX_CUBE_MAP_TEXTURE_SIZE : NativeInt;
|
||||
|
||||
(* TextureUnit *)
|
||||
TEXTURE0 : NativeInt;
|
||||
TEXTURE1 : NativeInt;
|
||||
TEXTURE2 : NativeInt;
|
||||
TEXTURE3 : NativeInt;
|
||||
TEXTURE4 : NativeInt;
|
||||
TEXTURE5 : NativeInt;
|
||||
TEXTURE6 : NativeInt;
|
||||
TEXTURE7 : NativeInt;
|
||||
TEXTURE8 : NativeInt;
|
||||
TEXTURE9 : NativeInt;
|
||||
TEXTURE10 : NativeInt;
|
||||
TEXTURE11 : NativeInt;
|
||||
TEXTURE12 : NativeInt;
|
||||
TEXTURE13 : NativeInt;
|
||||
TEXTURE14 : NativeInt;
|
||||
TEXTURE15 : NativeInt;
|
||||
TEXTURE16 : NativeInt;
|
||||
TEXTURE17 : NativeInt;
|
||||
TEXTURE18 : NativeInt;
|
||||
TEXTURE19 : NativeInt;
|
||||
TEXTURE20 : NativeInt;
|
||||
TEXTURE21 : NativeInt;
|
||||
TEXTURE22 : NativeInt;
|
||||
TEXTURE23 : NativeInt;
|
||||
TEXTURE24 : NativeInt;
|
||||
TEXTURE25 : NativeInt;
|
||||
TEXTURE26 : NativeInt;
|
||||
TEXTURE27 : NativeInt;
|
||||
TEXTURE28 : NativeInt;
|
||||
TEXTURE29 : NativeInt;
|
||||
TEXTURE30 : NativeInt;
|
||||
TEXTURE31 : NativeInt;
|
||||
ACTIVE_TEXTURE : NativeInt;
|
||||
|
||||
(* TextureWrapMode *)
|
||||
_REPEAT : NativeInt;
|
||||
CLAMP_TO_EDGE : NativeInt;
|
||||
MIRRORED_REPEAT : NativeInt;
|
||||
|
||||
(* Uniform Types *)
|
||||
FLOAT_VEC2 : NativeInt;
|
||||
FLOAT_VEC3 : NativeInt;
|
||||
FLOAT_VEC4 : NativeInt;
|
||||
INT_VEC2 : NativeInt;
|
||||
INT_VEC3 : NativeInt;
|
||||
INT_VEC4 : NativeInt;
|
||||
BOOL : NativeInt;
|
||||
BOOL_VEC2 : NativeInt;
|
||||
BOOL_VEC3 : NativeInt;
|
||||
BOOL_VEC4 : NativeInt;
|
||||
FLOAT_MAT2 : NativeInt;
|
||||
FLOAT_MAT3 : NativeInt;
|
||||
FLOAT_MAT4 : NativeInt;
|
||||
SAMPLER_2D : NativeInt;
|
||||
SAMPLER_CUBE : NativeInt;
|
||||
|
||||
(* Vertex Arrays *)
|
||||
VERTEX_ATTRIB_ARRAY_ENABLED : NativeInt;
|
||||
VERTEX_ATTRIB_ARRAY_SIZE : NativeInt;
|
||||
VERTEX_ATTRIB_ARRAY_STRIDE : NativeInt;
|
||||
VERTEX_ATTRIB_ARRAY_TYPE : NativeInt;
|
||||
VERTEX_ATTRIB_ARRAY_NORMALIZED : NativeInt;
|
||||
VERTEX_ATTRIB_ARRAY_POINTER : NativeInt;
|
||||
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : NativeInt;
|
||||
|
||||
(* Read Format *)
|
||||
IMPLEMENTATION_COLOR_READ_TYPE : NativeInt;
|
||||
IMPLEMENTATION_COLOR_READ_FORMAT : NativeInt;
|
||||
|
||||
(* Shader Source *)
|
||||
COMPILE_STATUS : NativeInt;
|
||||
|
||||
(* Shader Precision-Specified Types *)
|
||||
LOW_FLOAT : NativeInt;
|
||||
MEDIUM_FLOAT : NativeInt;
|
||||
HIGH_FLOAT : NativeInt;
|
||||
LOW_INT : NativeInt;
|
||||
MEDIUM_INT : NativeInt;
|
||||
HIGH_INT : NativeInt;
|
||||
|
||||
(* Framebuffer Object. *)
|
||||
FRAMEBUFFER : NativeInt;
|
||||
RENDERBUFFER : NativeInt;
|
||||
|
||||
RGBA4 : NativeInt;
|
||||
RGB5_A1 : NativeInt;
|
||||
RGB565 : NativeInt;
|
||||
DEPTH_COMPONENT16 : NativeInt;
|
||||
STENCIL_INDEX8 : NativeInt;
|
||||
DEPTH_STENCIL : NativeInt;
|
||||
|
||||
RENDERBUFFER_WIDTH : NativeInt;
|
||||
RENDERBUFFER_HEIGHT : NativeInt;
|
||||
RENDERBUFFER_INTERNAL_FORMAT : NativeInt;
|
||||
RENDERBUFFER_RED_SIZE : NativeInt;
|
||||
RENDERBUFFER_GREEN_SIZE : NativeInt;
|
||||
RENDERBUFFER_BLUE_SIZE : NativeInt;
|
||||
RENDERBUFFER_ALPHA_SIZE : NativeInt;
|
||||
RENDERBUFFER_DEPTH_SIZE : NativeInt;
|
||||
RENDERBUFFER_STENCIL_SIZE : NativeInt;
|
||||
|
||||
FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : NativeInt;
|
||||
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : NativeInt;
|
||||
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : NativeInt;
|
||||
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : NativeInt;
|
||||
|
||||
COLOR_ATTACHMENT0 : NativeInt;
|
||||
DEPTH_ATTACHMENT : NativeInt;
|
||||
STENCIL_ATTACHMENT : NativeInt;
|
||||
DEPTH_STENCIL_ATTACHMENT : NativeInt;
|
||||
|
||||
NONE : NativeInt;
|
||||
|
||||
FRAMEBUFFER_COMPLETE : NativeInt;
|
||||
FRAMEBUFFER_INCOMPLETE_ATTACHMENT : NativeInt;
|
||||
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : NativeInt;
|
||||
FRAMEBUFFER_INCOMPLETE_DIMENSIONS : NativeInt;
|
||||
FRAMEBUFFER_UNSUPPORTED : NativeInt;
|
||||
|
||||
FRAMEBUFFER_BINDING : NativeInt;
|
||||
RENDERBUFFER_BINDING : NativeInt;
|
||||
MAX_RENDERBUFFER_SIZE : NativeInt;
|
||||
|
||||
INVALID_FRAMEBUFFER_OPERATION : NativeInt;
|
||||
|
||||
(* WebGL-specific enums *)
|
||||
UNPACK_FLIP_Y_WEBGL : NativeInt;
|
||||
UNPACK_PREMULTIPLY_ALPHA_WEBGL : NativeInt;
|
||||
CONTEXT_LOST_WEBGL : NativeInt;
|
||||
UNPACK_COLORSPACE_CONVERSION_WEBGL : NativeInt;
|
||||
BROWSER_DEFAULT_WEBGL : NativeInt;
|
||||
|
||||
Private
|
||||
Fcanvas : TJSHTMLCanvasElement; external name 'canvas';
|
||||
FdrawingBufferWidth : GLsizei; external name 'drawingBufferWidth';
|
||||
FdrawingBufferHeight : GLsizei; external name 'drawingBufferHeight';
|
||||
Public
|
||||
function getContextAttributes() : TJSWebGLContextAttributes;
|
||||
function isContextLost() : boolean ;
|
||||
function getSupportedExtensions() : TJSStringDynArray;
|
||||
function getExtension(name : String) : TJSobject;
|
||||
procedure activeTexture(texture : GLenum);
|
||||
procedure attachShader(aprogram : TJSWebGLProgram ; shader : TJSWebGLShader);
|
||||
procedure bindAttribLocation(WebGLProgram : 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(RGB : GLenum : mode : GLenum);
|
||||
procedure blendEquationSeparate(Alpha : GLenum; mode : GLenum);
|
||||
procedure blendFunc(sfactor : GLenum; dfactor : GLenum);
|
||||
procedure blendFuncSeparate(srcRGB : GLenum; dstRGB : GLenum ; dstAlpha : GLenum: srcAlpha : GLenum);
|
||||
|
||||
procedure bufferData(target : GLenum; size : GLsizeiptr ; usage : GLenum);
|
||||
procedure bufferData(target : GLenum; data : TJSBufferSource ; usage : GLenum);
|
||||
procedure bufferSubData(target : GLenum; offset : GLintptr; data : TJSBufferSource);
|
||||
|
||||
function checkFramebufferStatus(target : GLenum) :String;
|
||||
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 : TJSArrayBufferView);
|
||||
procedure compressedTexSubImage2D(target : GLenum; level: GLint ; xoffset : GLint; yoffset : GLint ; width : GLsizei; height: GLsizei ; format : GLenum; data: TJSArrayBufferView );
|
||||
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(atype : GLenum) : TJSWebGLShader;
|
||||
function createTexture() : TJSWebGLTexture;
|
||||
procedure cullFace(mode : GLenum);
|
||||
|
||||
procedure deleteBuffer(buffer : TJSWebGLBuffer);
|
||||
procedure deleteFramebuffer(framebuffer : TJSWebGLFramebuffer);
|
||||
procedure deleteProgram(aprogram : 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(aprogram : 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 ; atype : 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(aprogram: TJSWebGLProgram ; index : GLuint) : TJSWebGLActiveInfo;
|
||||
function getActiveUniform(aprogram : TJSWebGLProgram; index: GLuint ) : TJSWebGLActiveInfo;
|
||||
function getAttachedShaders(aprogram: TJSWebGLProgram) : TJSWebGLShaderArray ;
|
||||
function getAttribLocation(aprogram :TJSWebGLProgram ; name : String) : GLint ;
|
||||
function getBufferParameter(target : GLenum; pname: GLenum ) : JSValue;
|
||||
function getParameter(pname : GLenum) : JSValue;
|
||||
function getError() : Integer;
|
||||
function getFramebufferAttachmentParameter(target: GLenum ; attachment : GLenum; pname : GLenum ) : JSValue;
|
||||
function getProgramParameter(aprogram : TJSWebGLProgram; pname : GLenum) : JSValue;
|
||||
Function getProgramInfoLog(aprogram : 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) : TJSString;
|
||||
function getShaderSource(shader : TJSWebGLShader) : TJSString;
|
||||
function getTexParameter(target: GLenum ; pname : GLenum) : JSValue;
|
||||
function getUniform(aprogram : TJSWebGLProgram; location: TJSWebGLUniformLocation ) : JSValue;
|
||||
function getUniformLocation(aprogram : 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(aprogram : TJSWebGLProgram) : GLBoolean;
|
||||
function isRenderbuffer(renderbuffer : TJSWebGLRenderbuffer) : GLBoolean;
|
||||
function isShader(shader : TJSWebGLShader) : GLBoolean;
|
||||
function isTexture(texture : TJSWebGLTexture) : GLBoolean;
|
||||
procedure lineWidth(width : GLfloat);
|
||||
procedure linkProgram(aprogram : 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; atype: GLenum , pixels: TJSArrayBufferView );
|
||||
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; atype : GLEnum; pixels : TJSArrayBufferView ) ;
|
||||
procedure texImage2D(target : GLenum; level : GLint; internalformat : GLint; format : GLEnum; atype : GLenum; source : TJSTexImageSource ); // May throw DOMException
|
||||
|
||||
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; atype : GLenum ; pixels : TJSArrayBufferView);
|
||||
procedure texSubImage2D(target : GLenum; level : GLint; xoffset : GLint; yoffset : GLint; format : GLenum; atype : GLenum ; source: TJSTexImageSource ); // May throw DOMException
|
||||
|
||||
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 : TJSFloat32List );
|
||||
procedure uniform2fv(location : TJSWebGLUniformLocation; v : TJSFloat32List );
|
||||
procedure uniform3fv(location : TJSWebGLUniformLocation; v : TJSFloat32List );
|
||||
procedure uniform4fv(location : TJSWebGLUniformLocation; v : TJSFloat32List );
|
||||
|
||||
procedure uniform1iv(location : TJSWebGLUniformLocation; v: TJSInt32List );
|
||||
procedure uniform2iv(location : TJSWebGLUniformLocation; v: TJSInt32List );
|
||||
procedure uniform3iv(location : TJSWebGLUniformLocation; v: TJSInt32List );
|
||||
procedure uniform4iv(location : TJSWebGLUniformLocation; v: TJSInt32List );
|
||||
|
||||
procedure uniformMatrix2fv(location : TJSWebGLUniformLocation; transpose: GLboolean ; value : TJSFloat32List);
|
||||
procedure uniformMatrix3fv(location : TJSWebGLUniformLocation; transpose: GLboolean ; value : TJSFloat32List);
|
||||
procedure uniformMatrix4fv(location : TJSWebGLUniformLocation; transpose: GLboolean ; value : TJSFloat32List);
|
||||
|
||||
procedure useProgram(aprogram : TJSWebGLProgram);
|
||||
procedure validateProgram(aprogram : 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 : TJSFloat32List );
|
||||
procedure vertexAttrib2fv(index : GLuint; values : TJSFloat32List );
|
||||
procedure vertexAttrib3fv(index : GLuint; values : TJSFloat32List );
|
||||
procedure vertexAttrib4fv(index : GLuint; values : TJSFloat32List );
|
||||
|
||||
procedure vertexAttribPointer(index : GLuint; size : GLInt, atype : GLEnum; normalized : GLboolean; stride: GLsizei; aoffset: 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 = Class external name 'WebGLRenderingContext' (TJSWebGLRenderingContextBase);
|
||||
|
||||
|
||||
TJSWebGLContextEvent = class external name 'WebGLContextEvent' (TJSEvent)
|
||||
Private
|
||||
FstatusMessage : String; external name 'statusMessage';
|
||||
public
|
||||
Property statusMessage : String read FstatusMessage;
|
||||
end;
|
||||
|
||||
// EventInit is defined in the DOM4 specification.
|
||||
TJSWebGLContext = class external name 'WebGLContext' (TJSEvent)
|
||||
statusMessage : String;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
Loading…
Reference in New Issue
Block a user