add supporting of various uniform type

This commit is contained in:
monoid 2021-10-09 20:13:45 +09:00
parent 400ade6f22
commit 2058e610cc
2 changed files with 25 additions and 1 deletions

View File

@ -14,6 +14,7 @@
"@emotion/styled": "^11.3.0", "@emotion/styled": "^11.3.0",
"@mui/material": "^5.0.1", "@mui/material": "^5.0.1",
"@types/react": "^17.0.24", "@types/react": "^17.0.24",
"gl-matrix": "^3.3.0",
"parcel-bundler": "^1.12.5", "parcel-bundler": "^1.12.5",
"react": "^17.0.2", "react": "^17.0.2",
"react-dom": "^17.0.2" "react-dom": "^17.0.2"

View File

@ -1,3 +1,4 @@
import { mat4, vec2, vec3, vec4 } from "gl-matrix";
import * as util from "./gl_util"; import * as util from "./gl_util";
export class VertexBuffer{ export class VertexBuffer{
@ -88,10 +89,32 @@ export class GLProgram{
use(gl:WebGL2RenderingContext):void{ use(gl:WebGL2RenderingContext):void{
gl.useProgram(this.program); gl.useProgram(this.program);
} }
setUniform4fv(gl:WebGL2RenderingContext,name:string,v:number[]){
setUniform1i(gl:WebGL2RenderingContext,name:string,v:number){
const loc = this.getUniformLocation(gl,name);
gl.uniform1i(loc,v);
}
setUniform1f(gl:WebGL2RenderingContext,name:string,v:number){
const loc = this.getUniformLocation(gl,name);
gl.uniform1f(loc,v);
}
setUniform2fv(gl:WebGL2RenderingContext,name:string,v:vec2){
const loc = this.getUniformLocation(gl,name);
gl.uniform2fv(loc,v);
}
setUniform3fv(gl:WebGL2RenderingContext,name:string,v:vec3){
const loc = this.getUniformLocation(gl,name);
gl.uniform3fv(loc,v);
}
setUniform4fv(gl:WebGL2RenderingContext,name:string,v:vec4){
const loc = this.getUniformLocation(gl,name); const loc = this.getUniformLocation(gl,name);
gl.uniform4fv(loc,v); gl.uniform4fv(loc,v);
} }
setUniformMat4f(gl:WebGL2RenderingContext,name:string,v:mat4){
const loc = this.getUniformLocation(gl,name);
gl.uniformMatrix4fv(loc,false,v);
}
unuse(gl:WebGL2RenderingContext):void{ unuse(gl:WebGL2RenderingContext):void{
gl.useProgram(null); gl.useProgram(null);
} }