webgl: add BlendEquationSeparate and GetParameter4i

`GetParameter4i` can be used to retrieve the current scissor rect, or
the curent viewport, which was previously impossible.

Also adds `BlendEquationSeparate` which seemed to be missing.

Also removes an instance of `do`.
This commit is contained in:
Laytan Laats
2025-03-12 18:39:57 +01:00
parent d3b1aaad18
commit b76fd84084
3 changed files with 23 additions and 11 deletions
+12 -10
View File
@@ -46,16 +46,17 @@ foreign webgl {
IsExtensionSupported :: proc(name: string) -> bool ---
ActiveTexture :: proc(x: Enum) ---
AttachShader :: proc(program: Program, shader: Shader) ---
BindAttribLocation :: proc(program: Program, index: i32, name: string) ---
BindBuffer :: proc(target: Enum, buffer: Buffer) ---
BindFramebuffer :: proc(target: Enum, framebuffer: Framebuffer) ---
BindTexture :: proc(target: Enum, texture: Texture) ---
BlendColor :: proc(red, green, blue, alpha: f32) ---
BlendEquation :: proc(mode: Enum) ---
BlendFunc :: proc(sfactor, dfactor: Enum) ---
BlendFuncSeparate :: proc(srcRGB, dstRGB, srcAlpha, dstAlpha: Enum) ---
ActiveTexture :: proc(x: Enum) ---
AttachShader :: proc(program: Program, shader: Shader) ---
BindAttribLocation :: proc(program: Program, index: i32, name: string) ---
BindBuffer :: proc(target: Enum, buffer: Buffer) ---
BindFramebuffer :: proc(target: Enum, framebuffer: Framebuffer) ---
BindTexture :: proc(target: Enum, texture: Texture) ---
BlendColor :: proc(red, green, blue, alpha: f32) ---
BlendEquation :: proc(mode: Enum) ---
BlendEquationSeparate :: proc(modeRGB: Enum, modeAlpha: Enum) ---
BlendFunc :: proc(sfactor, dfactor: Enum) ---
BlendFuncSeparate :: proc(srcRGB, dstRGB, srcAlpha, dstAlpha: Enum) ---
BufferData :: proc(target: Enum, size: int, data: rawptr, usage: Enum) ---
BufferSubData :: proc(target: Enum, offset: uintptr, size: int, data: rawptr) ---
@@ -113,6 +114,7 @@ foreign webgl {
GetVertexAttribOffset :: proc(index: i32, pname: Enum) -> uintptr ---
GetProgramParameter :: proc(program: Program, pname: Enum) -> i32 ---
GetParameter :: proc(pname: Enum) -> i32 ---
GetParameter4i :: proc(pname: Enum, v0, v1, v2, v4: ^i32) ---
Hint :: proc(target: Enum, mode: Enum) ---
+1 -1
View File
@@ -29,7 +29,7 @@ CreateProgramFromStrings :: proc(vs_sources, fs_sources: []string) -> (program:
}
program = CreateProgram()
defer if !ok do DeleteProgram(program)
defer if !ok { DeleteProgram(program) }
AttachShader(program, vs)
AttachShader(program, fs)