Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CL3D.Renderer.prototype.draw2DOval = function (j, h, a, o, b, e) {
- if (a <= 0 || o <= 0 || this.width == 0 || this.height == 0) {
- return
- }
- var m = true;
- if (e == null || e == false) {
- m = false
- }
- var s = Math.abs(a / 2) + Math.abs(o / 2);
- s = Math.max(s, 12) & ~3;
- var d = this.gl;
- d.enableVertexAttribArray(0);
- d.disableVertexAttribArray(1);
- d.disableVertexAttribArray(2);
- d.disableVertexAttribArray(3);
- d.disableVertexAttribArray(4);
- h = this.height - h;
- var n = 2 / this.width;
- var l = 2 / this.height;
- j = (j * n) - 1;
- h = (h * l) - 1;
- a *= n;
- o *= l;
- var rx = a / 2;
- var ry = o / 2;
- j += rx;
- h -= ry;
- var g = new WebGLFloatArray( (s+1) * 3 + 3 );
- var k = new WebGLUnsignedShortArray(s * 3);
- var i = s * 3;
- g[0] = j;
- g[1] = h;
- g[2] = 0;
- var gix=1;
- for (var ic=0; ic<=s; ic++) {
- var ang = (ic * 360.0 / s)
- var dx = Math.cos(ang * 0.0175) * rx + j;
- var dy = Math.sin(ang * 0.0175) * ry + h;
- g[gix*3+0]=dx;
- g[gix*3+1]=dy;
- g[gix*3+2]=0;
- gix++;
- }
- gix=0;
- for (var ic=0; ic<s; ic++) {
- k[gix*3+0]=0;
- k[gix*3+1]=ic+1;
- k[gix*3+2]=ic+2;
- gix++;
- }
- var f = d.createBuffer();
- d.bindBuffer(d.ARRAY_BUFFER, f);
- d.bufferData(d.ARRAY_BUFFER, g, d.STATIC_DRAW);
- d.vertexAttribPointer(0, 3, d.FLOAT, false, 0, 0);
- var c = d.createBuffer();
- d.bindBuffer(d.ELEMENT_ARRAY_BUFFER, c);
- d.bufferData(d.ELEMENT_ARRAY_BUFFER, k, d.STATIC_DRAW);
- this.currentGLProgram = this.Program2DDrawingColorOnly;
- d.useProgram(this.currentGLProgram);
- d.uniform4f(d.getUniformLocation(this.currentGLProgram, "vColor"), CL3D.getRed(b) / 255, CL3D.getGreen(b) / 255, CL3D.getBlue(b) / 255, m ? (CL3D.getAlpha(b) / 255) : 1);
- d.depthMask(false);
- d.disable(d.DEPTH_TEST);
- if (!m) {
- d.disable(d.BLEND)
- } else {
- d.enable(d.BLEND);
- d.blendFunc(d.SRC_ALPHA, d.ONE_MINUS_SRC_ALPHA)
- }
- d.drawElements(d.TRIANGLES, i, d.UNSIGNED_SHORT, 0);
- d.deleteBuffer(f);
- d.deleteBuffer(c)
- };
- CL3D.Renderer.prototype.draw2DLine = function (j, h, a, o, b, e) {
- if (this.width == 0 || this.height == 0) {
- return
- }
- var m = true;
- if (e == null || e == false) {
- m = false
- }
- var d = this.gl;
- d.enableVertexAttribArray(0);
- d.disableVertexAttribArray(1);
- d.disableVertexAttribArray(2);
- d.disableVertexAttribArray(3);
- d.disableVertexAttribArray(4);
- h = this.height - h;
- o = this.height - o;
- var n = 2 / this.width;
- var l = 2 / this.height;
- j = (j * n) - 1;
- h = (h * l) - 1;
- a = (a * n) - 1;
- o = (o * l) - 1;
- var g = new WebGLFloatArray( 6 );
- var k = new WebGLUnsignedShortArray(2);
- var i = 2;
- g[0] = j;
- g[1] = h;
- g[2] = 0;
- g[3] = a;
- g[4] = o;
- g[5] = 0;
- k[0] = 0;
- k[1] = 1;
- var f = d.createBuffer();
- d.bindBuffer(d.ARRAY_BUFFER, f);
- d.bufferData(d.ARRAY_BUFFER, g, d.STATIC_DRAW);
- d.vertexAttribPointer(0, 3, d.FLOAT, false, 0, 0);
- var c = d.createBuffer();
- d.bindBuffer(d.ELEMENT_ARRAY_BUFFER, c);
- d.bufferData(d.ELEMENT_ARRAY_BUFFER, k, d.STATIC_DRAW);
- this.currentGLProgram = this.Program2DDrawingColorOnly;
- d.useProgram(this.currentGLProgram);
- d.uniform4f(d.getUniformLocation(this.currentGLProgram, "vColor"), CL3D.getRed(b) / 255, CL3D.getGreen(b) / 255, CL3D.getBlue(b) / 255, m ? (CL3D.getAlpha(b) / 255) : 1);
- d.depthMask(false);
- d.disable(d.DEPTH_TEST);
- if (!m) {
- d.disable(d.BLEND)
- } else {
- d.enable(d.BLEND);
- d.blendFunc(d.SRC_ALPHA, d.ONE_MINUS_SRC_ALPHA)
- }
- d.drawElements(d.LINES, i, d.UNSIGNED_SHORT, 0);
- d.deleteBuffer(f);
- d.deleteBuffer(c)
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement