draw from index
This commit is contained in:
		
							parent
							
								
									d0252f94c9
								
							
						
					
					
						commit
						66326bca06
					
				
					 1 changed files with 25 additions and 15 deletions
				
			
		
							
								
								
									
										36
									
								
								index.ts
									
										
									
									
									
								
							
							
						
						
									
										36
									
								
								index.ts
									
										
									
									
									
								
							| 
						 | 
					@ -41,25 +41,35 @@ class Renderer{
 | 
				
			||||||
            else throw e;
 | 
					            else throw e;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    init(){
 | 
				
			||||||
 | 
					        const gl = this.gl;
 | 
				
			||||||
 | 
					        const position = [
 | 
				
			||||||
 | 
					            -0.5,-0.5,
 | 
				
			||||||
 | 
					            0.5,-0.5,
 | 
				
			||||||
 | 
					            0.5,0.5,
 | 
				
			||||||
 | 
					            -0.5,0.5
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        const index = [
 | 
				
			||||||
 | 
					            0,1,2,
 | 
				
			||||||
 | 
					            2,3,0
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        const positionBuffer = gl.createBuffer();
 | 
				
			||||||
 | 
					        gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);
 | 
				
			||||||
 | 
					        gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(position),gl.STATIC_DRAW);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const indexBuffer = gl.createBuffer();
 | 
				
			||||||
 | 
					        gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER,indexBuffer);
 | 
				
			||||||
 | 
					        gl.bufferData(gl.ELEMENT_ARRAY_BUFFER,new Uint16Array(index),gl.STATIC_DRAW);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    draw(){
 | 
					    draw(){
 | 
				
			||||||
        const gl = this.gl;
 | 
					        const gl = this.gl;
 | 
				
			||||||
        gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
 | 
					        gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
 | 
				
			||||||
        const position = [
 | 
					 | 
				
			||||||
            -0.5,-0.5,
 | 
					 | 
				
			||||||
            0.0,0.5,
 | 
					 | 
				
			||||||
            0.5,-0.5
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        let positionBuffer = gl.createBuffer();
 | 
					 | 
				
			||||||
        gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        gl.enableVertexAttribArray(0);
 | 
					        gl.enableVertexAttribArray(0);
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        gl.vertexAttribPointer(0,2,gl.FLOAT,false,0,0);
 | 
					        gl.vertexAttribPointer(0,2,gl.FLOAT,false,0,0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const floatPosition = new Float32Array(position);
 | 
					        gl.drawElements(gl.TRIANGLES,6,gl.UNSIGNED_SHORT,0);
 | 
				
			||||||
        gl.bufferData(gl.ARRAY_BUFFER,floatPosition,gl.STATIC_DRAW);
 | 
					 | 
				
			||||||
        gl.drawArrays(gl.TRIANGLES,0,3);
 | 
					 | 
				
			||||||
        gl.deleteBuffer(positionBuffer);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,7 +77,7 @@ function main(){
 | 
				
			||||||
    const canvas = findCanvas();
 | 
					    const canvas = findCanvas();
 | 
				
			||||||
    const gl = getGLContext(canvas);
 | 
					    const gl = getGLContext(canvas);
 | 
				
			||||||
    const renderer = new Renderer(gl);
 | 
					    const renderer = new Renderer(gl);
 | 
				
			||||||
 | 
					    renderer.init()
 | 
				
			||||||
    window.addEventListener("resize",(e)=>{
 | 
					    window.addEventListener("resize",(e)=>{
 | 
				
			||||||
        e.preventDefault();
 | 
					        e.preventDefault();
 | 
				
			||||||
        canvas.width = document.body.clientWidth;
 | 
					        canvas.width = document.body.clientWidth;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue