From 4892dbe4e3ba2175823b70b9d252afa02378413b Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Tue, 22 May 2018 16:46:58 -0700 Subject: [PATCH] added gl shim and renderer spec --- package-lock.json | Bin 561197 -> 555693 bytes package.json | 1 - src/mol-gl/_spec/gl.shim.ts | 789 ++++++++++++++++++++++++++ src/mol-gl/_spec/renderer.spec.ts | 72 ++- src/mol-gl/gl.d.ts | 904 ------------------------------ 5 files changed, 843 insertions(+), 923 deletions(-) create mode 100644 src/mol-gl/_spec/gl.shim.ts delete mode 100644 src/mol-gl/gl.d.ts diff --git a/package-lock.json b/package-lock.json index 7d1f40ec71f5c78182c153e2280a99541d480e58..499eb34bb582cfda06c85d631d12ba659167f391 100644 GIT binary patch delta 1827 zcmYjSdr(wW7@zaH_wKU0ymnay7w#IRONiuy2vclQ(~?BT%1mM%9kVptN+&B#XCiS- z#_B3xFJ6`kjv%(;H)u>$l;ub|1tS`$O*CZ_Wn&Fk0-bwrQ~h_(obR0T{a)W~s2SVv zN3iL59{2{i9zB`oih=ug^HB84>{}G*Td5`*h4*-(f%*FcH1`l4woOw~p!aza2gA*5 zl99P+oly{WzV1qcS$8Ud=$DJW^+4&5!amlzd=i5xz0_U}t=y*?zn9sIrnT!BbS|a3 zkr}Cm#cPOe)YL1{i;*A8jTO~nqg}%u#lG1AsWV9yIJVIg%oJn>$6yR87Eq9?gdlt$ zNr13l@nLHmIl_(2g&|l~PkcsNWh~VB$mh_XL_^R$T^WmYNu**te4R^zI6t2p(~R|n ziEw!f@xVhw^Fq#f;;nd@<zUHNvg|hSMwpK0o+EX{K2rVy*`z`LTo%H#Qt}apKB4F^ zaXV2V@QdQWq3xuKnLvVAzmwdOV4v!(A{h>Fd({vI>c~U_;X-m7ly`6qOX^8qG89y? z5EL$CKHS_+CTm7(ZwSWS%tpb*(<B*NI>-!*Gsyl<_9?nZgHc+e!>SGui(ht;XE@St z$Xy9AU6O3`^!|S8GYUK&+}%%l9Y$kP2&Of#B&-}D<pG?UME#nL?cr4FblK`ef^Ljt zP(QO3H<!C7(7m_9`Vtz%Sr5~!6q77NZb0W(+-n?S9+;_WF34^r<DqLkU2Y7Og>e1` z+NHvt>C7s{tj%=bAxo0flWGtm>1qOOy+&N{Xbnk$R}B&iIZaZ!mM;1UflV1K14iok z7(9HA-uQ>9;%!PUgcFzoBN5Gk9c9X1id%c=I2DF9VKWDkIUoM;9nE#%U_VVD@aa|B zXClWBf1|$!%+_F9g?#sHEc+hv{VWsX+~jQvO|Q@xb0-EzlG$Q{JG^XBqUB1wGLC`M z#IHm7B=(7EMYxPI0PC10aP4H4ZtD`xW${>>$J(40)ly^)x6EemQTVit=$Jj1IUObi zC^f#8WVg~F*-M$HIH9|lj)DdAm<M4sd!1Mb!<;ABvD;0R@p>)WLM@lJg=NjQ_t-`P zrDbd^y7#jPx13Ok%z?&1Hesc-j%9&Z$Tp~eq6>1P*TXyA@cVJ0!`0DT7)$0P7-iSJ z5Vw_Z=pVyt%<JqutPb$si0x`w%ds|%$H^iyKC*WmF0`v&{OcxOywQp)?5g4lKKTy! zGvmb<GT`lM-fheZ>$tUs&$E1tm+JTdVe?=#^3@I;-@<b#Y<@#z;Ik+AWD0#Q5`?CO zQob)*`QQZ5mMCu6^)r9dveS%yUaP{RCwT@WN9j#)=p3B@gO4bqvG@<(O03sH1M<s8 z7|VnT{mYbi7+K6+aCNVmg9X=lXQE}n^Uc(6bG^(hMq;faxH=$$)QSUCq=_rgc#wp^ zd5pTD18F=ww_N77M;HBmD;N;Tl(Fm173OG^>BpFS5m$_V){4h8`@WKcBH3Y-I6_zz z6(0p~$Jb(cjAe|rBB@F7XqE!5LY9j8m&D;z3mS@H(djpa$AsYQ9^%0vpHfq5%&yY$ z;9JVC0usBFAReeu9*ei|79CZpe0HDz%sCHEIi;+RGb)dVDkcgJ>7P+AywR=(ao~b7 zXR7^rkCF*n;?!o#+)$FFD)7z%nZKgPnG5porXGyMtMLjh9i@I816fZKr*Za_4ogqd zG}v&0r<&m%k3UURH|3e|AiP#}!5wELQ742*H<vNsJgO!e#VcHJrbS{6Q!)-3n}rwd zZReYC*BbSbZlx%4MyBZS7c#t!JJl9&d&K{2YYaWE;Y;OeS=N7}$p3+w&ESDHIYQ3m zX$i37s=TzRhvwjs57n>uzavz(J6g`{^X+Q)Yc@kCAJlHZjwRZFMQ`B^qE<X5r-;6S kEaVt1(zxT_S76^%Z46#srM)XByZPHQhv2Jgw953q0dc{l4FCWD delta 4322 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 D(9yxI diff --git a/package.json b/package.json index 23c931617..af8549625 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,6 @@ "dependencies": { "argparse": "^1.0.10", "express": "^4.16.3", - "gl": "^4.0.4", "immutable": "^4.0.0-rc.9", "node-fetch": "^2.1.2", "react": "^16.3.2", diff --git a/src/mol-gl/_spec/gl.shim.ts b/src/mol-gl/_spec/gl.shim.ts new file mode 100644 index 000000000..d4242f5a1 --- /dev/null +++ b/src/mol-gl/_spec/gl.shim.ts @@ -0,0 +1,789 @@ + + +/** + * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. + * + * @author Alexander Rose <alexander.rose@weirdbyte.de> + */ + +import { idFactory } from 'mol-util/id-factory' + +const c = { + ACTIVE_ATTRIBUTE_MAX_LENGTH: 35722, + ACTIVE_UNIFORM_MAX_LENGTH: 35719, + INFO_LOG_LENGTH: 35716, + NUM_COMPRESSED_TEXTURE_FORMATS: 34466, + SHADER_COMPILER: 36346, + SHADER_SOURCE_LENGTH: 35720, + + MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF, + MAX_TEXTURE_IMAGE_UNITS_NV: 0x8872 +} + +const gl = { + ACTIVE_ATTRIBUTES: 35721, + ACTIVE_TEXTURE: 34016, + ACTIVE_UNIFORMS: 35718, + ALIASED_LINE_WIDTH_RANGE: 33902, + ALIASED_POINT_SIZE_RANGE: 33901, + ALPHA: 6406, + ALPHA_BITS: 3413, + ALWAYS: 519, + ARRAY_BUFFER: 34962, + ARRAY_BUFFER_BINDING: 34964, + ATTACHED_SHADERS: 35717, + BACK: 1029, + BLEND: 3042, + BLEND_COLOR: 32773, + BLEND_DST_ALPHA: 32970, + BLEND_DST_RGB: 32968, + BLEND_EQUATION: 32777, + BLEND_EQUATION_ALPHA: 34877, + BLEND_EQUATION_RGB: 32777, + BLEND_SRC_ALPHA: 32971, + BLEND_SRC_RGB: 32969, + BLUE_BITS: 3412, + BOOL: 35670, + BOOL_VEC2: 35671, + BOOL_VEC3: 35672, + BOOL_VEC4: 35673, + BROWSER_DEFAULT_WEBGL: 37444, + BUFFER_SIZE: 34660, + BUFFER_USAGE: 34661, + BYTE: 5120, + CCW: 2305, + CLAMP_TO_EDGE: 33071, + COLOR_ATTACHMENT0: 36064, + COLOR_BUFFER_BIT: 16384, + COLOR_CLEAR_VALUE: 3106, + COLOR_WRITEMASK: 3107, + COMPILE_STATUS: 35713, + COMPRESSED_TEXTURE_FORMATS: 34467, + CONSTANT_ALPHA: 32771, + CONSTANT_COLOR: 32769, + CONTEXT_LOST_WEBGL: 37442, + CULL_FACE: 2884, + CULL_FACE_MODE: 2885, + CURRENT_PROGRAM: 35725, + CURRENT_VERTEX_ATTRIB: 34342, + CW: 2304, + DECR: 7683, + DECR_WRAP: 34056, + DELETE_STATUS: 35712, + DEPTH_ATTACHMENT: 36096, + DEPTH_BITS: 3414, + DEPTH_BUFFER_BIT: 256, + DEPTH_CLEAR_VALUE: 2931, + DEPTH_COMPONENT: 6402, + DEPTH_COMPONENT16: 33189, + DEPTH_FUNC: 2932, + DEPTH_RANGE: 2928, + DEPTH_STENCIL: 34041, + DEPTH_STENCIL_ATTACHMENT: 33306, + DEPTH_TEST: 2929, + DEPTH_WRITEMASK: 2930, + DITHER: 3024, + DONT_CARE: 4352, + DST_ALPHA: 772, + DST_COLOR: 774, + DYNAMIC_DRAW: 35048, + ELEMENT_ARRAY_BUFFER: 34963, + ELEMENT_ARRAY_BUFFER_BINDING: 34965, + EQUAL: 514, + FASTEST: 4353, + FLOAT: 5126, + FLOAT_MAT2: 35674, + FLOAT_MAT3: 35675, + FLOAT_MAT4: 35676, + FLOAT_VEC2: 35664, + FLOAT_VEC3: 35665, + FLOAT_VEC4: 35666, + FRAGMENT_SHADER: 35632, + FRAMEBUFFER: 36160, + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 36049, + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 36048, + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 36051, + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 36050, + FRAMEBUFFER_BINDING: 36006, + FRAMEBUFFER_COMPLETE: 36053, + FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 36054, + FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 36057, + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 36055, + FRAMEBUFFER_UNSUPPORTED: 36061, + FRONT: 1028, + FRONT_AND_BACK: 1032, + FRONT_FACE: 2886, + FUNC_ADD: 32774, + FUNC_REVERSE_SUBTRACT: 32779, + FUNC_SUBTRACT: 32778, + GENERATE_MIPMAP_HINT: 33170, + GEQUAL: 518, + GREATER: 516, + GREEN_BITS: 3411, + HIGH_FLOAT: 36338, + HIGH_INT: 36341, + IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B, + IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A, + INCR: 7682, + INCR_WRAP: 34055, + INT: 5124, + INT_VEC2: 35667, + INT_VEC3: 35668, + INT_VEC4: 35669, + INVALID_ENUM: 1280, + INVALID_FRAMEBUFFER_OPERATION: 1286, + INVALID_OPERATION: 1282, + INVALID_VALUE: 1281, + INVERT: 5386, + KEEP: 7680, + LEQUAL: 515, + LESS: 513, + LINEAR: 9729, + LINEAR_MIPMAP_LINEAR: 9987, + LINEAR_MIPMAP_NEAREST: 9985, + LINES: 1, + LINE_LOOP: 2, + LINE_STRIP: 3, + LINE_WIDTH: 2849, + LINK_STATUS: 35714, + LOW_FLOAT: 36336, + LOW_INT: 36339, + LUMINANCE: 6409, + LUMINANCE_ALPHA: 6410, + MAX_COMBINED_TEXTURE_IMAGE_UNITS: 35661, + MAX_CUBE_MAP_TEXTURE_SIZE: 34076, + MAX_FRAGMENT_UNIFORM_VECTORS: 36349, + MAX_RENDERBUFFER_SIZE: 34024, + MAX_TEXTURE_IMAGE_UNITS: 34930, + MAX_TEXTURE_SIZE: 3379, + MAX_VARYING_VECTORS: 36348, + MAX_VERTEX_ATTRIBS: 34921, + MAX_VERTEX_TEXTURE_IMAGE_UNITS: 35660, + MAX_VERTEX_UNIFORM_VECTORS: 36347, + MAX_VIEWPORT_DIMS: 3386, + MEDIUM_FLOAT: 36337, + MEDIUM_INT: 36340, + MIRRORED_REPEAT: 33648, + NEAREST: 9728, + NEAREST_MIPMAP_LINEAR: 9986, + NEAREST_MIPMAP_NEAREST: 9984, + NEVER: 512, + NICEST: 4354, + NONE: 0, + NOTEQUAL: 517, + NO_ERROR: 0, + ONE: 1, + ONE_MINUS_CONSTANT_ALPHA: 32772, + ONE_MINUS_CONSTANT_COLOR: 32770, + ONE_MINUS_DST_ALPHA: 773, + ONE_MINUS_DST_COLOR: 775, + ONE_MINUS_SRC_ALPHA: 771, + ONE_MINUS_SRC_COLOR: 769, + OUT_OF_MEMORY: 1285, + PACK_ALIGNMENT: 3333, + POINTS: 0, + POLYGON_OFFSET_FACTOR: 32824, + POLYGON_OFFSET_FILL: 32823, + POLYGON_OFFSET_UNITS: 10752, + RED_BITS: 3410, + RENDERBUFFER: 36161, + RENDERBUFFER_ALPHA_SIZE: 36179, + RENDERBUFFER_BINDING: 36007, + RENDERBUFFER_BLUE_SIZE: 36178, + RENDERBUFFER_DEPTH_SIZE: 36180, + RENDERBUFFER_GREEN_SIZE: 36177, + RENDERBUFFER_HEIGHT: 36163, + RENDERBUFFER_INTERNAL_FORMAT: 36164, + RENDERBUFFER_RED_SIZE: 36176, + RENDERBUFFER_STENCIL_SIZE: 36181, + RENDERBUFFER_WIDTH: 36162, + RENDERER: 7937, + REPEAT: 10497, + REPLACE: 7681, + RGB: 6407, + RGB5_A1: 32855, + RGB565: 36194, + RGBA: 6408, + RGBA4: 32854, + SAMPLER_2D: 35678, + SAMPLER_CUBE: 35680, + SAMPLES: 32937, + SAMPLE_ALPHA_TO_COVERAGE: 32926, + SAMPLE_BUFFERS: 32936, + SAMPLE_COVERAGE: 32928, + SAMPLE_COVERAGE_INVERT: 32939, + SAMPLE_COVERAGE_VALUE: 32938, + SCISSOR_BOX: 3088, + SCISSOR_TEST: 3089, + SHADER_TYPE: 35663, + SHADING_LANGUAGE_VERSION: 35724, + SHORT: 5122, + SRC_ALPHA: 770, + SRC_ALPHA_SATURATE: 776, + SRC_COLOR: 768, + STATIC_DRAW: 35044, + STENCIL_ATTACHMENT: 36128, + STENCIL_BACK_FAIL: 34817, + STENCIL_BACK_FUNC: 34816, + STENCIL_BACK_PASS_DEPTH_FAIL: 34818, + STENCIL_BACK_PASS_DEPTH_PASS: 34819, + STENCIL_BACK_REF: 36003, + STENCIL_BACK_VALUE_MASK: 36004, + STENCIL_BACK_WRITEMASK: 36005, + STENCIL_BITS: 3415, + STENCIL_BUFFER_BIT: 1024, + STENCIL_CLEAR_VALUE: 2961, + STENCIL_FAIL: 2964, + STENCIL_FUNC: 2962, + STENCIL_INDEX: 6401, + STENCIL_INDEX8: 36168, + STENCIL_PASS_DEPTH_FAIL: 2965, + STENCIL_PASS_DEPTH_PASS: 2966, + STENCIL_REF: 2967, + STENCIL_TEST: 2960, + STENCIL_VALUE_MASK: 2963, + STENCIL_WRITEMASK: 2968, + STREAM_DRAW: 35040, + SUBPIXEL_BITS: 3408, + TEXTURE: 5890, + TEXTURE0: 33984, + TEXTURE1: 33985, + TEXTURE2: 33986, + TEXTURE3: 33987, + TEXTURE4: 33988, + TEXTURE5: 33989, + TEXTURE6: 33990, + TEXTURE7: 33991, + TEXTURE8: 33992, + TEXTURE9: 33993, + TEXTURE10: 33994, + TEXTURE11: 33995, + TEXTURE12: 33996, + TEXTURE13: 33997, + TEXTURE14: 33998, + TEXTURE15: 33999, + TEXTURE16: 34000, + TEXTURE17: 34001, + TEXTURE18: 34002, + TEXTURE19: 34003, + TEXTURE20: 34004, + TEXTURE21: 34005, + TEXTURE22: 34006, + TEXTURE23: 34007, + TEXTURE24: 34008, + TEXTURE25: 34009, + TEXTURE26: 34010, + TEXTURE27: 34011, + TEXTURE28: 34012, + TEXTURE29: 34013, + TEXTURE30: 34014, + TEXTURE31: 34015, + TEXTURE_2D: 3553, + TEXTURE_BINDING_2D: 32873, + TEXTURE_BINDING_CUBE_MAP: 34068, + TEXTURE_CUBE_MAP: 34067, + TEXTURE_CUBE_MAP_NEGATIVE_X: 34070, + TEXTURE_CUBE_MAP_NEGATIVE_Y: 34072, + TEXTURE_CUBE_MAP_NEGATIVE_Z: 34074, + TEXTURE_CUBE_MAP_POSITIVE_X: 34069, + TEXTURE_CUBE_MAP_POSITIVE_Y: 34071, + TEXTURE_CUBE_MAP_POSITIVE_Z: 34073, + TEXTURE_MAG_FILTER: 10240, + TEXTURE_MIN_FILTER: 10241, + TEXTURE_WRAP_S: 10242, + TEXTURE_WRAP_T: 10243, + TRIANGLES: 4, + TRIANGLE_FAN: 6, + TRIANGLE_STRIP: 5, + UNPACK_ALIGNMENT: 3317, + UNPACK_COLORSPACE_CONVERSION_WEBGL: 37443, + UNPACK_FLIP_Y_WEBGL: 37440, + UNPACK_PREMULTIPLY_ALPHA_WEBGL: 37441, + UNSIGNED_BYTE: 5121, + UNSIGNED_INT: 5125, + UNSIGNED_SHORT: 5123, + UNSIGNED_SHORT_4_4_4_4: 32819, + UNSIGNED_SHORT_5_5_5_1: 32820, + UNSIGNED_SHORT_5_6_5: 33635, + VALIDATE_STATUS: 35715, + VENDOR: 7936, + VERSION: 7938, + VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 34975, + VERTEX_ATTRIB_ARRAY_ENABLED: 34338, + VERTEX_ATTRIB_ARRAY_NORMALIZED: 34922, + VERTEX_ATTRIB_ARRAY_POINTER: 34373, + VERTEX_ATTRIB_ARRAY_SIZE: 34339, + VERTEX_ATTRIB_ARRAY_STRIDE: 34340, + VERTEX_ATTRIB_ARRAY_TYPE: 34341, + VERTEX_SHADER: 35633, + VIEWPORT: 2978, + ZERO: 0 +} +type gl = typeof gl + +export function createGl(width: number, height: number, contextAttributes: WebGLContextAttributes): WebGLRenderingContext { + const getNextId = idFactory() + const items: { [k: number]: any } = {} + const boundTextures: { [k: number]: any } = {} + const viewport = { x: 0, y: 0, width, height } + const depthRange = { zNear: 0, zFar: 1 } + const colorClearValue = { r: 0, g: 0, b: 0, a: 0 } + + // let _activeFramebuffer: number + // let _activeRenderbuffer: number + + return { + ...gl, + canvas: { + width, height + } as HTMLCanvasElement, + getAttachedShaders: function(program: WebGLProgram) { + return [] as WebGLShader[] + }, + getBufferParameter: function(target: number, pname: number) { + return 0 + }, + getContextAttributes: function() { return contextAttributes }, + getFramebufferAttachmentParameter: function() {}, + getProgramInfoLog: function() { return ''; }, + getShaderInfoLog: function() { return ''; }, + getRenderbufferParameter: function() {}, + getShaderPrecisionFormat: function(shadertype: number, precisiontype: number) { + return { + precision: 0, + rangeMax: 0, + rangeMin: 0 + } + }, + getShaderSource: function(shader: WebGLShader | null) { return ''; }, + getTexParameter: function() {}, + getUniform: function() {}, + getVertexAttrib: function() {}, + getVertexAttribOffset: function(index: number, pname: number) { return 0; }, + hint: function(target: number, mode: number) {}, + isBuffer: function(buffer: WebGLBuffer | null) { return true; }, + isEnabled: function(cap: number) { return true; }, + isFramebuffer: function(framebuffer: WebGLFramebuffer | null) { return true; }, + isProgram: function(program: WebGLProgram | null) { return true; }, + isRenderbuffer: function(renderbuffer: WebGLRenderbuffer | null) { return true; }, + isShader: function(shader: WebGLShader | null) { return true; }, + isTexture: function(texture: WebGLTexture | null) { return true; }, + getExtension: function (extensionName: string): any { + switch (extensionName) { + case 'EXT_blend_minmax': return { + MAX_EXT: 0, + MIN_EXT: 0 + } as EXT_blend_minmax + case 'EXT_texture_filter_anisotropic': return { + MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0, + TEXTURE_MAX_ANISOTROPY_EXT: 0 + } as EXT_texture_filter_anisotropic + case 'EXT_frag_depth': return {} as EXT_frag_depth + case 'EXT_shader_texture_lod': return {} as EXT_shader_texture_lod + case 'EXT_sRGB': return { + FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0, + SRGB8_ALPHA8_EXT: 0, + SRGB_ALPHA_EXT: 0, + SRGB_EXT: 0 + } as EXT_sRGB + case 'OES_vertex_array_object': return { + VERTEX_ARRAY_BINDING_OES: 0, + bindVertexArrayOES: function(arrayObject: WebGLVertexArrayObjectOES) { }, + createVertexArrayOES: function(): WebGLVertexArrayObjectOES { return {} }, + deleteVertexArrayOES: function(arrayObject: WebGLVertexArrayObjectOES) { }, + isVertexArrayOES: function(value: any) { return true; } + } as OES_vertex_array_object + case 'WEBGL_color_buffer_float': return { + FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0, + RGB32F_EXT: 0, + RGBA32F_EXT: 0, + UNSIGNED_NORMALIZED_EXT: 0 + } as WEBGL_color_buffer_float + case 'WEBGL_compressed_texture_astc': return null + case 'WEBGL_compressed_texture_s3tc_srgb': return null + case 'WEBGL_debug_shaders': return { + getTranslatedShaderSource(shader: WebGLShader) { return ''; } + } as WEBGL_debug_shaders + case 'WEBGL_draw_buffers': return null + case 'WEBGL_lose_context': return { + loseContext: function() { }, + restoreContext: function() { }, + } as WEBGL_lose_context + case 'WEBGL_depth_texture': return { + UNSIGNED_INT_24_8_WEBGL: 0 + } as WEBGL_depth_texture + case 'WEBGL_debug_renderer_info': return { + UNMASKED_RENDERER_WEBGL: 0, + UNMASKED_VENDOR_WEBGL: 0 + } as WEBGL_debug_renderer_info + case 'WEBGL_compressed_texture_s3tc': return null + case 'OES_texture_half_float_linear': return {} as OES_texture_half_float_linear + case 'OES_texture_half_float': return { + HALF_FLOAT_OES: 0 + } as OES_texture_half_float + case 'OES_texture_float_linear': return {} as OES_texture_float_linear + case 'OES_texture_float': return {} as OES_texture_float + case 'OES_standard_derivatives': return { + FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0 + } as OES_standard_derivatives + case 'OES_element_index_uint': return {} as OES_element_index_uint + case 'ANGLE_instanced_arrays': return { + drawArraysInstancedANGLE: function(mode: number, first: number, count: number, primcount: number) {}, + drawElementsInstancedANGLE: function(mode: number, count: number, type: number, offset: number, primcount: number) {}, + vertexAttribDivisorANGLE: function(index: number, divisor: number) {}, + VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0 + } as ANGLE_instanced_arrays + } + return null + }, + createBuffer: function () { + const id = getNextId() + items[id] = { + which: 'buffer', + }; + return id; + }, + deleteBuffer: function () { }, + bindBuffer: function () { }, + bufferData: function () { }, + getParameter: function (pname: number) { + switch (pname) { + case c.MAX_TEXTURE_MAX_ANISOTROPY_EXT: return 16; + case c.MAX_TEXTURE_IMAGE_UNITS_NV: return 16; + + case gl.ELEMENT_ARRAY_BUFFER_BINDING: + case gl.ARRAY_BUFFER_BINDING: + case gl.FRAMEBUFFER_BINDING: + case gl.CURRENT_PROGRAM: + case gl.RENDERBUFFER_BINDING: + return 0; + // return _activeFramebuffer + // return _activeRenderbuffer + case gl.TEXTURE_BINDING_2D: + case gl.TEXTURE_BINDING_CUBE_MAP: + return null + + case gl.VERSION: + return '1.0.0' + case gl.VENDOR: + return 'shim' + case gl.RENDERER: + return 'shim-renderer' + case gl.SHADING_LANGUAGE_VERSION: + return 'WebGL GLSL ES 1.0 shim' + + case gl.COMPRESSED_TEXTURE_FORMATS: + return new Uint32Array(0) + + // Int arrays + case gl.MAX_VIEWPORT_DIMS: + case gl.SCISSOR_BOX: + return new Int32Array([ 0, 0, 4096, 4096 ]) + case gl.VIEWPORT: + const { x, y, width, height } = viewport + return new Int32Array([ x, y, width, height ]) + + // Float arrays + case gl.ALIASED_LINE_WIDTH_RANGE: + return new Float32Array([0, 1]) + case gl.ALIASED_POINT_SIZE_RANGE: + return new Float32Array([0, 255]) + case gl.DEPTH_RANGE: + return new Float32Array([ depthRange.zNear, depthRange.zFar ]) + case gl.BLEND_COLOR: + return new Float32Array([0, 0, 0, 0]) + case gl.COLOR_CLEAR_VALUE: + const { r, g, b, a } = colorClearValue + return new Float32Array([ r, g, b, a ]) + + case gl.COLOR_WRITEMASK: + return 0 + + case gl.DEPTH_CLEAR_VALUE: + case gl.LINE_WIDTH: + case gl.POLYGON_OFFSET_FACTOR: + case gl.POLYGON_OFFSET_UNITS: + case gl.SAMPLE_COVERAGE_VALUE: + return 1 + + case gl.BLEND: + case gl.CULL_FACE: + case gl.DEPTH_TEST: + case gl.DEPTH_WRITEMASK: + case gl.DITHER: + case gl.POLYGON_OFFSET_FILL: + case gl.SAMPLE_COVERAGE_INVERT: + case gl.SCISSOR_TEST: + case gl.STENCIL_TEST: + case gl.UNPACK_FLIP_Y_WEBGL: + case gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL: + return false; + + case gl.MAX_TEXTURE_SIZE: + case gl.MAX_CUBE_MAP_TEXTURE_SIZE: + return 16384; + + case gl.MAX_VERTEX_UNIFORM_VECTORS: + case gl.MAX_FRAGMENT_UNIFORM_VECTORS: + return 4096; + + case gl.MAX_VARYING_VECTORS: + case gl.MAX_TEXTURE_IMAGE_UNITS: + case gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS: + case gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS: + return 32; + + case gl.MAX_RENDERBUFFER_SIZE: + return 2048; + + case gl.ACTIVE_TEXTURE: + case gl.ALPHA_BITS: + case gl.BLEND_DST_ALPHA: + case gl.BLEND_DST_RGB: + case gl.BLEND_EQUATION_ALPHA: + case gl.BLEND_EQUATION_RGB: + case gl.BLEND_SRC_ALPHA: + case gl.BLEND_SRC_RGB: + case gl.BLUE_BITS: + case gl.CULL_FACE_MODE: + case gl.DEPTH_BITS: + case gl.DEPTH_FUNC: + case gl.FRONT_FACE: + case gl.GENERATE_MIPMAP_HINT: + case gl.GREEN_BITS: + case gl.MAX_VERTEX_ATTRIBS: + case gl.PACK_ALIGNMENT: + case gl.RED_BITS: + case gl.SAMPLE_BUFFERS: + case gl.SAMPLES: + case gl.STENCIL_BACK_FAIL: + case gl.STENCIL_BACK_FUNC: + case gl.STENCIL_BACK_PASS_DEPTH_FAIL: + case gl.STENCIL_BACK_PASS_DEPTH_PASS: + case gl.STENCIL_BACK_REF: + case gl.STENCIL_BACK_VALUE_MASK: + case gl.STENCIL_BACK_WRITEMASK: + case gl.STENCIL_BITS: + case gl.STENCIL_CLEAR_VALUE: + case gl.STENCIL_FAIL: + case gl.STENCIL_FUNC: + case gl.STENCIL_PASS_DEPTH_FAIL: + case gl.STENCIL_PASS_DEPTH_PASS: + case gl.STENCIL_REF: + case gl.STENCIL_VALUE_MASK: + case gl.STENCIL_WRITEMASK: + case gl.SUBPIXEL_BITS: + case gl.UNPACK_ALIGNMENT: + case gl.UNPACK_COLORSPACE_CONVERSION_WEBGL: + return 0; + + default: + return 0; + } + }, + getSupportedExtensions: function () { + return [ + 'EXT_blend_minmax', 'EXT_texture_filter_anisotropic', 'EXT_frag_depth', + 'EXT_shader_texture_lod', 'EXT_sRGB', 'OES_vertex_array_object', + 'WEBGL_color_buffer_float', 'WEBGL_debug_shaders', 'WEBGL_lose_context', + 'WEBGL_depth_texture', 'WEBGL_debug_renderer_info', 'OES_texture_half_float_linear', + 'OES_texture_half_float', 'OES_texture_float_linear', 'OES_texture_float', + 'OES_standard_derivatives', 'OES_element_index_uint', 'ANGLE_instanced_arrays' + ]; + }, + createShader: function (type: number) { + const id = getNextId() + items[id] = { + which: 'shader', + type: type, + }; + return id as WebGLShader; + }, + getShaderParameter: function (shader: WebGLShader, pname: number) { + switch (pname) { + case gl.SHADER_TYPE: return items[shader as number].type; + case gl.COMPILE_STATUS: return true; + default: throw `getShaderParameter ${pname}`; + } + }, + shaderSource: function () { }, + compileShader: function () { }, + createProgram: function () { + const id = getNextId() + items[id] = { + which: 'program', + shaders: [], + }; + return id; + }, + attachShader: function (program: WebGLProgram, shader: WebGLShader) { + items[program as number].shaders.push(shader as number); + }, + bindAttribLocation: function () { }, + linkProgram: function () { }, + getProgramParameter: function (program: number, pname: number) { + switch (pname) { + case gl.LINK_STATUS: return true; + case gl.ACTIVE_UNIFORMS: return 4; + case gl.ACTIVE_ATTRIBUTES: return 0; + case gl.ACTIVE_UNIFORMS: return 0; + case gl.DELETE_STATUS: return false; + case gl.VALIDATE_STATUS: return true; + case gl.ATTACHED_SHADERS: return 2; + default: throw `getProgramParameter ${pname}`; + } + }, + deleteShader: function () { }, + deleteProgram: function () { }, + viewport: function (x: number, y: number, width: number, height: number) { + viewport.x = x + viewport.y = y + viewport.width = width + viewport.height = height + }, + clearColor: function (red: number, green: number, blue: number, alpha: number) { + colorClearValue.r = red + colorClearValue.g = green + colorClearValue.b = blue + colorClearValue.a = alpha + }, + clearDepth: function () { }, + depthFunc: function () { }, + enable: function () { }, + disable: function () { }, + frontFace: function () { }, + cullFace: function () { }, + activeTexture: function () { }, + createTexture: function () { + const id = getNextId() + items[id] = { + which: 'texture', + }; + return id; + }, + deleteTexture: function () { }, + bindTexture: function (target: number, texture: WebGLTexture | null) { + boundTextures[target as number] = texture; + }, + texParameterf: function () { }, + texParameteri: function () { }, + pixelStorei: function () { }, + texImage2D: function () { }, + texSubImage2D: function () { }, + compressedTexImage2D: function () { }, + useProgram: function () { }, + getUniformLocation: function () { + return 0; + }, + getActiveUniform: function (program: WebGLProgram, index: number) { + return { + size: 1, + type: gl.INT_VEC3, + name: `activeUniform${index}`, + }; + }, + getActiveAttrib: function (program: WebGLProgram, index: number) { + return { + size: 1, + type: gl.FLOAT, + name: `activeAttrib${index}` + }; + }, + clear: function () { }, + uniform1f: function () { }, + uniform1fv: function () { }, + uniform1i: function () { }, + uniform1iv: function () { }, + uniform2f: function () { }, + uniform2fv: function () { }, + uniform2i: function () { }, + uniform2iv: function () { }, + uniform3f: function () { }, + uniform3fv: function () { }, + uniform3i: function () { }, + uniform3iv: function () { }, + uniform4f: function () { }, + uniform4fv: function () { }, + uniform4i: function () { }, + uniform4iv: function () { }, + uniformMatrix2fv: function () { }, + uniformMatrix3fv: function () { }, + uniformMatrix4fv: function () { }, + getAttribLocation: function () { return 1 }, + vertexAttribPointer: function () { }, + enableVertexAttribArray: function () { }, + disableVertexAttribArray: function () { }, + drawElements: function () { }, + drawArrays: function () { }, + depthMask: function () { }, + depthRange: function (zNear: number, zFar: number) { + depthRange.zNear = zNear + depthRange.zFar = zFar + }, + bufferSubData: function () { }, + blendFunc: function () { }, + createFramebuffer: function () { + const id = getNextId() + items[id] = { + which: 'framebuffer', + shaders: [], + }; + return id; + }, + bindFramebuffer: function () { }, + framebufferTexture2D: function () { }, + checkFramebufferStatus: function () { + return gl.FRAMEBUFFER_COMPLETE; + }, + deleteFramebuffer: function () { }, + createRenderbuffer: function () { + const id = getNextId() + items[id] = { + which: 'renderbuffer', + shaders: [], + }; + return id; + }, + bindRenderbuffer: function () { }, + deleteRenderbuffer: function () { }, + renderbufferStorage: function () { }, + framebufferRenderbuffer: function () { }, + scissor: function () { }, + colorMask: function () { }, + lineWidth: function () { }, + vertexAttrib1f: function () { }, + vertexAttrib1fv: function () { }, + vertexAttrib2f: function () { }, + vertexAttrib2fv: function () { }, + vertexAttrib3f: function () { }, + vertexAttrib3fv: function () { }, + vertexAttrib4f: function () { }, + vertexAttrib4fv: function () { }, + validateProgram: function () { }, + generateMipmap: function () { }, + isContextLost: function () { return false; }, + drawingBufferWidth: 1024, + drawingBufferHeight: 1024, + blendColor: function () { }, + blendEquation: function () { }, + blendEquationSeparate: function () { }, + blendFuncSeparate: function () { }, + clearStencil: function () { }, + compressedTexSubImage2D: function () { }, + copyTexImage2D: function () { }, + copyTexSubImage2D: function () { }, + detachShader: function () { }, + finish: function () { }, + flush: function () { }, + getError: function () { return 0; }, + polygonOffset: function () { }, + readPixels: function () { }, + sampleCoverage: function () { }, + stencilFunc: function () { }, + stencilFuncSeparate: function () { }, + stencilMask: function () { }, + stencilMaskSeparate: function () { }, + stencilOp: function () { }, + stencilOpSeparate: function () { }, + } +} \ No newline at end of file diff --git a/src/mol-gl/_spec/renderer.spec.ts b/src/mol-gl/_spec/renderer.spec.ts index fc669697a..1384ff63b 100644 --- a/src/mol-gl/_spec/renderer.spec.ts +++ b/src/mol-gl/_spec/renderer.spec.ts @@ -4,7 +4,7 @@ * @author Alexander Rose <alexander.rose@weirdbyte.de> */ -import createGl = require('gl'); +import { createGl } from './gl.shim'; import { PerspectiveCamera } from 'mol-view/camera/perspective'; import { Vec3, Mat4 } from 'mol-math/linear-algebra'; @@ -17,16 +17,16 @@ import { createUniformColor } from 'mol-geo/util/color-data'; import { createUniformSize } from 'mol-geo/util/size-data'; import { createContext } from '../webgl/context'; -function writeImage(gl: WebGLRenderingContext, width: number, height: number) { - const pixels = new Uint8Array(width * height * 4) - gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels) - process.stdout.write(['P3\n# gl.ppm\n', width, ' ', height, '\n255\n'].join('')) - for (let i = 0; i<pixels.length; i+=4) { - for (let j = 0; j<3; ++j) { - process.stdout.write(pixels[i+j] + ' ') - } - } -} +// function writeImage(gl: WebGLRenderingContext, width: number, height: number) { +// const pixels = new Uint8Array(width * height * 4) +// gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels) +// process.stdout.write(['P3\n# gl.ppm\n', width, ' ', height, '\n255\n'].join('')) +// for (let i = 0; i<pixels.length; i+=4) { +// for (let j = 0; j<3; ++j) { +// process.stdout.write(pixels[i+j] + ' ') +// } +// } +// } function createRenderer(gl: WebGLRenderingContext) { const ctx = createContext(gl) @@ -35,7 +35,8 @@ function createRenderer(gl: WebGLRenderingContext) { far: 10000, position: Vec3.create(0, 0, 50) }) - return Renderer.create(ctx, camera) + const renderer = Renderer.create(ctx, camera) + return { ctx, camera, renderer } } function createPoints() { @@ -52,6 +53,7 @@ function createPoints() { objectId: 0, alpha: 1.0, visible: true, + depthMask: true, position, id, @@ -65,18 +67,52 @@ function createPoints() { }) } -// TODO not working -// - shaders not transformed via glslify -describe.skip('renderer', () => { +describe('renderer', () => { it('basic', () => { const [ width, height ] = [ 32, 32 ] const gl = createGl(width, height, { preserveDrawingBuffer: true }) - const renderer = createRenderer(gl) + const { ctx, renderer } = createRenderer(gl) + + expect(ctx.gl.canvas.width).toBe(32) + expect(ctx.gl.canvas.height).toBe(32) + + expect(ctx.bufferCount).toBe(0); + expect(ctx.textureCount).toBe(0); + expect(ctx.vaoCount).toBe(0); + expect(ctx.programCache.count).toBe(0); + expect(ctx.shaderCache.count).toBe(0); + + renderer.setViewport({ x: 0, y: 0, width: 64, height: 48 }) + expect(ctx.gl.getParameter(ctx.gl.VIEWPORT)[2]).toBe(64) + expect(ctx.gl.getParameter(ctx.gl.VIEWPORT)[3]).toBe(48) + }) + + it('points', () => { + const [ width, height ] = [ 32, 32 ] + const gl = createGl(width, height, { preserveDrawingBuffer: true }) + const { ctx, renderer } = createRenderer(gl) + const points = createPoints() renderer.add(points) - renderer.draw() + expect(ctx.bufferCount).toBe(4); + expect(ctx.textureCount).toBe(0); + expect(ctx.vaoCount).toBe(1); + expect(ctx.programCache.count).toBe(1); + expect(ctx.shaderCache.count).toBe(2); + + renderer.remove(points) + expect(ctx.bufferCount).toBe(0); + expect(ctx.textureCount).toBe(0); + expect(ctx.vaoCount).toBe(0); + expect(ctx.programCache.count).toBe(1); + expect(ctx.shaderCache.count).toBe(2); + + ctx.programCache.dispose() + expect(ctx.programCache.count).toBe(0); - writeImage(gl, width, height) + ctx.shaderCache.clear() + expect(ctx.shaderCache.count).toBe(0); + // console.log('moin', ctx) }) }) \ No newline at end of file diff --git a/src/mol-gl/gl.d.ts b/src/mol-gl/gl.d.ts deleted file mode 100644 index 4c5976679..000000000 --- a/src/mol-gl/gl.d.ts +++ /dev/null @@ -1,904 +0,0 @@ -// Type definitions for gl 4.0.4 -// Project: headless-gl -// Definitions by: Ivan Perevezentsev (https://github.com/ip) - -declare module 'gl' { - - /*~ Note that ES6 modules cannot directly export callable functions. - *~ This file should be imported using the CommonJS-style: - *~ import x = require('someLibrary'); - *~ - *~ Refer to the documentation to understand common - *~ workarounds for this limitation of ES6 modules. - */ - - /*~ This declaration specifies that the function - *~ is the exported object from the file - */ - export = createWebglContext; - - function createWebglContext( - width: number, - height: number, - options?: WebGLContextAttributes): WebGLRenderingContext; - } - - interface WebGLContextAttributes { - failIfMajorPerformanceCaveat?: boolean; - alpha?: boolean; - antialias?: boolean; - depth?: boolean; - premultipliedAlpha?: boolean; - preserveDrawingBuffer?: boolean; - stencil?: boolean; - } - - interface WEBGL_compressed_texture_s3tc { - readonly COMPRESSED_RGB_S3TC_DXT1_EXT: number; - readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: number; - readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: number; - readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: number; - } - - declare var WEBGL_compressed_texture_s3tc: { - prototype: WEBGL_compressed_texture_s3tc; - new(): WEBGL_compressed_texture_s3tc; - readonly COMPRESSED_RGB_S3TC_DXT1_EXT: number; - readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: number; - readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: number; - readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: number; - }; - - interface WEBGL_debug_renderer_info { - readonly UNMASKED_RENDERER_WEBGL: number; - readonly UNMASKED_VENDOR_WEBGL: number; - } - - declare var WEBGL_debug_renderer_info: { - prototype: WEBGL_debug_renderer_info; - new(): WEBGL_debug_renderer_info; - readonly UNMASKED_RENDERER_WEBGL: number; - readonly UNMASKED_VENDOR_WEBGL: number; - }; - - interface WEBGL_depth_texture { - readonly UNSIGNED_INT_24_8_WEBGL: number; - } - - declare var WEBGL_depth_texture: { - prototype: WEBGL_depth_texture; - new(): WEBGL_depth_texture; - readonly UNSIGNED_INT_24_8_WEBGL: number; - }; - - interface WebGLActiveInfo { - readonly name: string; - readonly size: number; - readonly type: number; - } - - declare var WebGLActiveInfo: { - prototype: WebGLActiveInfo; - new(): WebGLActiveInfo; - }; - - interface WebGLBuffer extends WebGLObject { - } - - declare var WebGLBuffer: { - prototype: WebGLBuffer; - new(): WebGLBuffer; - }; - - // interface WebGLContextEvent extends Event { - // readonly statusMessage: string; - // } - - interface WebGLFramebuffer extends WebGLObject { - } - - declare var WebGLFramebuffer: { - prototype: WebGLFramebuffer; - new(): WebGLFramebuffer; - }; - - interface WebGLObject { - } - - declare var WebGLObject: { - prototype: WebGLObject; - new(): WebGLObject; - }; - - interface WebGLProgram extends WebGLObject { - } - - declare var WebGLProgram: { - prototype: WebGLProgram; - new(): WebGLProgram; - }; - - interface WebGLRenderbuffer extends WebGLObject { - } - - declare var WebGLRenderbuffer: { - prototype: WebGLRenderbuffer; - new(): WebGLRenderbuffer; - }; - - interface WebGLRenderingContext { - readonly drawingBufferHeight: number; - readonly drawingBufferWidth: number; - activeTexture(texture: number): void; - attachShader(program: WebGLProgram | null, shader: WebGLShader | null): void; - bindAttribLocation(program: WebGLProgram | null, index: number, name: string): void; - bindBuffer(target: number, buffer: WebGLBuffer | null): void; - bindFramebuffer(target: number, framebuffer: WebGLFramebuffer | null): void; - bindRenderbuffer(target: number, renderbuffer: WebGLRenderbuffer | null): void; - bindTexture(target: number, texture: WebGLTexture | null): void; - blendColor(red: number, green: number, blue: number, alpha: number): void; - blendEquation(mode: number): void; - blendEquationSeparate(modeRGB: number, modeAlpha: number): void; - blendFunc(sfactor: number, dfactor: number): void; - blendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void; - bufferData(target: number, size: number | ArrayBufferView | ArrayBuffer, usage: number): void; - bufferSubData(target: number, offset: number, data: ArrayBufferView | ArrayBuffer): void; - checkFramebufferStatus(target: number): number; - clear(mask: number): void; - clearColor(red: number, green: number, blue: number, alpha: number): void; - clearDepth(depth: number): void; - clearStencil(s: number): void; - colorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void; - compileShader(shader: WebGLShader | null): void; - compressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, data: ArrayBufferView): void; - compressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, data: ArrayBufferView): void; - copyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void; - copyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void; - createBuffer(): WebGLBuffer | null; - createFramebuffer(): WebGLFramebuffer | null; - createProgram(): WebGLProgram | null; - createRenderbuffer(): WebGLRenderbuffer | null; - createShader(type: number): WebGLShader | null; - createTexture(): WebGLTexture | null; - cullFace(mode: number): void; - deleteBuffer(buffer: WebGLBuffer | null): void; - deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void; - deleteProgram(program: WebGLProgram | null): void; - deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void; - deleteShader(shader: WebGLShader | null): void; - deleteTexture(texture: WebGLTexture | null): void; - depthFunc(func: number): void; - depthMask(flag: boolean): void; - depthRange(zNear: number, zFar: number): void; - detachShader(program: WebGLProgram | null, shader: WebGLShader | null): void; - disable(cap: number): void; - disableVertexAttribArray(index: number): void; - drawArrays(mode: number, first: number, count: number): void; - drawElements(mode: number, count: number, type: number, offset: number): void; - enable(cap: number): void; - enableVertexAttribArray(index: number): void; - finish(): void; - flush(): void; - framebufferRenderbuffer(target: number, attachment: number, renderbuffertarget: number, renderbuffer: WebGLRenderbuffer | null): void; - framebufferTexture2D(target: number, attachment: number, textarget: number, texture: WebGLTexture | null, level: number): void; - frontFace(mode: number): void; - generateMipmap(target: number): void; - getActiveAttrib(program: WebGLProgram | null, index: number): WebGLActiveInfo | null; - getActiveUniform(program: WebGLProgram | null, index: number): WebGLActiveInfo | null; - getAttachedShaders(program: WebGLProgram | null): WebGLShader[] | null; - getAttribLocation(program: WebGLProgram | null, name: string): number; - getBufferParameter(target: number, pname: number): any; - getContextAttributes(): WebGLContextAttributes; - getError(): number; - getExtension(name: string): any; - getFramebufferAttachmentParameter(target: number, attachment: number, pname: number): any; - getParameter(pname: number): any; - getProgramInfoLog(program: WebGLProgram | null): string | null; - getProgramParameter(program: WebGLProgram | null, pname: number): any; - getRenderbufferParameter(target: number, pname: number): any; - getShaderInfoLog(shader: WebGLShader | null): string | null; - getShaderParameter(shader: WebGLShader | null, pname: number): any; - getShaderPrecisionFormat(shadertype: number, precisiontype: number): WebGLShaderPrecisionFormat | null; - getShaderSource(shader: WebGLShader | null): string | null; - getSupportedExtensions(): string[] | null; - getTexParameter(target: number, pname: number): any; - getUniform(program: WebGLProgram | null, location: WebGLUniformLocation | null): any; - getUniformLocation(program: WebGLProgram | null, name: string): WebGLUniformLocation | null; - getVertexAttrib(index: number, pname: number): any; - getVertexAttribOffset(index: number, pname: number): number; - hint(target: number, mode: number): void; - isBuffer(buffer: WebGLBuffer | null): boolean; - isContextLost(): boolean; - isEnabled(cap: number): boolean; - isFramebuffer(framebuffer: WebGLFramebuffer | null): boolean; - isProgram(program: WebGLProgram | null): boolean; - isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): boolean; - isShader(shader: WebGLShader | null): boolean; - isTexture(texture: WebGLTexture | null): boolean; - lineWidth(width: number): void; - linkProgram(program: WebGLProgram | null): void; - pixelStorei(pname: number, param: number | boolean): void; - polygonOffset(factor: number, units: number): void; - readPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: ArrayBufferView | null): void; - renderbufferStorage(target: number, internalformat: number, width: number, height: number): void; - sampleCoverage(value: number, invert: boolean): void; - scissor(x: number, y: number, width: number, height: number): void; - shaderSource(shader: WebGLShader | null, source: string): void; - stencilFunc(func: number, ref: number, mask: number): void; - stencilFuncSeparate(face: number, func: number, ref: number, mask: number): void; - stencilMask(mask: number): void; - stencilMaskSeparate(face: number, mask: number): void; - stencilOp(fail: number, zfail: number, zpass: number): void; - stencilOpSeparate(face: number, fail: number, zfail: number, zpass: number): void; - texImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: ArrayBufferView | null): void; - // texImage2D(target: number, level: number, internalformat: number, format: number, type: number, pixels: ImageBitmap | ImageData | HTMLVideoElement | HTMLImageElement | HTMLCanvasElement): void; - texParameterf(target: number, pname: number, param: number): void; - texParameteri(target: number, pname: number, param: number): void; - texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: ArrayBufferView | null): void; - // texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, format: number, type: number, pixels: ImageBitmap | ImageData | HTMLVideoElement | HTMLImageElement | HTMLCanvasElement): void; - uniform1f(location: WebGLUniformLocation | null, x: number): void; - uniform1fv(location: WebGLUniformLocation, v: Float32Array | number[]): void; - uniform1i(location: WebGLUniformLocation | null, x: number): void; - uniform1iv(location: WebGLUniformLocation, v: Int32Array | number[]): void; - uniform2f(location: WebGLUniformLocation | null, x: number, y: number): void; - uniform2fv(location: WebGLUniformLocation, v: Float32Array | number[]): void; - uniform2i(location: WebGLUniformLocation | null, x: number, y: number): void; - uniform2iv(location: WebGLUniformLocation, v: Int32Array | number[]): void; - uniform3f(location: WebGLUniformLocation | null, x: number, y: number, z: number): void; - uniform3fv(location: WebGLUniformLocation, v: Float32Array | number[]): void; - uniform3i(location: WebGLUniformLocation | null, x: number, y: number, z: number): void; - uniform3iv(location: WebGLUniformLocation, v: Int32Array | number[]): void; - uniform4f(location: WebGLUniformLocation | null, x: number, y: number, z: number, w: number): void; - uniform4fv(location: WebGLUniformLocation, v: Float32Array | number[]): void; - uniform4i(location: WebGLUniformLocation | null, x: number, y: number, z: number, w: number): void; - uniform4iv(location: WebGLUniformLocation, v: Int32Array | number[]): void; - uniformMatrix2fv(location: WebGLUniformLocation, transpose: boolean, value: Float32Array | number[]): void; - uniformMatrix3fv(location: WebGLUniformLocation, transpose: boolean, value: Float32Array | number[]): void; - uniformMatrix4fv(location: WebGLUniformLocation, transpose: boolean, value: Float32Array | number[]): void; - useProgram(program: WebGLProgram | null): void; - validateProgram(program: WebGLProgram | null): void; - vertexAttrib1f(indx: number, x: number): void; - vertexAttrib1fv(indx: number, values: Float32Array | number[]): void; - vertexAttrib2f(indx: number, x: number, y: number): void; - vertexAttrib2fv(indx: number, values: Float32Array | number[]): void; - vertexAttrib3f(indx: number, x: number, y: number, z: number): void; - vertexAttrib3fv(indx: number, values: Float32Array | number[]): void; - vertexAttrib4f(indx: number, x: number, y: number, z: number, w: number): void; - vertexAttrib4fv(indx: number, values: Float32Array | number[]): void; - vertexAttribPointer(indx: number, size: number, type: number, normalized: boolean, stride: number, offset: number): void; - viewport(x: number, y: number, width: number, height: number): void; - readonly ACTIVE_ATTRIBUTES: number; - readonly ACTIVE_TEXTURE: number; - readonly ACTIVE_UNIFORMS: number; - readonly ALIASED_LINE_WIDTH_RANGE: number; - readonly ALIASED_POINT_SIZE_RANGE: number; - readonly ALPHA: number; - readonly ALPHA_BITS: number; - readonly ALWAYS: number; - readonly ARRAY_BUFFER: number; - readonly ARRAY_BUFFER_BINDING: number; - readonly ATTACHED_SHADERS: number; - readonly BACK: number; - readonly BLEND: number; - readonly BLEND_COLOR: number; - readonly BLEND_DST_ALPHA: number; - readonly BLEND_DST_RGB: number; - readonly BLEND_EQUATION: number; - readonly BLEND_EQUATION_ALPHA: number; - readonly BLEND_EQUATION_RGB: number; - readonly BLEND_SRC_ALPHA: number; - readonly BLEND_SRC_RGB: number; - readonly BLUE_BITS: number; - readonly BOOL: number; - readonly BOOL_VEC2: number; - readonly BOOL_VEC3: number; - readonly BOOL_VEC4: number; - readonly BROWSER_DEFAULT_WEBGL: number; - readonly BUFFER_SIZE: number; - readonly BUFFER_USAGE: number; - readonly BYTE: number; - readonly CCW: number; - readonly CLAMP_TO_EDGE: number; - readonly COLOR_ATTACHMENT0: number; - readonly COLOR_BUFFER_BIT: number; - readonly COLOR_CLEAR_VALUE: number; - readonly COLOR_WRITEMASK: number; - readonly COMPILE_STATUS: number; - readonly COMPRESSED_TEXTURE_FORMATS: number; - readonly CONSTANT_ALPHA: number; - readonly CONSTANT_COLOR: number; - readonly CONTEXT_LOST_WEBGL: number; - readonly CULL_FACE: number; - readonly CULL_FACE_MODE: number; - readonly CURRENT_PROGRAM: number; - readonly CURRENT_VERTEX_ATTRIB: number; - readonly CW: number; - readonly DECR: number; - readonly DECR_WRAP: number; - readonly DELETE_STATUS: number; - readonly DEPTH_ATTACHMENT: number; - readonly DEPTH_BITS: number; - readonly DEPTH_BUFFER_BIT: number; - readonly DEPTH_CLEAR_VALUE: number; - readonly DEPTH_COMPONENT: number; - readonly DEPTH_COMPONENT16: number; - readonly DEPTH_FUNC: number; - readonly DEPTH_RANGE: number; - readonly DEPTH_STENCIL: number; - readonly DEPTH_STENCIL_ATTACHMENT: number; - readonly DEPTH_TEST: number; - readonly DEPTH_WRITEMASK: number; - readonly DITHER: number; - readonly DONT_CARE: number; - readonly DST_ALPHA: number; - readonly DST_COLOR: number; - readonly DYNAMIC_DRAW: number; - readonly ELEMENT_ARRAY_BUFFER: number; - readonly ELEMENT_ARRAY_BUFFER_BINDING: number; - readonly EQUAL: number; - readonly FASTEST: number; - readonly FLOAT: number; - readonly FLOAT_MAT2: number; - readonly FLOAT_MAT3: number; - readonly FLOAT_MAT4: number; - readonly FLOAT_VEC2: number; - readonly FLOAT_VEC3: number; - readonly FLOAT_VEC4: number; - readonly FRAGMENT_SHADER: number; - readonly FRAMEBUFFER: number; - readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: number; - readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: number; - readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: number; - readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: number; - readonly FRAMEBUFFER_BINDING: number; - readonly FRAMEBUFFER_COMPLETE: number; - readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: number; - readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: number; - readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: number; - readonly FRAMEBUFFER_UNSUPPORTED: number; - readonly FRONT: number; - readonly FRONT_AND_BACK: number; - readonly FRONT_FACE: number; - readonly FUNC_ADD: number; - readonly FUNC_REVERSE_SUBTRACT: number; - readonly FUNC_SUBTRACT: number; - readonly GENERATE_MIPMAP_HINT: number; - readonly GEQUAL: number; - readonly GREATER: number; - readonly GREEN_BITS: number; - readonly HIGH_FLOAT: number; - readonly HIGH_INT: number; - readonly IMPLEMENTATION_COLOR_READ_FORMAT: number; - readonly IMPLEMENTATION_COLOR_READ_TYPE: number; - readonly INCR: number; - readonly INCR_WRAP: number; - readonly INT: number; - readonly INT_VEC2: number; - readonly INT_VEC3: number; - readonly INT_VEC4: number; - readonly INVALID_ENUM: number; - readonly INVALID_FRAMEBUFFER_OPERATION: number; - readonly INVALID_OPERATION: number; - readonly INVALID_VALUE: number; - readonly INVERT: number; - readonly KEEP: number; - readonly LEQUAL: number; - readonly LESS: number; - readonly LINE_LOOP: number; - readonly LINE_STRIP: number; - readonly LINE_WIDTH: number; - readonly LINEAR: number; - readonly LINEAR_MIPMAP_LINEAR: number; - readonly LINEAR_MIPMAP_NEAREST: number; - readonly LINES: number; - readonly LINK_STATUS: number; - readonly LOW_FLOAT: number; - readonly LOW_INT: number; - readonly LUMINANCE: number; - readonly LUMINANCE_ALPHA: number; - readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: number; - readonly MAX_CUBE_MAP_TEXTURE_SIZE: number; - readonly MAX_FRAGMENT_UNIFORM_VECTORS: number; - readonly MAX_RENDERBUFFER_SIZE: number; - readonly MAX_TEXTURE_IMAGE_UNITS: number; - readonly MAX_TEXTURE_SIZE: number; - readonly MAX_VARYING_VECTORS: number; - readonly MAX_VERTEX_ATTRIBS: number; - readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: number; - readonly MAX_VERTEX_UNIFORM_VECTORS: number; - readonly MAX_VIEWPORT_DIMS: number; - readonly MEDIUM_FLOAT: number; - readonly MEDIUM_INT: number; - readonly MIRRORED_REPEAT: number; - readonly NEAREST: number; - readonly NEAREST_MIPMAP_LINEAR: number; - readonly NEAREST_MIPMAP_NEAREST: number; - readonly NEVER: number; - readonly NICEST: number; - readonly NO_ERROR: number; - readonly NONE: number; - readonly NOTEQUAL: number; - readonly ONE: number; - readonly ONE_MINUS_CONSTANT_ALPHA: number; - readonly ONE_MINUS_CONSTANT_COLOR: number; - readonly ONE_MINUS_DST_ALPHA: number; - readonly ONE_MINUS_DST_COLOR: number; - readonly ONE_MINUS_SRC_ALPHA: number; - readonly ONE_MINUS_SRC_COLOR: number; - readonly OUT_OF_MEMORY: number; - readonly PACK_ALIGNMENT: number; - readonly POINTS: number; - readonly POLYGON_OFFSET_FACTOR: number; - readonly POLYGON_OFFSET_FILL: number; - readonly POLYGON_OFFSET_UNITS: number; - readonly RED_BITS: number; - readonly RENDERBUFFER: number; - readonly RENDERBUFFER_ALPHA_SIZE: number; - readonly RENDERBUFFER_BINDING: number; - readonly RENDERBUFFER_BLUE_SIZE: number; - readonly RENDERBUFFER_DEPTH_SIZE: number; - readonly RENDERBUFFER_GREEN_SIZE: number; - readonly RENDERBUFFER_HEIGHT: number; - readonly RENDERBUFFER_INTERNAL_FORMAT: number; - readonly RENDERBUFFER_RED_SIZE: number; - readonly RENDERBUFFER_STENCIL_SIZE: number; - readonly RENDERBUFFER_WIDTH: number; - readonly RENDERER: number; - readonly REPEAT: number; - readonly REPLACE: number; - readonly RGB: number; - readonly RGB5_A1: number; - readonly RGB565: number; - readonly RGBA: number; - readonly RGBA4: number; - readonly SAMPLE_ALPHA_TO_COVERAGE: number; - readonly SAMPLE_BUFFERS: number; - readonly SAMPLE_COVERAGE: number; - readonly SAMPLE_COVERAGE_INVERT: number; - readonly SAMPLE_COVERAGE_VALUE: number; - readonly SAMPLER_2D: number; - readonly SAMPLER_CUBE: number; - readonly SAMPLES: number; - readonly SCISSOR_BOX: number; - readonly SCISSOR_TEST: number; - readonly SHADER_TYPE: number; - readonly SHADING_LANGUAGE_VERSION: number; - readonly SHORT: number; - readonly SRC_ALPHA: number; - readonly SRC_ALPHA_SATURATE: number; - readonly SRC_COLOR: number; - readonly STATIC_DRAW: number; - readonly STENCIL_ATTACHMENT: number; - readonly STENCIL_BACK_FAIL: number; - readonly STENCIL_BACK_FUNC: number; - readonly STENCIL_BACK_PASS_DEPTH_FAIL: number; - readonly STENCIL_BACK_PASS_DEPTH_PASS: number; - readonly STENCIL_BACK_REF: number; - readonly STENCIL_BACK_VALUE_MASK: number; - readonly STENCIL_BACK_WRITEMASK: number; - readonly STENCIL_BITS: number; - readonly STENCIL_BUFFER_BIT: number; - readonly STENCIL_CLEAR_VALUE: number; - readonly STENCIL_FAIL: number; - readonly STENCIL_FUNC: number; - readonly STENCIL_INDEX: number; - readonly STENCIL_INDEX8: number; - readonly STENCIL_PASS_DEPTH_FAIL: number; - readonly STENCIL_PASS_DEPTH_PASS: number; - readonly STENCIL_REF: number; - readonly STENCIL_TEST: number; - readonly STENCIL_VALUE_MASK: number; - readonly STENCIL_WRITEMASK: number; - readonly STREAM_DRAW: number; - readonly SUBPIXEL_BITS: number; - readonly TEXTURE: number; - readonly TEXTURE_2D: number; - readonly TEXTURE_BINDING_2D: number; - readonly TEXTURE_BINDING_CUBE_MAP: number; - readonly TEXTURE_CUBE_MAP: number; - readonly TEXTURE_CUBE_MAP_NEGATIVE_X: number; - readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: number; - readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: number; - readonly TEXTURE_CUBE_MAP_POSITIVE_X: number; - readonly TEXTURE_CUBE_MAP_POSITIVE_Y: number; - readonly TEXTURE_CUBE_MAP_POSITIVE_Z: number; - readonly TEXTURE_MAG_FILTER: number; - readonly TEXTURE_MIN_FILTER: number; - readonly TEXTURE_WRAP_S: number; - readonly TEXTURE_WRAP_T: number; - readonly TEXTURE0: number; - readonly TEXTURE1: number; - readonly TEXTURE10: number; - readonly TEXTURE11: number; - readonly TEXTURE12: number; - readonly TEXTURE13: number; - readonly TEXTURE14: number; - readonly TEXTURE15: number; - readonly TEXTURE16: number; - readonly TEXTURE17: number; - readonly TEXTURE18: number; - readonly TEXTURE19: number; - readonly TEXTURE2: number; - readonly TEXTURE20: number; - readonly TEXTURE21: number; - readonly TEXTURE22: number; - readonly TEXTURE23: number; - readonly TEXTURE24: number; - readonly TEXTURE25: number; - readonly TEXTURE26: number; - readonly TEXTURE27: number; - readonly TEXTURE28: number; - readonly TEXTURE29: number; - readonly TEXTURE3: number; - readonly TEXTURE30: number; - readonly TEXTURE31: number; - readonly TEXTURE4: number; - readonly TEXTURE5: number; - readonly TEXTURE6: number; - readonly TEXTURE7: number; - readonly TEXTURE8: number; - readonly TEXTURE9: number; - readonly TRIANGLE_FAN: number; - readonly TRIANGLE_STRIP: number; - readonly TRIANGLES: number; - readonly UNPACK_ALIGNMENT: number; - readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: number; - readonly UNPACK_FLIP_Y_WEBGL: number; - readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: number; - readonly UNSIGNED_BYTE: number; - readonly UNSIGNED_INT: number; - readonly UNSIGNED_SHORT: number; - readonly UNSIGNED_SHORT_4_4_4_4: number; - readonly UNSIGNED_SHORT_5_5_5_1: number; - readonly UNSIGNED_SHORT_5_6_5: number; - readonly VALIDATE_STATUS: number; - readonly VENDOR: number; - readonly VERSION: number; - readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: number; - readonly VERTEX_ATTRIB_ARRAY_ENABLED: number; - readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: number; - readonly VERTEX_ATTRIB_ARRAY_POINTER: number; - readonly VERTEX_ATTRIB_ARRAY_SIZE: number; - readonly VERTEX_ATTRIB_ARRAY_STRIDE: number; - readonly VERTEX_ATTRIB_ARRAY_TYPE: number; - readonly VERTEX_SHADER: number; - readonly VIEWPORT: number; - readonly ZERO: number; - } - - declare var WebGLRenderingContext: { - prototype: WebGLRenderingContext; - new(): WebGLRenderingContext; - readonly ACTIVE_ATTRIBUTES: number; - readonly ACTIVE_TEXTURE: number; - readonly ACTIVE_UNIFORMS: number; - readonly ALIASED_LINE_WIDTH_RANGE: number; - readonly ALIASED_POINT_SIZE_RANGE: number; - readonly ALPHA: number; - readonly ALPHA_BITS: number; - readonly ALWAYS: number; - readonly ARRAY_BUFFER: number; - readonly ARRAY_BUFFER_BINDING: number; - readonly ATTACHED_SHADERS: number; - readonly BACK: number; - readonly BLEND: number; - readonly BLEND_COLOR: number; - readonly BLEND_DST_ALPHA: number; - readonly BLEND_DST_RGB: number; - readonly BLEND_EQUATION: number; - readonly BLEND_EQUATION_ALPHA: number; - readonly BLEND_EQUATION_RGB: number; - readonly BLEND_SRC_ALPHA: number; - readonly BLEND_SRC_RGB: number; - readonly BLUE_BITS: number; - readonly BOOL: number; - readonly BOOL_VEC2: number; - readonly BOOL_VEC3: number; - readonly BOOL_VEC4: number; - readonly BROWSER_DEFAULT_WEBGL: number; - readonly BUFFER_SIZE: number; - readonly BUFFER_USAGE: number; - readonly BYTE: number; - readonly CCW: number; - readonly CLAMP_TO_EDGE: number; - readonly COLOR_ATTACHMENT0: number; - readonly COLOR_BUFFER_BIT: number; - readonly COLOR_CLEAR_VALUE: number; - readonly COLOR_WRITEMASK: number; - readonly COMPILE_STATUS: number; - readonly COMPRESSED_TEXTURE_FORMATS: number; - readonly CONSTANT_ALPHA: number; - readonly CONSTANT_COLOR: number; - readonly CONTEXT_LOST_WEBGL: number; - readonly CULL_FACE: number; - readonly CULL_FACE_MODE: number; - readonly CURRENT_PROGRAM: number; - readonly CURRENT_VERTEX_ATTRIB: number; - readonly CW: number; - readonly DECR: number; - readonly DECR_WRAP: number; - readonly DELETE_STATUS: number; - readonly DEPTH_ATTACHMENT: number; - readonly DEPTH_BITS: number; - readonly DEPTH_BUFFER_BIT: number; - readonly DEPTH_CLEAR_VALUE: number; - readonly DEPTH_COMPONENT: number; - readonly DEPTH_COMPONENT16: number; - readonly DEPTH_FUNC: number; - readonly DEPTH_RANGE: number; - readonly DEPTH_STENCIL: number; - readonly DEPTH_STENCIL_ATTACHMENT: number; - readonly DEPTH_TEST: number; - readonly DEPTH_WRITEMASK: number; - readonly DITHER: number; - readonly DONT_CARE: number; - readonly DST_ALPHA: number; - readonly DST_COLOR: number; - readonly DYNAMIC_DRAW: number; - readonly ELEMENT_ARRAY_BUFFER: number; - readonly ELEMENT_ARRAY_BUFFER_BINDING: number; - readonly EQUAL: number; - readonly FASTEST: number; - readonly FLOAT: number; - readonly FLOAT_MAT2: number; - readonly FLOAT_MAT3: number; - readonly FLOAT_MAT4: number; - readonly FLOAT_VEC2: number; - readonly FLOAT_VEC3: number; - readonly FLOAT_VEC4: number; - readonly FRAGMENT_SHADER: number; - readonly FRAMEBUFFER: number; - readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: number; - readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: number; - readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: number; - readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: number; - readonly FRAMEBUFFER_BINDING: number; - readonly FRAMEBUFFER_COMPLETE: number; - readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: number; - readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: number; - readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: number; - readonly FRAMEBUFFER_UNSUPPORTED: number; - readonly FRONT: number; - readonly FRONT_AND_BACK: number; - readonly FRONT_FACE: number; - readonly FUNC_ADD: number; - readonly FUNC_REVERSE_SUBTRACT: number; - readonly FUNC_SUBTRACT: number; - readonly GENERATE_MIPMAP_HINT: number; - readonly GEQUAL: number; - readonly GREATER: number; - readonly GREEN_BITS: number; - readonly HIGH_FLOAT: number; - readonly HIGH_INT: number; - readonly IMPLEMENTATION_COLOR_READ_FORMAT: number; - readonly IMPLEMENTATION_COLOR_READ_TYPE: number; - readonly INCR: number; - readonly INCR_WRAP: number; - readonly INT: number; - readonly INT_VEC2: number; - readonly INT_VEC3: number; - readonly INT_VEC4: number; - readonly INVALID_ENUM: number; - readonly INVALID_FRAMEBUFFER_OPERATION: number; - readonly INVALID_OPERATION: number; - readonly INVALID_VALUE: number; - readonly INVERT: number; - readonly KEEP: number; - readonly LEQUAL: number; - readonly LESS: number; - readonly LINE_LOOP: number; - readonly LINE_STRIP: number; - readonly LINE_WIDTH: number; - readonly LINEAR: number; - readonly LINEAR_MIPMAP_LINEAR: number; - readonly LINEAR_MIPMAP_NEAREST: number; - readonly LINES: number; - readonly LINK_STATUS: number; - readonly LOW_FLOAT: number; - readonly LOW_INT: number; - readonly LUMINANCE: number; - readonly LUMINANCE_ALPHA: number; - readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: number; - readonly MAX_CUBE_MAP_TEXTURE_SIZE: number; - readonly MAX_FRAGMENT_UNIFORM_VECTORS: number; - readonly MAX_RENDERBUFFER_SIZE: number; - readonly MAX_TEXTURE_IMAGE_UNITS: number; - readonly MAX_TEXTURE_SIZE: number; - readonly MAX_VARYING_VECTORS: number; - readonly MAX_VERTEX_ATTRIBS: number; - readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: number; - readonly MAX_VERTEX_UNIFORM_VECTORS: number; - readonly MAX_VIEWPORT_DIMS: number; - readonly MEDIUM_FLOAT: number; - readonly MEDIUM_INT: number; - readonly MIRRORED_REPEAT: number; - readonly NEAREST: number; - readonly NEAREST_MIPMAP_LINEAR: number; - readonly NEAREST_MIPMAP_NEAREST: number; - readonly NEVER: number; - readonly NICEST: number; - readonly NO_ERROR: number; - readonly NONE: number; - readonly NOTEQUAL: number; - readonly ONE: number; - readonly ONE_MINUS_CONSTANT_ALPHA: number; - readonly ONE_MINUS_CONSTANT_COLOR: number; - readonly ONE_MINUS_DST_ALPHA: number; - readonly ONE_MINUS_DST_COLOR: number; - readonly ONE_MINUS_SRC_ALPHA: number; - readonly ONE_MINUS_SRC_COLOR: number; - readonly OUT_OF_MEMORY: number; - readonly PACK_ALIGNMENT: number; - readonly POINTS: number; - readonly POLYGON_OFFSET_FACTOR: number; - readonly POLYGON_OFFSET_FILL: number; - readonly POLYGON_OFFSET_UNITS: number; - readonly RED_BITS: number; - readonly RENDERBUFFER: number; - readonly RENDERBUFFER_ALPHA_SIZE: number; - readonly RENDERBUFFER_BINDING: number; - readonly RENDERBUFFER_BLUE_SIZE: number; - readonly RENDERBUFFER_DEPTH_SIZE: number; - readonly RENDERBUFFER_GREEN_SIZE: number; - readonly RENDERBUFFER_HEIGHT: number; - readonly RENDERBUFFER_INTERNAL_FORMAT: number; - readonly RENDERBUFFER_RED_SIZE: number; - readonly RENDERBUFFER_STENCIL_SIZE: number; - readonly RENDERBUFFER_WIDTH: number; - readonly RENDERER: number; - readonly REPEAT: number; - readonly REPLACE: number; - readonly RGB: number; - readonly RGB5_A1: number; - readonly RGB565: number; - readonly RGBA: number; - readonly RGBA4: number; - readonly SAMPLE_ALPHA_TO_COVERAGE: number; - readonly SAMPLE_BUFFERS: number; - readonly SAMPLE_COVERAGE: number; - readonly SAMPLE_COVERAGE_INVERT: number; - readonly SAMPLE_COVERAGE_VALUE: number; - readonly SAMPLER_2D: number; - readonly SAMPLER_CUBE: number; - readonly SAMPLES: number; - readonly SCISSOR_BOX: number; - readonly SCISSOR_TEST: number; - readonly SHADER_TYPE: number; - readonly SHADING_LANGUAGE_VERSION: number; - readonly SHORT: number; - readonly SRC_ALPHA: number; - readonly SRC_ALPHA_SATURATE: number; - readonly SRC_COLOR: number; - readonly STATIC_DRAW: number; - readonly STENCIL_ATTACHMENT: number; - readonly STENCIL_BACK_FAIL: number; - readonly STENCIL_BACK_FUNC: number; - readonly STENCIL_BACK_PASS_DEPTH_FAIL: number; - readonly STENCIL_BACK_PASS_DEPTH_PASS: number; - readonly STENCIL_BACK_REF: number; - readonly STENCIL_BACK_VALUE_MASK: number; - readonly STENCIL_BACK_WRITEMASK: number; - readonly STENCIL_BITS: number; - readonly STENCIL_BUFFER_BIT: number; - readonly STENCIL_CLEAR_VALUE: number; - readonly STENCIL_FAIL: number; - readonly STENCIL_FUNC: number; - readonly STENCIL_INDEX: number; - readonly STENCIL_INDEX8: number; - readonly STENCIL_PASS_DEPTH_FAIL: number; - readonly STENCIL_PASS_DEPTH_PASS: number; - readonly STENCIL_REF: number; - readonly STENCIL_TEST: number; - readonly STENCIL_VALUE_MASK: number; - readonly STENCIL_WRITEMASK: number; - readonly STREAM_DRAW: number; - readonly SUBPIXEL_BITS: number; - readonly TEXTURE: number; - readonly TEXTURE_2D: number; - readonly TEXTURE_BINDING_2D: number; - readonly TEXTURE_BINDING_CUBE_MAP: number; - readonly TEXTURE_CUBE_MAP: number; - readonly TEXTURE_CUBE_MAP_NEGATIVE_X: number; - readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: number; - readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: number; - readonly TEXTURE_CUBE_MAP_POSITIVE_X: number; - readonly TEXTURE_CUBE_MAP_POSITIVE_Y: number; - readonly TEXTURE_CUBE_MAP_POSITIVE_Z: number; - readonly TEXTURE_MAG_FILTER: number; - readonly TEXTURE_MIN_FILTER: number; - readonly TEXTURE_WRAP_S: number; - readonly TEXTURE_WRAP_T: number; - readonly TEXTURE0: number; - readonly TEXTURE1: number; - readonly TEXTURE10: number; - readonly TEXTURE11: number; - readonly TEXTURE12: number; - readonly TEXTURE13: number; - readonly TEXTURE14: number; - readonly TEXTURE15: number; - readonly TEXTURE16: number; - readonly TEXTURE17: number; - readonly TEXTURE18: number; - readonly TEXTURE19: number; - readonly TEXTURE2: number; - readonly TEXTURE20: number; - readonly TEXTURE21: number; - readonly TEXTURE22: number; - readonly TEXTURE23: number; - readonly TEXTURE24: number; - readonly TEXTURE25: number; - readonly TEXTURE26: number; - readonly TEXTURE27: number; - readonly TEXTURE28: number; - readonly TEXTURE29: number; - readonly TEXTURE3: number; - readonly TEXTURE30: number; - readonly TEXTURE31: number; - readonly TEXTURE4: number; - readonly TEXTURE5: number; - readonly TEXTURE6: number; - readonly TEXTURE7: number; - readonly TEXTURE8: number; - readonly TEXTURE9: number; - readonly TRIANGLE_FAN: number; - readonly TRIANGLE_STRIP: number; - readonly TRIANGLES: number; - readonly UNPACK_ALIGNMENT: number; - readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: number; - readonly UNPACK_FLIP_Y_WEBGL: number; - readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: number; - readonly UNSIGNED_BYTE: number; - readonly UNSIGNED_INT: number; - readonly UNSIGNED_SHORT: number; - readonly UNSIGNED_SHORT_4_4_4_4: number; - readonly UNSIGNED_SHORT_5_5_5_1: number; - readonly UNSIGNED_SHORT_5_6_5: number; - readonly VALIDATE_STATUS: number; - readonly VENDOR: number; - readonly VERSION: number; - readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: number; - readonly VERTEX_ATTRIB_ARRAY_ENABLED: number; - readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: number; - readonly VERTEX_ATTRIB_ARRAY_POINTER: number; - readonly VERTEX_ATTRIB_ARRAY_SIZE: number; - readonly VERTEX_ATTRIB_ARRAY_STRIDE: number; - readonly VERTEX_ATTRIB_ARRAY_TYPE: number; - readonly VERTEX_SHADER: number; - readonly VIEWPORT: number; - readonly ZERO: number; - }; - - interface WebGLShader extends WebGLObject { - } - - declare var WebGLShader: { - prototype: WebGLShader; - new(): WebGLShader; - }; - - interface WebGLShaderPrecisionFormat { - readonly precision: number; - readonly rangeMax: number; - readonly rangeMin: number; - } - - declare var WebGLShaderPrecisionFormat: { - prototype: WebGLShaderPrecisionFormat; - new(): WebGLShaderPrecisionFormat; - }; - - interface WebGLTexture extends WebGLObject { - } - - declare var WebGLTexture: { - prototype: WebGLTexture; - new(): WebGLTexture; - }; - - interface WebGLUniformLocation { - } - - declare var WebGLUniformLocation: { - prototype: WebGLUniformLocation; - new(): WebGLUniformLocation; - }; \ No newline at end of file -- GitLab