Trait WebGLRenderingContextMethods 
Source pub trait WebGLRenderingContextMethods<D>{
Show 143 methods
    // Required methods
    fn Canvas(&self) -> HTMLCanvasElementOrOffscreenCanvas<D>;
    fn DrawingBufferWidth(&self) -> i32;
    fn DrawingBufferHeight(&self) -> i32;
    fn GetContextAttributes(&self) -> Option<WebGLContextAttributes>;
    fn IsContextLost(&self) -> bool;
    fn GetSupportedExtensions(&self) -> Option<Vec<DOMString>>;
    fn GetExtension(
        &self,
        cx: JSContext,
        name: DOMString,
    ) -> Option<NonNull<JSObject>>;
    fn ActiveTexture(&self, texture: u32);
    fn AttachShader(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
        shader: &<D as DomTypes>::WebGLShader,
    );
    fn BindAttribLocation(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
        index: u32,
        name: DOMString,
    );
    fn BindBuffer(
        &self,
        target: u32,
        buffer: Option<&<D as DomTypes>::WebGLBuffer>,
    );
    fn BindFramebuffer(
        &self,
        target: u32,
        framebuffer: Option<&<D as DomTypes>::WebGLFramebuffer>,
    );
    fn BindRenderbuffer(
        &self,
        target: u32,
        renderbuffer: Option<&<D as DomTypes>::WebGLRenderbuffer>,
    );
    fn BindTexture(
        &self,
        target: u32,
        texture: Option<&<D as DomTypes>::WebGLTexture>,
    );
    fn BlendColor(&self, red: f32, green: f32, blue: f32, alpha: f32);
    fn BlendEquation(&self, mode: u32);
    fn BlendEquationSeparate(&self, modeRGB: u32, modeAlpha: u32);
    fn BlendFunc(&self, sfactor: u32, dfactor: u32);
    fn BlendFuncSeparate(
        &self,
        srcRGB: u32,
        dstRGB: u32,
        srcAlpha: u32,
        dstAlpha: u32,
    );
    fn CheckFramebufferStatus(&self, target: u32) -> u32;
    fn Clear(&self, mask: u32);
    fn ClearColor(&self, red: f32, green: f32, blue: f32, alpha: f32);
    fn ClearDepth(&self, depth: f32);
    fn ClearStencil(&self, s: i32);
    fn ColorMask(&self, red: bool, green: bool, blue: bool, alpha: bool);
    fn CompileShader(&self, shader: &<D as DomTypes>::WebGLShader);
    fn CopyTexImage2D(
        &self,
        target: u32,
        level: i32,
        internalformat: u32,
        x: i32,
        y: i32,
        width: i32,
        height: i32,
        border: i32,
    );
    fn CopyTexSubImage2D(
        &self,
        target: u32,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        x: i32,
        y: i32,
        width: i32,
        height: i32,
    );
    fn CreateBuffer(&self) -> Option<Root<Dom<<D as DomTypes>::WebGLBuffer>>>;
    fn CreateFramebuffer(
        &self,
    ) -> Option<Root<Dom<<D as DomTypes>::WebGLFramebuffer>>>;
    fn CreateProgram(&self) -> Option<Root<Dom<<D as DomTypes>::WebGLProgram>>>;
    fn CreateRenderbuffer(
        &self,
    ) -> Option<Root<Dom<<D as DomTypes>::WebGLRenderbuffer>>>;
    fn CreateShader(
        &self,
        type_: u32,
    ) -> Option<Root<Dom<<D as DomTypes>::WebGLShader>>>;
    fn CreateTexture(&self) -> Option<Root<Dom<<D as DomTypes>::WebGLTexture>>>;
    fn CullFace(&self, mode: u32);
    fn DeleteBuffer(&self, buffer: Option<&<D as DomTypes>::WebGLBuffer>);
    fn DeleteFramebuffer(
        &self,
        framebuffer: Option<&<D as DomTypes>::WebGLFramebuffer>,
    );
    fn DeleteProgram(&self, program: Option<&<D as DomTypes>::WebGLProgram>);
    fn DeleteRenderbuffer(
        &self,
        renderbuffer: Option<&<D as DomTypes>::WebGLRenderbuffer>,
    );
    fn DeleteShader(&self, shader: Option<&<D as DomTypes>::WebGLShader>);
    fn DeleteTexture(&self, texture: Option<&<D as DomTypes>::WebGLTexture>);
    fn DepthFunc(&self, func: u32);
    fn DepthMask(&self, flag: bool);
    fn DepthRange(&self, zNear: f32, zFar: f32);
    fn DetachShader(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
        shader: &<D as DomTypes>::WebGLShader,
    );
    fn Disable(&self, cap: u32);
    fn DisableVertexAttribArray(&self, index: u32);
    fn DrawArrays(&self, mode: u32, first: i32, count: i32);
    fn DrawElements(&self, mode: u32, count: i32, type_: u32, offset: i64);
    fn Enable(&self, cap: u32);
    fn EnableVertexAttribArray(&self, index: u32);
    fn Finish(&self);
    fn Flush(&self);
    fn FramebufferRenderbuffer(
        &self,
        target: u32,
        attachment: u32,
        renderbuffertarget: u32,
        renderbuffer: Option<&<D as DomTypes>::WebGLRenderbuffer>,
    );
    fn FramebufferTexture2D(
        &self,
        target: u32,
        attachment: u32,
        textarget: u32,
        texture: Option<&<D as DomTypes>::WebGLTexture>,
        level: i32,
    );
    fn FrontFace(&self, mode: u32);
    fn GenerateMipmap(&self, target: u32);
    fn GetActiveAttrib(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
        index: u32,
    ) -> Option<Root<Dom<<D as DomTypes>::WebGLActiveInfo>>>;
    fn GetActiveUniform(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
        index: u32,
    ) -> Option<Root<Dom<<D as DomTypes>::WebGLActiveInfo>>>;
    fn GetAttachedShaders(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
    ) -> Option<Vec<Root<Dom<<D as DomTypes>::WebGLShader>>>>;
    fn GetAttribLocation(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
        name: DOMString,
    ) -> i32;
    fn GetBufferParameter(
        &self,
        cx: JSContext,
        target: u32,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetParameter(
        &self,
        cx: JSContext,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetError(&self) -> u32;
    fn GetFramebufferAttachmentParameter(
        &self,
        cx: JSContext,
        target: u32,
        attachment: u32,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetProgramParameter(
        &self,
        cx: JSContext,
        program: &<D as DomTypes>::WebGLProgram,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetProgramInfoLog(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
    ) -> Option<DOMString>;
    fn GetRenderbufferParameter(
        &self,
        cx: JSContext,
        target: u32,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetShaderParameter(
        &self,
        cx: JSContext,
        shader: &<D as DomTypes>::WebGLShader,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetShaderPrecisionFormat(
        &self,
        shadertype: u32,
        precisiontype: u32,
    ) -> Option<Root<Dom<<D as DomTypes>::WebGLShaderPrecisionFormat>>>;
    fn GetShaderInfoLog(
        &self,
        shader: &<D as DomTypes>::WebGLShader,
    ) -> Option<DOMString>;
    fn GetShaderSource(
        &self,
        shader: &<D as DomTypes>::WebGLShader,
    ) -> Option<DOMString>;
    fn GetTexParameter(
        &self,
        cx: JSContext,
        target: u32,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetUniform(
        &self,
        cx: JSContext,
        program: &<D as DomTypes>::WebGLProgram,
        location: &<D as DomTypes>::WebGLUniformLocation,
        rval: MutableHandle<'_, Value>,
    );
    fn GetUniformLocation(
        &self,
        program: &<D as DomTypes>::WebGLProgram,
        name: DOMString,
    ) -> Option<Root<Dom<<D as DomTypes>::WebGLUniformLocation>>>;
    fn GetVertexAttrib(
        &self,
        cx: JSContext,
        index: u32,
        pname: u32,
        rval: MutableHandle<'_, Value>,
    );
    fn GetVertexAttribOffset(&self, index: u32, pname: u32) -> i64;
    fn Hint(&self, target: u32, mode: u32);
    fn IsBuffer(&self, buffer: Option<&<D as DomTypes>::WebGLBuffer>) -> bool;
    fn IsEnabled(&self, cap: u32) -> bool;
    fn IsFramebuffer(
        &self,
        framebuffer: Option<&<D as DomTypes>::WebGLFramebuffer>,
    ) -> bool;
    fn IsProgram(&self, program: Option<&<D as DomTypes>::WebGLProgram>) -> bool;
    fn IsRenderbuffer(
        &self,
        renderbuffer: Option<&<D as DomTypes>::WebGLRenderbuffer>,
    ) -> bool;
    fn IsShader(&self, shader: Option<&<D as DomTypes>::WebGLShader>) -> bool;
    fn IsTexture(&self, texture: Option<&<D as DomTypes>::WebGLTexture>) -> bool;
    fn LineWidth(&self, width: f32);
    fn LinkProgram(&self, program: &<D as DomTypes>::WebGLProgram);
    fn PixelStorei(&self, pname: u32, param: i32);
    fn PolygonOffset(&self, factor: f32, units: f32);
    fn RenderbufferStorage(
        &self,
        target: u32,
        internalformat: u32,
        width: i32,
        height: i32,
    );
    fn SampleCoverage(&self, value: f32, invert: bool);
    fn Scissor(&self, x: i32, y: i32, width: i32, height: i32);
    fn ShaderSource(
        &self,
        shader: &<D as DomTypes>::WebGLShader,
        source: DOMString,
    );
    fn StencilFunc(&self, func: u32, ref_: i32, mask: u32);
    fn StencilFuncSeparate(&self, face: u32, func: u32, ref_: i32, mask: u32);
    fn StencilMask(&self, mask: u32);
    fn StencilMaskSeparate(&self, face: u32, mask: u32);
    fn StencilOp(&self, fail: u32, zfail: u32, zpass: u32);
    fn StencilOpSeparate(&self, face: u32, fail: u32, zfail: u32, zpass: u32);
    fn TexParameterf(&self, target: u32, pname: u32, param: f32);
    fn TexParameteri(&self, target: u32, pname: u32, param: i32);
    fn Uniform1f(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: f32,
    );
    fn Uniform2f(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: f32,
        y: f32,
    );
    fn Uniform3f(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: f32,
        y: f32,
        z: f32,
    );
    fn Uniform4f(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: f32,
        y: f32,
        z: f32,
        w: f32,
    );
    fn Uniform1i(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: i32,
    );
    fn Uniform2i(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: i32,
        y: i32,
    );
    fn Uniform3i(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: i32,
        y: i32,
        z: i32,
    );
    fn Uniform4i(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        x: i32,
        y: i32,
        z: i32,
        w: i32,
    );
    fn UseProgram(&self, program: Option<&<D as DomTypes>::WebGLProgram>);
    fn ValidateProgram(&self, program: &<D as DomTypes>::WebGLProgram);
    fn VertexAttrib1f(&self, indx: u32, x: f32);
    fn VertexAttrib2f(&self, indx: u32, x: f32, y: f32);
    fn VertexAttrib3f(&self, indx: u32, x: f32, y: f32, z: f32);
    fn VertexAttrib4f(&self, indx: u32, x: f32, y: f32, z: f32, w: f32);
    fn VertexAttrib1fv(
        &self,
        indx: u32,
        values: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn VertexAttrib2fv(
        &self,
        indx: u32,
        values: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn VertexAttrib3fv(
        &self,
        indx: u32,
        values: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn VertexAttrib4fv(
        &self,
        indx: u32,
        values: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn VertexAttribPointer(
        &self,
        indx: u32,
        size: i32,
        type_: u32,
        normalized: bool,
        stride: i32,
        offset: i64,
    );
    fn Viewport(&self, x: i32, y: i32, width: i32, height: i32);
    fn MakeXRCompatible(&self, _can_gc: CanGc) -> Rc<<D as DomTypes>::Promise>;
    fn BufferData(&self, target: u32, size: i64, usage: u32);
    fn BufferData_(
        &self,
        target: u32,
        data: Option<ArrayBufferViewOrArrayBuffer>,
        usage: u32,
    );
    fn BufferSubData(
        &self,
        target: u32,
        offset: i64,
        data: ArrayBufferViewOrArrayBuffer,
    );
    fn CompressedTexImage2D(
        &self,
        target: u32,
        level: i32,
        internalformat: u32,
        width: i32,
        height: i32,
        border: i32,
        data: CustomAutoRooterGuard<'_, TypedArray<ArrayBufferViewU8, *mut JSObject>>,
    );
    fn CompressedTexSubImage2D(
        &self,
        target: u32,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        width: i32,
        height: i32,
        format: u32,
        data: CustomAutoRooterGuard<'_, TypedArray<ArrayBufferViewU8, *mut JSObject>>,
    );
    fn ReadPixels(
        &self,
        x: i32,
        y: i32,
        width: i32,
        height: i32,
        format: u32,
        type_: u32,
        pixels: CustomAutoRooterGuard<'_, Option<TypedArray<ArrayBufferViewU8, *mut JSObject>>>,
    );
    fn TexImage2D(
        &self,
        target: u32,
        level: i32,
        internalformat: i32,
        width: i32,
        height: i32,
        border: i32,
        format: u32,
        type_: u32,
        pixels: CustomAutoRooterGuard<'_, Option<TypedArray<ArrayBufferViewU8, *mut JSObject>>>,
    ) -> Result<(), Error>;
    fn TexImage2D_(
        &self,
        target: u32,
        level: i32,
        internalformat: i32,
        format: u32,
        type_: u32,
        source: ImageBitmapOrImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement<D>,
    ) -> Result<(), Error>;
    fn TexSubImage2D(
        &self,
        target: u32,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        width: i32,
        height: i32,
        format: u32,
        type_: u32,
        pixels: CustomAutoRooterGuard<'_, Option<TypedArray<ArrayBufferViewU8, *mut JSObject>>>,
    ) -> Result<(), Error>;
    fn TexSubImage2D_(
        &self,
        target: u32,
        level: i32,
        xoffset: i32,
        yoffset: i32,
        format: u32,
        type_: u32,
        source: ImageBitmapOrImageDataOrHTMLImageElementOrHTMLCanvasElementOrHTMLVideoElement<D>,
    ) -> Result<(), Error>;
    fn Uniform1fv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn Uniform2fv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn Uniform3fv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn Uniform4fv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn Uniform1iv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Int32ArrayOrLongSequence,
    );
    fn Uniform2iv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Int32ArrayOrLongSequence,
    );
    fn Uniform3iv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Int32ArrayOrLongSequence,
    );
    fn Uniform4iv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        v: Int32ArrayOrLongSequence,
    );
    fn UniformMatrix2fv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        transpose: bool,
        value: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn UniformMatrix3fv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        transpose: bool,
        value: Float32ArrayOrUnrestrictedFloatSequence,
    );
    fn UniformMatrix4fv(
        &self,
        location: Option<&<D as DomTypes>::WebGLUniformLocation>,
        transpose: bool,
        value: Float32ArrayOrUnrestrictedFloatSequence,
    );
 }