mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
webgl: Add multiple WebGL calls (activeTexture + blend*)
* activeTexture * blendColor * blendFunc * blendFuncSeparate * blendEquation * blendEquationSeparate Blocked on gleam.
This commit is contained in:
parent
c33776a600
commit
ff568ecc90
6 changed files with 199 additions and 61 deletions
|
@ -138,6 +138,37 @@ impl<'a> WebGLRenderingContextMethods for JSRef<'a, WebGLRenderingContext> {
|
|||
0 as *mut JSObject
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
|
||||
fn ActiveTexture(self, texture: u32) {
|
||||
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::ActiveTexture(texture))).unwrap();
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
|
||||
fn BlendColor(self, r: f32, g: f32, b: f32, a: f32) {
|
||||
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendColor(r, g, b, a))).unwrap();
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
|
||||
fn BlendEquation(self, mode: u32) {
|
||||
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendEquation(mode))).unwrap();
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
|
||||
fn BlendEquationSeparate(self, mode_rgb: u32, mode_alpha: u32) {
|
||||
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendEquationSeparate(mode_rgb, mode_alpha))).unwrap();
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
|
||||
fn BlendFunc(self, src_factor: u32, dest_factor: u32) {
|
||||
self.renderer.send(CanvasMsg::WebGL(CanvasWebGLMsg::BlendFunc(src_factor, dest_factor))).unwrap();
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
|
||||
fn BlendFuncSeparate(self, src_rgb: u32, dest_rgb: u32, src_alpha: u32, dest_alpha: u32) {
|
||||
self.renderer.send(
|
||||
CanvasMsg::WebGL(CanvasWebGLMsg::BlendFuncSeparate(src_rgb, dest_rgb, src_alpha, dest_alpha))).unwrap();
|
||||
}
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
|
||||
fn AttachShader(self, program: Option<JSRef<WebGLProgram>>, shader: Option<JSRef<WebGLShader>>) {
|
||||
let program_id = match program {
|
||||
|
|
|
@ -27,7 +27,10 @@ impl WebGLShaderPrecisionFormat {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn new(global: GlobalRef, range_min: i32, range_max: i32, precision: i32) -> Temporary<WebGLShaderPrecisionFormat> {
|
||||
pub fn new(global: GlobalRef,
|
||||
range_min: i32,
|
||||
range_max: i32,
|
||||
precision: i32) -> Temporary<WebGLShaderPrecisionFormat> {
|
||||
reflect_dom_object(
|
||||
box WebGLShaderPrecisionFormat::new_inherited(range_min, range_max, precision),
|
||||
global,
|
||||
|
|
|
@ -466,19 +466,19 @@ interface WebGLRenderingContextBase
|
|||
//sequence<DOMString>? getSupportedExtensions();
|
||||
object? getExtension(DOMString name);
|
||||
|
||||
//void activeTexture(GLenum texture);
|
||||
void activeTexture(GLenum texture);
|
||||
void attachShader(WebGLProgram? program, WebGLShader? shader);
|
||||
//void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name);
|
||||
void bindBuffer(GLenum target, WebGLBuffer? buffer);
|
||||
void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);
|
||||
void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);
|
||||
void bindTexture(GLenum target, WebGLTexture? texture);
|
||||
//void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
|
||||
//void blendEquation(GLenum mode);
|
||||
//void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
|
||||
//void blendFunc(GLenum sfactor, GLenum dfactor);
|
||||
//void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB,
|
||||
// GLenum srcAlpha, GLenum dstAlpha);
|
||||
void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
|
||||
void blendEquation(GLenum mode);
|
||||
void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
|
||||
void blendFunc(GLenum sfactor, GLenum dfactor);
|
||||
void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB,
|
||||
GLenum srcAlpha, GLenum dstAlpha);
|
||||
|
||||
// typedef (ArrayBuffer or ArrayBufferView) BufferDataSource;
|
||||
//void bufferData(GLenum target, GLsizeiptr size, GLenum usage);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue