mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-30 19:10:12 +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