[gs-longan](../README.md) / WebGL2RenderContext

# Class: WebGL2RenderContext

## Implements

- `IRenderContext`

## Table of contents

### Constructors

- [constructor](WebGL2RenderContext.md#constructor)

### Properties

- [\_gl](WebGL2RenderContext.md#_gl)
- [cameraBlock](WebGL2RenderContext.md#camerablock)
- [cuttingBlock](WebGL2RenderContext.md#cuttingblock)
- [lightBlock](WebGL2RenderContext.md#lightblock)
- [materialBlock](WebGL2RenderContext.md#materialblock)
- [systemBlock](WebGL2RenderContext.md#systemblock)
- [transformBlock](WebGL2RenderContext.md#transformblock)
- [uniformBlocks](WebGL2RenderContext.md#uniformblocks)

### Accessors

- [defaultRenderTarget](WebGL2RenderContext.md#defaultrendertarget)
- [height](WebGL2RenderContext.md#height)
- [width](WebGL2RenderContext.md#width)

### Methods

- [attachDepthStencilTexture](WebGL2RenderContext.md#attachdepthstenciltexture)
- [attachDepthTexture](WebGL2RenderContext.md#attachdepthtexture)
- [attachTextures](WebGL2RenderContext.md#attachtextures)
- [beginTransformFeedback](WebGL2RenderContext.md#begintransformfeedback)
- [bindVertexBuffer](WebGL2RenderContext.md#bindvertexbuffer)
- [clearColor](WebGL2RenderContext.md#clearcolor)
- [clearRenderTarget](WebGL2RenderContext.md#clearrendertarget)
- [clearStencilBuffer](WebGL2RenderContext.md#clearstencilbuffer)
- [copyRenderTarget](WebGL2RenderContext.md#copyrendertarget)
- [copyToTextureArray](WebGL2RenderContext.md#copytotexturearray)
- [createByte3Texture](WebGL2RenderContext.md#createbyte3texture)
- [createByte4Texture](WebGL2RenderContext.md#createbyte4texture)
- [createByte4TextureArray](WebGL2RenderContext.md#createbyte4texturearray)
- [createByte4TextureArray1](WebGL2RenderContext.md#createbyte4texturearray1)
- [createByte4TextureArray2](WebGL2RenderContext.md#createbyte4texturearray2)
- [createCubeMap](WebGL2RenderContext.md#createcubemap)
- [createDepthStencilTexture](WebGL2RenderContext.md#createdepthstenciltexture)
- [createDepthTexture](WebGL2RenderContext.md#createdepthtexture)
- [createFloat2Texture](WebGL2RenderContext.md#createfloat2texture)
- [createFloat3Texture](WebGL2RenderContext.md#createfloat3texture)
- [createFloat4Texture](WebGL2RenderContext.md#createfloat4texture)
- [createFloatTexture](WebGL2RenderContext.md#createfloattexture)
- [createGeometry](WebGL2RenderContext.md#creategeometry)
- [createGeometryPartable](WebGL2RenderContext.md#creategeometrypartable)
- [createRenderTarget](WebGL2RenderContext.md#createrendertarget)
- [createShaderProgram](WebGL2RenderContext.md#createshaderprogram)
- [createShadowTexture](WebGL2RenderContext.md#createshadowtexture)
- [createTransformFeedback](WebGL2RenderContext.md#createtransformfeedback)
- [createUniformBlock](WebGL2RenderContext.md#createuniformblock)
- [createVertexBuffer](WebGL2RenderContext.md#createvertexbuffer)
- [destroyGeometry](WebGL2RenderContext.md#destroygeometry)
- [destroyProgram](WebGL2RenderContext.md#destroyprogram)
- [destroyRenderTarget](WebGL2RenderContext.md#destroyrendertarget)
- [destroyTexture](WebGL2RenderContext.md#destroytexture)
- [destroyTransformFeedback](WebGL2RenderContext.md#destroytransformfeedback)
- [destroyUniformBlock](WebGL2RenderContext.md#destroyuniformblock)
- [drawGeometry](WebGL2RenderContext.md#drawgeometry)
- [drawSubGeometry](WebGL2RenderContext.md#drawsubgeometry)
- [endTransformFeedback](WebGL2RenderContext.md#endtransformfeedback)
- [flush](WebGL2RenderContext.md#flush)
- [getGeometry](WebGL2RenderContext.md#getgeometry)
- [getImageFormat](WebGL2RenderContext.md#getimageformat)
- [getImageType](WebGL2RenderContext.md#getimagetype)
- [isRegularImageSize](WebGL2RenderContext.md#isregularimagesize)
- [readPixels](WebGL2RenderContext.md#readpixels)
- [resetProgram](WebGL2RenderContext.md#resetprogram)
- [resize](WebGL2RenderContext.md#resize)
- [setBlend](WebGL2RenderContext.md#setblend)
- [setBlendSeparate](WebGL2RenderContext.md#setblendseparate)
- [setBlockUniform](WebGL2RenderContext.md#setblockuniform)
- [setCullFace](WebGL2RenderContext.md#setcullface)
- [setDepthFunction](WebGL2RenderContext.md#setdepthfunction)
- [setDepthRange](WebGL2RenderContext.md#setdepthrange)
- [setDepthTest](WebGL2RenderContext.md#setdepthtest)
- [setDepthWrite](WebGL2RenderContext.md#setdepthwrite)
- [setFrontFace](WebGL2RenderContext.md#setfrontface)
- [setProgram](WebGL2RenderContext.md#setprogram)
- [setProgramCubemap](WebGL2RenderContext.md#setprogramcubemap)
- [setProgramTexture](WebGL2RenderContext.md#setprogramtexture)
- [setProgramTextureArray](WebGL2RenderContext.md#setprogramtexturearray)
- [setProgramVariableFloat](WebGL2RenderContext.md#setprogramvariablefloat)
- [setProgramVariableFloatArray](WebGL2RenderContext.md#setprogramvariablefloatarray)
- [setProgramVariableIVec2](WebGL2RenderContext.md#setprogramvariableivec2)
- [setProgramVariableIVec3](WebGL2RenderContext.md#setprogramvariableivec3)
- [setProgramVariableIVec4](WebGL2RenderContext.md#setprogramvariableivec4)
- [setProgramVariableInt](WebGL2RenderContext.md#setprogramvariableint)
- [setProgramVariableIntArray](WebGL2RenderContext.md#setprogramvariableintarray)
- [setProgramVariableMat2](WebGL2RenderContext.md#setprogramvariablemat2)
- [setProgramVariableMat3](WebGL2RenderContext.md#setprogramvariablemat3)
- [setProgramVariableMat4](WebGL2RenderContext.md#setprogramvariablemat4)
- [setProgramVariableUInt](WebGL2RenderContext.md#setprogramvariableuint)
- [setProgramVariableVec2](WebGL2RenderContext.md#setprogramvariablevec2)
- [setProgramVariableVec3](WebGL2RenderContext.md#setprogramvariablevec3)
- [setProgramVariableVec3Array](WebGL2RenderContext.md#setprogramvariablevec3array)
- [setProgramVariableVec4](WebGL2RenderContext.md#setprogramvariablevec4)
- [setProgramVariableVec4Array](WebGL2RenderContext.md#setprogramvariablevec4array)
- [setRenderTarget](WebGL2RenderContext.md#setrendertarget)
- [setScissorTest](WebGL2RenderContext.md#setscissortest)
- [setStencil](WebGL2RenderContext.md#setstencil)
- [setStencilTest](WebGL2RenderContext.md#setstenciltest)
- [setViewport](WebGL2RenderContext.md#setviewport)
- [updateGeometry](WebGL2RenderContext.md#updategeometry)
- [updateTexture](WebGL2RenderContext.md#updatetexture)

## Constructors

### constructor

• **new WebGL2RenderContext**(`gl`): [`WebGL2RenderContext`](WebGL2RenderContext.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `gl` | `WebGL2RenderingContext` |

#### Returns

[`WebGL2RenderContext`](WebGL2RenderContext.md)

## Properties

### \_gl

• **\_gl**: `WebGL2RenderingContext` = `null`

___

### cameraBlock

• **cameraBlock**: `UniformBlock` = `null`

___

### cuttingBlock

• **cuttingBlock**: `UniformBlock` = `null`

___

### lightBlock

• **lightBlock**: `UniformBlock` = `null`

___

### materialBlock

• **materialBlock**: `UniformBlock` = `null`

___

### systemBlock

• **systemBlock**: `UniformBlock` = `null`

___

### transformBlock

• **transformBlock**: `UniformBlock` = `null`

___

### uniformBlocks

• **uniformBlocks**: `UniformBlockCollection`

## Accessors

### defaultRenderTarget

• `get` **defaultRenderTarget**(): `WebGLFramebuffer`

#### Returns

`WebGLFramebuffer`

• `set` **defaultRenderTarget**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `WebGLFramebuffer` |

#### Returns

`void`

___

### height

• `get` **height**(): `number`

#### Returns

`number`

#### Implementation of

IRenderContext.height

___

### width

• `get` **width**(): `number`

#### Returns

`number`

#### Implementation of

IRenderContext.width

## Methods

### attachDepthStencilTexture

▸ **attachDepthStencilTexture**(`target`, `texture`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `target` | `WebGLFramebuffer` |
| `texture` | `WebGLTexture` |

#### Returns

`void`

___

### attachDepthTexture

▸ **attachDepthTexture**(`target`, `texture`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `target` | `WebGLFramebuffer` |
| `texture` | `WebGLTexture` |

#### Returns

`void`

___

### attachTextures

▸ **attachTextures**(`target`, `textures`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `target` | `WebGLFramebuffer` |
| `textures` | `WebGLTexture`[] |

#### Returns

`void`

___

### beginTransformFeedback

▸ **beginTransformFeedback**(`transformFeedback`, `primitive?`): `void`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `transformFeedback` | [`TransformFeedback`](../interfaces/TransformFeedback.md) | `undefined` |
| `primitive` | `number` | `WebGL2RenderingContext.POINTS` |

#### Returns

`void`

___

### bindVertexBuffer

▸ **bindVertexBuffer**(`vbo`, `data`, `usage`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `vbo` | `WebGLBuffer` |
| `data` | `any` |
| `usage` | `number` |

#### Returns

`void`

___

### clearColor

▸ **clearColor**(`r`, `g`, `b`, `a`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `r` | `any` |
| `g` | `any` |
| `b` | `any` |
| `a` | `any` |

#### Returns

`void`

___

### clearRenderTarget

▸ **clearRenderTarget**(): `void`

#### Returns

`void`

___

### clearStencilBuffer

▸ **clearStencilBuffer**(): `void`

#### Returns

`void`

___

### copyRenderTarget

▸ **copyRenderTarget**(`from`, `to`, `width`, `height`, `mask?`, `filter?`): `void`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `from` | `WebGLFramebuffer` | `undefined` |
| `to` | `WebGLFramebuffer` | `undefined` |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `mask` | `BitField` | `BitField.ColorBufferBit` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |

#### Returns

`void`

___

### copyToTextureArray

▸ **copyToTextureArray**(`target`, `textures`, `textureArray`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `target` | `WebGLFramebuffer` |
| `textures` | `WebGLTexture`[] |
| `textureArray` | `WebGLTexture` |

#### Returns

`void`

___

### createByte3Texture

▸ **createByte3Texture**(`width`, `height`, `filter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createByte4Texture

▸ **createByte4Texture**(`width`, `height`, `filter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createByte4TextureArray

▸ **createByte4TextureArray**(`width`, `height`, `depth`, `filter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `depth` | `number` | `undefined` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createByte4TextureArray1

▸ **createByte4TextureArray1**(`width`, `height`, `depth`, `minfilter?`, `magfilter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `depth` | `number` | `undefined` |
| `minfilter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `magfilter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createByte4TextureArray2

▸ **createByte4TextureArray2**(`width`, `height`, `depth`, `data`, `minfilter?`, `magfilter?`, `modeS?`, `modeT?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `depth` | `number` | `undefined` |
| `data` | `any` | `undefined` |
| `minfilter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `magfilter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `modeS` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |
| `modeT` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createCubeMap

▸ **createCubeMap**(`ktx`): `WebGLTexture`

#### Parameters

| Name | Type |
| :------ | :------ |
| `ktx` | `KtxInfo` |

#### Returns

`WebGLTexture`

___

### createDepthStencilTexture

▸ **createDepthStencilTexture**(`width`, `height`): `WebGLTexture`

#### Parameters

| Name | Type |
| :------ | :------ |
| `width` | `number` |
| `height` | `number` |

#### Returns

`WebGLTexture`

___

### createDepthTexture

▸ **createDepthTexture**(`width`, `height`): `WebGLTexture`

#### Parameters

| Name | Type |
| :------ | :------ |
| `width` | `number` |
| `height` | `number` |

#### Returns

`WebGLTexture`

___

### createFloat2Texture

▸ **createFloat2Texture**(`width`, `height`, `filter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createFloat3Texture

▸ **createFloat3Texture**(`width`, `height`, `filter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createFloat4Texture

▸ **createFloat4Texture**(`width`, `height`, `filter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createFloatTexture

▸ **createFloatTexture**(`width`, `height`, `filter?`, `mode?`): `WebGLTexture`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `width` | `number` | `undefined` |
| `height` | `number` | `undefined` |
| `filter` | [`TextureFiltering`](../enums/TextureFiltering.md) | `TextureFiltering.Nearest` |
| `mode` | [`TextureMode`](../enums/TextureMode.md) | `TextureMode.Repeat` |

#### Returns

`WebGLTexture`

___

### createGeometry

▸ **createGeometry**(`mesh`, `type?`, `inVbos?`): [`Geometry`](../interfaces/Interface.Geometry.md)

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `mesh` | [`Mesh`](../interfaces/Mesh.md) | `undefined` |
| `type` | `number` | `WebGL2RenderingContext.TRIANGLES` |
| `inVbos?` | `WebGLBuffer` \| `WebGLBuffer`[] | `undefined` |

#### Returns

[`Geometry`](../interfaces/Interface.Geometry.md)

___

### createGeometryPartable

▸ **createGeometryPartable**(`mesh`, `blockSize`, `viewer`, `type?`): [`WorkPromise`](WorkPromise.md)\<[`Geometry`](../interfaces/Interface.Geometry.md)\>

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `mesh` | [`Mesh`](../interfaces/Mesh.md) | `undefined` |
| `blockSize` | `number` | `undefined` |
| `viewer` | [`Viewer`](Viewer.md) | `undefined` |
| `type` | `number` | `WebGL2RenderingContext.TRIANGLES` |

#### Returns

[`WorkPromise`](WorkPromise.md)\<[`Geometry`](../interfaces/Interface.Geometry.md)\>

___

### createRenderTarget

▸ **createRenderTarget**(): `WebGLFramebuffer`

#### Returns

`WebGLFramebuffer`

___

### createShaderProgram

▸ **createShaderProgram**(`vs`, `fs`, `feedbackVars?`): [`ShaderProgram`](../interfaces/ShaderProgram.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `vs` | `string` |
| `fs` | `string` |
| `feedbackVars?` | `string`[] |

#### Returns

[`ShaderProgram`](../interfaces/ShaderProgram.md)

___

### createShadowTexture

▸ **createShadowTexture**(`width`, `height`): `WebGLTexture`

#### Parameters

| Name | Type |
| :------ | :------ |
| `width` | `number` |
| `height` | `number` |

#### Returns

`WebGLTexture`

___

### createTransformFeedback

▸ **createTransformFeedback**(`capacities`): [`TransformFeedback`](../interfaces/TransformFeedback.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `capacities` | `number`[] \| `WebGLBuffer`[] |

#### Returns

[`TransformFeedback`](../interfaces/TransformFeedback.md)

___

### createUniformBlock

▸ **createUniformBlock**(`block`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `block` | `UniformBlock` |

#### Returns

`void`

___

### createVertexBuffer

▸ **createVertexBuffer**(`data`, `usage`): `WebGLBuffer`

#### Parameters

| Name | Type |
| :------ | :------ |
| `data` | `any` |
| `usage` | `number` |

#### Returns

`WebGLBuffer`

___

### destroyGeometry

▸ **destroyGeometry**(`geometry`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `geometry` | [`Geometry`](../interfaces/Interface.Geometry.md) |

#### Returns

`void`

___

### destroyProgram

▸ **destroyProgram**(`program`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |

#### Returns

`void`

___

### destroyRenderTarget

▸ **destroyRenderTarget**(`target`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `target` | `WebGLFramebuffer` |

#### Returns

`void`

___

### destroyTexture

▸ **destroyTexture**(`texture`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `texture` | `WebGLTexture` |

#### Returns

`void`

___

### destroyTransformFeedback

▸ **destroyTransformFeedback**(`feedback`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `feedback` | [`TransformFeedback`](../interfaces/TransformFeedback.md) |

#### Returns

`void`

___

### destroyUniformBlock

▸ **destroyUniformBlock**(`block`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `block` | `UniformBlock` |

#### Returns

`void`

___

### drawGeometry

▸ **drawGeometry**(`geometry`, `offset?`, `count?`, `instanceCount?`): `void`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `geometry` | [`Geometry`](../interfaces/Interface.Geometry.md) | `undefined` |
| `offset` | `number` | `0` |
| `count?` | `number` | `undefined` |
| `instanceCount?` | `number` | `undefined` |

#### Returns

`void`

___

### drawSubGeometry

▸ **drawSubGeometry**(`geometry`, `start`, `count`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `geometry` | [`Geometry`](../interfaces/Interface.Geometry.md) |
| `start` | `number` |
| `count` | `number` |

#### Returns

`void`

___

### endTransformFeedback

▸ **endTransformFeedback**(): `void`

#### Returns

`void`

___

### flush

▸ **flush**(): `void`

#### Returns

`void`

___

### getGeometry

▸ **getGeometry**(`geometry`, `mesh`, `names?`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `geometry` | [`Geometry`](../interfaces/Interface.Geometry.md) |
| `mesh` | [`Mesh`](../interfaces/Mesh.md) |
| `names?` | `string`[] |

#### Returns

`void`

___

### getImageFormat

▸ **getImageFormat**(`image`): `number`

#### Parameters

| Name | Type |
| :------ | :------ |
| `image` | `Object` |
| `image.channels` | `number` |
| `image.data` | `ArrayBuffer` |
| `image.height` | `number` |
| `image.isHdr` | `number` |
| `image.width` | `number` |

#### Returns

`number`

___

### getImageType

▸ **getImageType**(`image`): `number`

#### Parameters

| Name | Type |
| :------ | :------ |
| `image` | `Object` |
| `image.channels` | `number` |
| `image.data` | `ArrayBuffer` |
| `image.height` | `number` |
| `image.isHdr` | `number` |
| `image.width` | `number` |

#### Returns

`number`

___

### isRegularImageSize

▸ **isRegularImageSize**(`width`, `height`): `boolean`

#### Parameters

| Name | Type |
| :------ | :------ |
| `width` | `number` |
| `height` | `number` |

#### Returns

`boolean`

___

### readPixels

▸ **readPixels**(`target`, `values`, `x`, `y`, `width`, `height`, `format`, `type`, `slot`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `target` | `WebGLFramebuffer` |
| `values` | `ArrayBufferView` |
| `x` | `number` |
| `y` | `number` |
| `width` | `number` |
| `height` | `number` |
| `format` | `number` |
| `type` | `number` |
| `slot` | `number` |

#### Returns

`void`

___

### resetProgram

▸ **resetProgram**(): `void`

#### Returns

`void`

___

### resize

▸ **resize**(`width`, `height`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `width` | `number` |
| `height` | `number` |

#### Returns

`void`

#### Implementation of

IRenderContext.resize

___

### setBlend

▸ **setBlend**(`type`, `sfactor?`, `dfactor?`): `void`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `type` | [`BlendType`](../enums/BlendType.md) | `undefined` |
| `sfactor` | `number` | `WebGL2RenderingContext.SRC_ALPHA` |
| `dfactor` | `number` | `WebGL2RenderingContext.ONE_MINUS_SRC_ALPHA` |

#### Returns

`void`

___

### setBlendSeparate

▸ **setBlendSeparate**(`type`, `srcRGB?`, `dstRGB?`, `srcAlpha?`, `dstAlpha?`): `void`

#### Parameters

| Name | Type | Default value |
| :------ | :------ | :------ |
| `type` | [`BlendType`](../enums/BlendType.md) | `undefined` |
| `srcRGB` | `number` | `WebGL2RenderingContext.SRC_ALPHA` |
| `dstRGB` | `number` | `WebGL2RenderingContext.ONE_MINUS_SRC_ALPHA` |
| `srcAlpha` | `number` | `WebGL2RenderingContext.ONE` |
| `dstAlpha` | `number` | `WebGL2RenderingContext.ONE` |

#### Returns

`void`

___

### setBlockUniform

▸ **setBlockUniform**(`blockName`, `uniformName`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `blockName` | `string` |
| `uniformName` | `string` |
| `value` | `Float32Array` \| `Int32Array` |

#### Returns

`void`

___

### setCullFace

▸ **setCullFace**(`type`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `type` | [`CullFaceType`](../enums/CullFaceType.md) |

#### Returns

`void`

___

### setDepthFunction

▸ **setDepthFunction**(`func`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `func` | [`CompareFunction`](../enums/CompareFunction.md) |

#### Returns

`void`

___

### setDepthRange

▸ **setDepthRange**(`zNear`, `zFar`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `zNear` | `number` |
| `zFar` | `number` |

#### Returns

`void`

___

### setDepthTest

▸ **setDepthTest**(`flag`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `flag` | `boolean` |

#### Returns

`void`

___

### setDepthWrite

▸ **setDepthWrite**(`flag`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `flag` | `boolean` |

#### Returns

`void`

___

### setFrontFace

▸ **setFrontFace**(`mode`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `mode` | [`FaceMode`](../enums/FaceMode.md) |

#### Returns

`void`

___

### setProgram

▸ **setProgram**(`program`): `boolean`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |

#### Returns

`boolean`

___

### setProgramCubemap

▸ **setProgramCubemap**(`program`, `name`, `texture`, `slot`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `texture` | `WebGLTexture` |
| `slot` | `number` |

#### Returns

`void`

___

### setProgramTexture

▸ **setProgramTexture**(`program`, `name`, `texture`, `slot`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `texture` | `WebGLTexture` |
| `slot` | `number` |

#### Returns

`void`

___

### setProgramTextureArray

▸ **setProgramTextureArray**(`program`, `name`, `texture`, `slot`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `texture` | `WebGLTexture` |
| `slot` | `number` |

#### Returns

`void`

___

### setProgramVariableFloat

▸ **setProgramVariableFloat**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `number` |

#### Returns

`void`

___

### setProgramVariableFloatArray

▸ **setProgramVariableFloatArray**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `FloatArray` |

#### Returns

`void`

___

### setProgramVariableIVec2

▸ **setProgramVariableIVec2**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `ivec2` |

#### Returns

`void`

___

### setProgramVariableIVec3

▸ **setProgramVariableIVec3**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `ivec3` |

#### Returns

`void`

___

### setProgramVariableIVec4

▸ **setProgramVariableIVec4**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `ivec4` |

#### Returns

`void`

___

### setProgramVariableInt

▸ **setProgramVariableInt**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `number` |

#### Returns

`void`

___

### setProgramVariableIntArray

▸ **setProgramVariableIntArray**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `IntArray` |

#### Returns

`void`

___

### setProgramVariableMat2

▸ **setProgramVariableMat2**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `mat2` |

#### Returns

`void`

___

### setProgramVariableMat3

▸ **setProgramVariableMat3**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `mat3` |

#### Returns

`void`

___

### setProgramVariableMat4

▸ **setProgramVariableMat4**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `mat4` |

#### Returns

`void`

___

### setProgramVariableUInt

▸ **setProgramVariableUInt**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `number` |

#### Returns

`void`

___

### setProgramVariableVec2

▸ **setProgramVariableVec2**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `vec2` |

#### Returns

`void`

___

### setProgramVariableVec3

▸ **setProgramVariableVec3**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `vec3` |

#### Returns

`void`

___

### setProgramVariableVec3Array

▸ **setProgramVariableVec3Array**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `FloatArray` |

#### Returns

`void`

___

### setProgramVariableVec4

▸ **setProgramVariableVec4**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `vec4` |

#### Returns

`void`

___

### setProgramVariableVec4Array

▸ **setProgramVariableVec4Array**(`program`, `name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `program` | [`ShaderProgram`](../interfaces/ShaderProgram.md) |
| `name` | `string` |
| `value` | `FloatArray` |

#### Returns

`void`

___

### setRenderTarget

▸ **setRenderTarget**(`target`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `target` | `WebGLFramebuffer` |

#### Returns

`void`

___

### setScissorTest

▸ **setScissorTest**(`flag`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `flag` | `boolean` |

#### Returns

`void`

___

### setStencil

▸ **setStencil**(`func`, `value`, `mask`, `fail`, `zFail`, `zPass`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `func` | [`CompareFunction`](../enums/CompareFunction.md) |
| `value` | `number` |
| `mask` | `number` |
| `fail` | [`StencilOperation`](../enums/StencilOperation.md) |
| `zFail` | [`StencilOperation`](../enums/StencilOperation.md) |
| `zPass` | [`StencilOperation`](../enums/StencilOperation.md) |

#### Returns

`void`

___

### setStencilTest

▸ **setStencilTest**(`flag`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `flag` | `boolean` |

#### Returns

`void`

___

### setViewport

▸ **setViewport**(`x`, `y`, `width`, `height`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `x` | `number` |
| `y` | `number` |
| `width` | `number` |
| `height` | `number` |

#### Returns

`void`

___

### updateGeometry

▸ **updateGeometry**(`geometry`, `vertexData`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `geometry` | [`Geometry`](../interfaces/Interface.Geometry.md) |
| `vertexData` | [`VertexData`](../README.md#vertexdata) \| [`VertexData`](../README.md#vertexdata)[] |

#### Returns

`void`

___

### updateTexture

▸ **updateTexture**(`texture`, `width`, `height`, `format`, `type`, `data`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `texture` | `WebGLTexture` |
| `width` | `number` |
| `height` | `number` |
| `format` | `number` |
| `type` | `number` |
| `data` | `ArrayBufferView` |

#### Returns

`void`
