-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.js.map
1 lines (1 loc) · 45.8 KB
/
app.js.map
1
{"version":3,"file":"app.js","sourceRoot":"","sources":["src/WebGLDescriber.ts","src/murmurhash3_32_gc.ts","src/app.ts"],"names":[],"mappings":"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","sourcesContent":["\r\n\r\nclass WebGLDescriber {\r\n\r\n\tconstructor(context:WebGLRenderingContext) {\r\n\t\ttry {\r\n\t\t\tthis.detectVieoCard(context);\r\n\r\n\t\t\tthis.version = context.getParameter(context.VERSION);\r\n\t\t\tthis.shadingVesion = context.getParameter(context.SHADING_LANGUAGE_VERSION);\r\n\r\n\t\t\tthis.maxVertexAttributes = context.getParameter(context.MAX_VERTEX_ATTRIBS);\r\n\t\t\tthis.maxVertexUniformVectors = context.getParameter(context.MAX_VERTEX_UNIFORM_VECTORS);\r\n\t\t\tthis.maxVertexTextureImageUnits = context.getParameter(context.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\r\n\t\t\tthis.maxVaryingVectors = context.getParameter(context.MAX_VARYING_VECTORS);\r\n\r\n\t\t\tthis.maxFragmentUniformVectors = context.getParameter(context.MAX_FRAGMENT_UNIFORM_VECTORS);\r\n\t\t\tthis.maxTextureImageUnits = context.getParameter(context.MAX_TEXTURE_IMAGE_UNITS);\r\n\r\n\t\t\tthis.redBits = context.getParameter(context.RED_BITS);\r\n\t\t\tthis.greenBits = context.getParameter(context.GREEN_BITS);\r\n\t\t\tthis.blueBits = context.getParameter(context.BLUE_BITS);\r\n\t\t\tthis.alphaBits = context.getParameter(context.ALPHA_BITS);\r\n\t\t\tthis.depthBits = context.getParameter(context.DEPTH_BITS);\r\n\t\t\tthis.stencilBits = context.getParameter(context.STENCIL_BITS);\r\n\t\t\tthis.maxRenderbufferSize = context.getParameter(context.MAX_RENDERBUFFER_SIZE);\r\n\t\t\tlet dims = context.getParameter(context.MAX_VIEWPORT_DIMS);\r\n\t\t\tthis.maxViewportDims0 = dims['0'];\r\n\t\t\tthis.maxViewportDims1 = dims['1'];\r\n\r\n\t\t\tthis.maxTextureSize = context.getParameter(context.MAX_TEXTURE_SIZE);\r\n\t\t\tthis.maxCubeMapTextureSize = context.getParameter(context.MAX_CUBE_MAP_TEXTURE_SIZE);\r\n\t\t\tthis.maxCombinedTextureImageUnits = context.getParameter(context.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\r\n\r\n\t\t\tlet attributes = context.getContextAttributes();\r\n\r\n\t\t\tthis.attributesAlpha = attributes.alpha;\r\n\t\t\tthis.attributesDepth = attributes.depth;\r\n\t\t\tthis.attributesStencil = attributes.stencil;\r\n\t\t\tthis.attributesAntialias = attributes.antialias;\r\n\t\t\t\r\n\t\t\tthis.attributesPremultipliedAlpha = attributes.premultipliedAlpha;\r\n\t\t\tthis.attributesPreserveDrawingBuffer = attributes.preserveDrawingBuffer;\r\n\r\n\t\t\tthis.majorPerformanceCaveat = this.getMajorPerformanceCaveat();\r\n\r\n\t\t\tthis.detectShaderPrecisionFormat(context);\r\n\t\t\tthis.supportedExtensions = context.getSupportedExtensions();\r\n\r\n\t\t\tthis.supported = true;\r\n\t\t\tthis.detectError = false;\r\n\t\t} catch (e) {\r\n\t\t\tthis.detectError = true;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getMajorPerformanceCaveat():string {\r\n //let canvas = $('<canvas />', { width : '1', height : '1' }).appendTo('body');\r\n let canvas = document.createElement('canvas');\r\n let opts = { failIfMajorPerformanceCaveat : true }\r\n let context = (canvas.getContext(\"webgl\", opts) || canvas.getContext(\"experimental-webgl\", opts)) as WebGLRenderingContext;\r\n\r\n if (!context) {\r\n return 'yes';\r\n }\r\n\r\n if (context.getContextAttributes().failIfMajorPerformanceCaveat === undefined) {\r\n // If getContextAttributes() doesn't include the failIfMajorPerformanceCaveat\r\n // property, assume the browser doesn't implement it yet.\r\n return 'not_supported';\r\n }\r\n\r\n return 'no';\r\n }\r\n\r\n\tprivate detectVieoCard(context:WebGLRenderingContext):void {\r\n\t\ttry {\r\n\t\t\tlet extension = this.getExtension(context, 'WEBGL_debug_renderer_info');\r\n\t\t\tif (!extension) {\r\n\t\t\t\tthis.videoCard = 'no WEBGL_debug_renderer_info extension found';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.videoVendor = context.getParameter(extension.UNMASKED_VENDOR_WEBGL);\r\n\t\t\tthis.videoCard = context.getParameter(extension.UNMASKED_RENDERER_WEBGL);\r\n\t\t} catch (e) {\r\n\t\t\tthis.videoCard = 'detecting error';\r\n\t\t}\r\n\t}\r\n\t\r\n\tprivate getExtension(context:WebGLRenderingContext, name: string):any {\r\n\t\tif (!context) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tlet extension:any = context.getExtension(name);\r\n\t\t\tif (extension) {\r\n\t\t\t\treturn extension;\r\n\t\t\t} else {\r\n\t\t\t\tfor (let prefix of ['MOZ_', 'WEBKIT_']) {\r\n\t\t\t\t\textension = context.getExtension(prefix + name);\r\n\t\t\t\t\tif (extension) {\r\n\t\t\t\t\t\treturn extension;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate detectShaderPrecisionFormat(context:WebGLRenderingContext):void {\r\n\t\ttry {\r\n\t\t\tthis.shaderPrecisionFormats.vlf = this.getDescibedShaderPrecisionFormat(context, context.VERTEX_SHADER, context.LOW_FLOAT);\r\n\t\t\tthis.shaderPrecisionFormats.vmf = this.getDescibedShaderPrecisionFormat(context, context.VERTEX_SHADER, context.MEDIUM_FLOAT);\r\n\t\t\tthis.shaderPrecisionFormats.vhf = this.getDescibedShaderPrecisionFormat(context, context.VERTEX_SHADER, context.HIGH_FLOAT);\r\n\t\t\tthis.shaderPrecisionFormats.vli = this.getDescibedShaderPrecisionFormat(context, context.VERTEX_SHADER, context.LOW_INT);\r\n\t\t\tthis.shaderPrecisionFormats.vmi = this.getDescibedShaderPrecisionFormat(context, context.VERTEX_SHADER, context.MEDIUM_INT);\r\n\t\t\tthis.shaderPrecisionFormats.vhi = this.getDescibedShaderPrecisionFormat(context, context.VERTEX_SHADER, context.HIGH_INT);\r\n\t\t\tthis.shaderPrecisionFormats.flf = this.getDescibedShaderPrecisionFormat(context, context.FRAGMENT_SHADER, context.LOW_FLOAT);\r\n\t\t\tthis.shaderPrecisionFormats.fmf = this.getDescibedShaderPrecisionFormat(context, context.FRAGMENT_SHADER, context.MEDIUM_FLOAT);\r\n\t\t\tthis.shaderPrecisionFormats.fhf = this.getDescibedShaderPrecisionFormat(context, context.FRAGMENT_SHADER, context.HIGH_FLOAT);\r\n\t\t\tthis.shaderPrecisionFormats.fli = this.getDescibedShaderPrecisionFormat(context, context.FRAGMENT_SHADER, context.LOW_INT);\r\n\t\t\tthis.shaderPrecisionFormats.fmi = this.getDescibedShaderPrecisionFormat(context, context.FRAGMENT_SHADER, context.MEDIUM_INT);\r\n\t\t\tthis.shaderPrecisionFormats.fhi = this.getDescibedShaderPrecisionFormat(context, context.FRAGMENT_SHADER, context.HIGH_INT);\r\n\t\t} catch (e) {}\r\n\t}\r\n\r\n\tprivate getDescibedShaderPrecisionFormat(context:WebGLRenderingContext, shaderType:number, precisionType:number) {\r\n\t\tlet shpf = context.getShaderPrecisionFormat(context.VERTEX_SHADER, context.LOW_FLOAT);\r\n\t\treturn {rangeMin:shpf.rangeMin, rangeMax:shpf.rangeMax, precision:shpf.precision};\r\n\t}\r\n\r\n\tpublic detectError:boolean = undefined;\r\n\tpublic screenWidth:number = -1;\r\n\tpublic screenHeight:number = -1;\r\n\tpublic videoCard:string = 'unknown';\r\n\tpublic videoVendor:string = 'unknown';\r\n\tpublic supported:boolean = false;\r\n\tpublic version:string = 'unknown';\r\n\tpublic shadingVesion:string = 'unknown';\r\n\t\r\n\tpublic maxVertexAttributes:number = 0;\r\n\tpublic maxVertexUniformVectors:number = 0;\r\n\tpublic maxVertexTextureImageUnits:number = 0;\r\n\tpublic maxVaryingVectors:number = 0;\r\n\r\n\tpublic maxFragmentUniformVectors:number = 0;\r\n\tpublic maxTextureImageUnits:number = 0;\r\n\tpublic redBits:number = 0;\r\n\tpublic greenBits:number = 0;\r\n\tpublic blueBits:number = 0;\r\n\tpublic alphaBits:number = 0;\r\n\tpublic depthBits:number = 0;\r\n\tpublic stencilBits:number = 0;\r\n\tpublic maxRenderbufferSize:number = 0;\r\n\tpublic maxViewportDims0:number = 0;\r\n\tpublic maxViewportDims1:number = 0;\r\n\tpublic maxTextureSize:number = 0;\r\n\tpublic maxCubeMapTextureSize:number = 0;\r\n\tpublic maxCombinedTextureImageUnits:number = 0;\r\n\r\n\tpublic attributesAlpha:boolean = false;\r\n\tpublic attributesAntialias:boolean = false;\r\n\tpublic attributesDepth:boolean = false;\r\n\tpublic attributesPremultipliedAlpha:boolean = false;\r\n\tpublic attributesPreserveDrawingBuffer:boolean = false;\r\n\tpublic attributesStencil:boolean = false;\r\n\tpublic majorPerformanceCaveat:string = 'unknown';\r\n\r\n\tpublic supportedExtensions: Array<string> = [];\r\n\tpublic shaderPrecisionFormats:ShaderPrecisionFormats = new ShaderPrecisionFormats();\r\n\r\n\tpublic toString():string {\r\n\t\treturn JSON.stringify(this, null, 4);\r\n\t}\r\n}\r\n\r\nclass ShaderPrecisionFormats {\r\n\tpublic vlf:WebGLShaderPrecisionFormat;\r\n\tpublic vmf:WebGLShaderPrecisionFormat;\r\n\tpublic vhf:WebGLShaderPrecisionFormat;\r\n\tpublic vli:WebGLShaderPrecisionFormat;\r\n\tpublic vmi:WebGLShaderPrecisionFormat;\r\n\tpublic vhi:WebGLShaderPrecisionFormat;\r\n\tpublic flf:WebGLShaderPrecisionFormat;\r\n\tpublic fmf:WebGLShaderPrecisionFormat;\r\n\tpublic fhf:WebGLShaderPrecisionFormat;\r\n\tpublic fli:WebGLShaderPrecisionFormat;\r\n\tpublic fmi:WebGLShaderPrecisionFormat;\r\n\tpublic fhi:WebGLShaderPrecisionFormat;\r\n}","/**\r\n * JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)\r\n * \r\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\r\n * @see http://github.com/garycourt/murmurhash-js\r\n * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\r\n * @see http://sites.google.com/site/murmurhash/\r\n * \r\n * @param {string} key ASCII only\r\n * @param {number} seed Positive integer only\r\n * @return {number} 32-bit positive integer hash \r\n */\r\n\r\nfunction murmurhash3_32_gc(key:string, seed:number):number {\r\n\tvar remainder, bytes, h1, h1b, c1, c1b, c2, c2b, k1, i;\r\n\t\r\n\tremainder = key.length & 3; // key.length % 4\r\n\tbytes = key.length - remainder;\r\n\th1 = seed;\r\n\tc1 = 0xcc9e2d51;\r\n\tc2 = 0x1b873593;\r\n\ti = 0;\r\n\t\r\n\twhile (i < bytes) {\r\n\t \tk1 = \r\n\t \t ((key.charCodeAt(i) & 0xff)) |\r\n\t \t ((key.charCodeAt(++i) & 0xff) << 8) |\r\n\t \t ((key.charCodeAt(++i) & 0xff) << 16) |\r\n\t \t ((key.charCodeAt(++i) & 0xff) << 24);\r\n\t\t++i;\r\n\t\t\r\n\t\tk1 = ((((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16))) & 0xffffffff;\r\n\t\tk1 = (k1 << 15) | (k1 >>> 17);\r\n\t\tk1 = ((((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16))) & 0xffffffff;\r\n\r\n\t\th1 ^= k1;\r\n h1 = (h1 << 13) | (h1 >>> 19);\r\n\t\th1b = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16))) & 0xffffffff;\r\n\t\th1 = (((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16));\r\n\t}\r\n\t\r\n\tk1 = 0;\r\n\t\r\n\tswitch (remainder) {\r\n\t\tcase 3: k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\r\n\t\tcase 2: k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\r\n\t\tcase 1: k1 ^= (key.charCodeAt(i) & 0xff);\r\n\t\t\r\n\t\tk1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\r\n\t\tk1 = (k1 << 15) | (k1 >>> 17);\r\n\t\tk1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\r\n\t\th1 ^= k1;\r\n\t}\r\n\t\r\n\th1 ^= key.length;\r\n\r\n\th1 ^= h1 >>> 16;\r\n\th1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\r\n\th1 ^= h1 >>> 13;\r\n\th1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16))) & 0xffffffff;\r\n\th1 ^= h1 >>> 16;\r\n\r\n\treturn h1 >>> 0;\r\n}","///ts:ref=WebGLDescriber\r\n/// <reference path=\"./WebGLDescriber.ts\"/> ///ts:ref:generated\r\n///ts:ref=murmurhash3_32_gc\r\n/// <reference path=\"./murmurhash3_32_gc.ts\"/> ///ts:ref:generated\r\n\r\n\r\nlet oldOnError = window.onerror;\r\nwindow.onerror = function myErrorHandler(errorMsg, url, lineNumber) {\r\n trace(errorMsg + ' ' + lineNumber);\r\n if (oldOnError) {\r\n return oldOnError(errorMsg, url, lineNumber);\r\n }\r\n\r\n return false;\r\n}\r\n\r\ntrace('start');\r\n\r\nlet startEvent: Record<string, any> = getEvent('mipgl1stat_inited');\r\nsendEvent(startEvent);\r\ntrace('start event sent');\r\n\r\n\r\nlet completeEvent = getEvent('mipgl1stat');\r\n\r\nlet triagSize = 1;\r\n\r\nlet canvas: HTMLCanvasElement = document.getElementById(\"main-canvas\") as HTMLCanvasElement;\r\nlet opts = {\r\n preserveDrawingBuffer: true,\r\n stencil: true\r\n}\r\n\r\ntrace('creating context');\r\nlet gl: WebGLRenderingContext = (canvas.getContext(\"webgl\", opts) || canvas.getContext(\"experimental-webgl\", opts)) as WebGLRenderingContext;\r\ntrace('context created ' + !!gl);\r\n\r\nif (gl) {\r\n let vertexSrc = `\r\n attribute vec3 aVertexPosition;\r\n attribute vec2 aTextureCoord;\r\n\r\n varying vec2 vTextureCoord;\r\n\r\n\r\n void main(void) {\r\n gl_Position = vec4(aVertexPosition, 1.0);\r\n vTextureCoord = aTextureCoord;\r\n }`\r\n\r\n let fragmentSrc = `\r\n precision mediump float;\r\n\r\n varying vec2 vTextureCoord;\r\n\r\n uniform sampler2D uSampler;\r\n\r\n void main(void) {\r\n gl_FragColor = texture2D(uSampler, vec2(pow((vTextureCoord.s-0.5)*(vTextureCoord.s-0.5) + (vTextureCoord.t-0.5)*(vTextureCoord.t-0.5), 0.1), vTextureCoord.t));\r\n //gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.s*vTextureCoord.s*vTextureCoord.s*vTextureCoord.s*vTextureCoord.s*vTextureCoord.s, vTextureCoord.t*vTextureCoord.t*vTextureCoord.t*vTextureCoord.t));\r\n //gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.s, vTextureCoord.t));\r\n }`\r\n\r\n let vertex = gl.createShader(gl.VERTEX_SHADER);\r\n gl.shaderSource(vertex, vertexSrc);\r\n gl.compileShader(vertex);\r\n\r\n if (!gl.getShaderParameter(vertex, gl.COMPILE_STATUS)) {\r\n trace(gl.getShaderInfoLog(vertex));\r\n }\r\n\r\n let fragment = gl.createShader(gl.FRAGMENT_SHADER);\r\n gl.shaderSource(fragment, fragmentSrc);\r\n gl.compileShader(fragment);\r\n\r\n if (!gl.getShaderParameter(fragment, gl.COMPILE_STATUS)) {\r\n trace(gl.getShaderInfoLog(fragment));\r\n }\r\n\r\n let shaderProgram = gl.createProgram();\r\n gl.attachShader(shaderProgram, vertex);\r\n gl.attachShader(shaderProgram, fragment);\r\n gl.linkProgram(shaderProgram);\r\n\r\n if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {\r\n trace(gl.getProgramInfoLog(shaderProgram));\r\n }\r\n\r\n gl.useProgram(shaderProgram);\r\n\r\n let vertexPositionAttribute = gl.getAttribLocation(shaderProgram, \"aVertexPosition\");\r\n gl.enableVertexAttribArray(vertexPositionAttribute);\r\n\r\n let textureCoordAttribute = gl.getAttribLocation(shaderProgram, \"aTextureCoord\");\r\n gl.enableVertexAttribArray(textureCoordAttribute);\r\n\r\n let samplerUniform = gl.getUniformLocation(shaderProgram, \"uSampler\");\r\n\r\n\r\n let cubeVertexPositionBuffer = gl.createBuffer();\r\n gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertexPositionBuffer);\r\n\r\n let vertices = [\r\n // Front face\r\n -triagSize, triagSize, 1.0,\r\n triagSize, -triagSize, 1.0,\r\n triagSize, triagSize, 1.0,\r\n -triagSize, triagSize, 1.0,\r\n -triagSize, -triagSize, 1.0,\r\n triagSize, -triagSize, 1.0,\r\n ];\r\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);\r\n\r\n\r\n let cubeVertexTextureCoordBuffer = gl.createBuffer();\r\n gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertexTextureCoordBuffer);\r\n var textureCoords = [\r\n // Front face\r\n 0.0, 1.0,\r\n 1.0, 0.0,\r\n 1.0, 1.0,\r\n 0.0, 1.0,\r\n 0.0, 0.0,\r\n 1.0, 0.0,\r\n ];\r\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(textureCoords), gl.STATIC_DRAW);\r\n\r\n let texture = gl.createTexture();\r\n var image = new Image();\r\n\r\n image.onload = function () {\r\n gl.bindTexture(gl.TEXTURE_2D, texture);\r\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\r\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\r\n\r\n\r\n function loadMip(level: number, size: number, color: number) {\r\n let bytes = new Array<number>();\r\n for (let i = 0; i < size * size * 4; i += 4) {\r\n bytes[i + 0] = (color & 0xFF000000) >> 24;\r\n bytes[i + 1] = (color & 0x00FF0000) >> 16;\r\n bytes[i + 2] = (color & 0x0000FF00) >> 8;\r\n bytes[i + 3] = (color & 0x000000FF);\r\n }\r\n let data = new Uint8Array(bytes.length); //Uint8Array.from(bytes);\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n data[i] = bytes[i];\r\n }\r\n gl.texImage2D(gl.TEXTURE_2D, level, gl.RGBA, size, size, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\r\n }\r\n\r\n loadMip(1, 256, 0xFF0000FF);\r\n loadMip(2, 128, 0x00FF00FF);\r\n loadMip(3, 64, 0x0000FFFF);\r\n loadMip(4, 32, 0xFF0000FF);\r\n loadMip(5, 16, 0x00FF00FF);\r\n loadMip(6, 8, 0x0000FFFF);\r\n loadMip(7, 4, 0xFF0000FF);\r\n loadMip(8, 2, 0x00FF00FF);\r\n loadMip(9, 1, 0x0000FFFF);\r\n\r\n gl.bindTexture(gl.TEXTURE_2D, null);\r\n\r\n gl.clearColor(0.0, 0.0, 0.0, 1.0);\r\n\r\n gl.viewport(0, 0, canvas.width, canvas.height);\r\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);\r\n\r\n gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertexPositionBuffer);\r\n gl.vertexAttribPointer(vertexPositionAttribute, 3, gl.FLOAT, false, 0, 0);\r\n\r\n gl.bindBuffer(gl.ARRAY_BUFFER, cubeVertexTextureCoordBuffer);\r\n gl.vertexAttribPointer(textureCoordAttribute, 2, gl.FLOAT, false, 0, 0);\r\n\r\n gl.activeTexture(gl.TEXTURE0);\r\n gl.bindTexture(gl.TEXTURE_2D, texture);\r\n gl.uniform1i(samplerUniform, 0);\r\n\r\n gl.drawArrays(gl.TRIANGLES, 0, 6);\r\n\r\n gl.flush();\r\n \r\n putImageData(completeEvent, canvas);\r\n putGlDescribingInfo(completeEvent);\r\n sendEvent(completeEvent);\r\n trace('event sent');\r\n }\r\n image.src = \"normal.png\";\r\n} else {\r\n let notSupportedPre = document.createElement('p');\r\n notSupportedPre.textContent = 'webGL is not supported';\r\n document.body.insertBefore(notSupportedPre, canvas);\r\n document.body.removeChild(canvas);\r\n \r\n completeEvent['supported/i'] = 0;\r\n \r\n sendEvent(completeEvent);\r\n trace('event sent');\r\n}\r\n\r\nlet showAll: HTMLAnchorElement = document.getElementById('showAll') as HTMLAnchorElement;\r\nshowAll.onclick = () => {\r\n let pre = document.createElement('pre');\r\n pre.textContent = JSON.stringify(completeEvent, (key, value) => {\r\n if (key == 'imgData/s') {\r\n return undefined;\r\n } else {\r\n return value;\r\n }\r\n }, '\\t');\r\n document.body.appendChild(pre);\r\n return false;\r\n}\r\n\r\nlet send: HTMLButtonElement = document.getElementById('sendButon') as HTMLButtonElement;\r\nsend.onclick = () => {\r\n let modelElem = document.getElementById('device') as HTMLInputElement;\r\n let modelText = modelElem.value;\r\n\r\n completeEvent['deviceModel/s'] = modelText;\r\n sendEvent(completeEvent);\r\n \r\n let thanks = document.createElement('span');\r\n thanks.textContent = 'Thanks!';\r\n document.body.insertBefore(thanks, send);\r\n document.body.removeChild(send);\r\n\r\n return false;\r\n}\r\n\r\nfunction getEvent(type:string): any {\r\n let event: Record<string, any> = {};\r\n event['project/s'] = 'mipExploration';\r\n event['type/s'] = type;\r\n event['uid/s'] = getUID();\r\n\r\n event['userAgent/s'] = navigator.userAgent;\r\n event['officiallySupported/i'] = +!!(<any>window)['WebGLRenderingContext'];\r\n\r\n if (window.screen && typeof window.screen.width === 'number') {\r\n event['screenWidth/i'] = window.screen.height;\r\n event['screenHeight/i'] = window.screen.width;\r\n }\r\n\r\n return event;\r\n}\r\n\r\nlet glDescriber: WebGLDescriber = null;\r\nfunction getGlDecriber() {\r\n if (!glDescriber) {\r\n glDescriber = new WebGLDescriber(gl);\r\n }\r\n return glDescriber;\r\n}\r\n\r\nfunction putImageData(event: any, canvas: HTMLCanvasElement): void {\r\n let imgData = canvas.toDataURL();\r\n event['imgData/s'] = imgData;\r\n event['imgHash/i'] = murmurhash3_32_gc(imgData, 15); // 15 because I want\r\n}\r\n\r\nlet canvas2:HTMLCanvasElement = null;\r\nlet gl2:any = null;\r\nfunction getGl2Supported(): boolean {\r\n if (!gl2 && !canvas2) {\r\n canvas2 = document.createElement('canvas');\r\n gl2 = (canvas2.getContext(\"webgl2\", opts) || canvas.getContext(\"experimental-webgl2\", opts));\r\n }\r\n return !!gl2;\r\n}\r\n\r\nfunction putGlDescribingInfo(event: any): void {\r\n event['webGl2Supported/i'] = +getGl2Supported();\r\n \r\n let glDescriber = getGlDecriber();\r\n event['detectError/i'] = +glDescriber.detectError;\r\n event['videoCard/s'] = glDescriber.videoCard;\r\n event['videoVendor/s'] = glDescriber.videoVendor;\r\n event['supported/i'] = +glDescriber.supported;\r\n event['version/s'] = glDescriber.version;\r\n event['shadingVesion/s'] = glDescriber.shadingVesion;\r\n\r\n event['maxVertexAttributes/i'] = glDescriber.maxVertexAttributes;\r\n event['maxVertexUniformVectors/i'] = glDescriber.maxVertexUniformVectors;\r\n event['maxVertexTextureImageUnits/i'] = glDescriber.maxVertexTextureImageUnits;\r\n event['maxVaryingVectors/i'] = glDescriber.maxVaryingVectors;\r\n\r\n event['maxFragmentUniformVectors/i'] = glDescriber.maxFragmentUniformVectors;\r\n event['maxTextureImageUnits/i'] = glDescriber.maxTextureImageUnits;\r\n event['redBits/i'] = glDescriber.redBits;\r\n event['greenBits/i'] = glDescriber.greenBits;\r\n event['blueBits/i'] = glDescriber.blueBits;\r\n event['alphaBits/i'] = glDescriber.alphaBits;\r\n event['depthBits/i'] = glDescriber.depthBits;\r\n event['stencilBits/i'] = glDescriber.stencilBits;\r\n event['maxViewportDims0/i'] = glDescriber.maxViewportDims0;\r\n event['maxViewportDims1/i'] = glDescriber.maxViewportDims1;\r\n event['maxTextureSize/i'] = glDescriber.maxTextureSize;\r\n event['maxCubeMapTextureSize/i'] = glDescriber.maxCubeMapTextureSize;\r\n event['maxCombinedTextureImageUnits/i'] = glDescriber.maxCombinedTextureImageUnits;\r\n\r\n event['attributesAlpha/i'] = +glDescriber.attributesAlpha;\r\n event['attributesAntialias/i'] = +glDescriber.attributesAntialias;\r\n event['attributesDepth/i'] = +glDescriber.attributesDepth;\r\n event['attributesPremultipliedAlpha/i'] = +glDescriber.attributesPremultipliedAlpha;\r\n event['attributesPreserveDrawingBuffer/i'] = +glDescriber.attributesPreserveDrawingBuffer;\r\n event['attributesStencil/i'] = +glDescriber.attributesStencil;\r\n event['majorPerformanceCaveat/s'] = glDescriber.majorPerformanceCaveat;\r\n\r\n for (let extension of glDescriber.supportedExtensions) {\r\n event[extension + '/i'] = 1;\r\n }\r\n event['shaderPrecisionFormats/s'] = JSON.stringify(glDescriber.shaderPrecisionFormats);\r\n\r\n}\r\n\r\nlet uidCache: string;\r\nfunction getUID(): string {\r\n if (uidCache) {\r\n return uidCache;\r\n }\r\n if (isLocalStorageAvailable()) {\r\n if (localStorage.getItem('uid') === null) {\r\n uidCache = genUID();\r\n localStorage.setItem('uid', uidCache);\r\n return uidCache;\r\n } else {\r\n return localStorage.getItem('uid');\r\n }\r\n } else {\r\n uidCache = genUID();\r\n return uidCache;\r\n }\r\n}\r\n\r\nfunction genUID(): string {\r\n return '' + Math.floor(Math.random() * Math.pow(2, 52));\r\n}\r\n\r\n// any js api is shit! https://stackoverflow.com/a/16427747/590326\r\nfunction isLocalStorageAvailable(): boolean {\r\n var test = 'test';\r\n try {\r\n localStorage.setItem(test, test);\r\n localStorage.removeItem(test);\r\n return true;\r\n } catch (e) {\r\n return false;\r\n }\r\n}\r\n\r\nfunction sendEvent(event: any): any {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = () => {\r\n trace('state ' + xhr.readyState);\r\n if (xhr.readyState === 4) {\r\n trace(xhr.responseText + xhr.status);\r\n };\r\n }\r\n\r\n xhr.open('POST', 'http://cutiestat.cutiedie.com/event', true);\r\n xhr.setRequestHeader('Content-type', 'text/plain');\r\n xhr.send(JSON.stringify([event]));\r\n}\r\n\r\nfunction trace(str: string) {\r\n console.log(str);\r\n // let pre = document.createElement('pre');\r\n // pre.textContent = str;\r\n // document.body.appendChild(pre);\r\n}"]}