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

# Class: BaseShader

## Hierarchy

- [`Shader`](PropertyComponents.Shader.md)

  ↳ **`BaseShader`**

## Table of contents

### Constructors

- [constructor](BaseShader.md#constructor)

### Properties

- [\_fragment](BaseShader.md#_fragment)
- [\_gl](BaseShader.md#_gl)
- [\_image](BaseShader.md#_image)
- [\_name](BaseShader.md#_name)
- [\_owner](BaseShader.md#_owner)
- [\_program](BaseShader.md#_program)
- [\_segment](BaseShader.md#_segment)
- [\_vertex](BaseShader.md#_vertex)
- [banded\_face](BaseShader.md#banded_face)
- [blinn\_phong\_double\_face](BaseShader.md#blinn_phong_double_face)
- [blinn\_phong\_face](BaseShader.md#blinn_phong_face)
- [blinn\_phong\_face\_custom](BaseShader.md#blinn_phong_face_custom)
- [fina](BaseShader.md#fina)
- [half\_lambert\_face](BaseShader.md#half_lambert_face)
- [init](BaseShader.md#init)
- [isLog](BaseShader.md#islog)
- [lambert\_face](BaseShader.md#lambert_face)
- [pbr\_face](BaseShader.md#pbr_face)
- [phong\_face](BaseShader.md#phong_face)
- [typeName](BaseShader.md#typename)

### Accessors

- [customBlinnPhong](BaseShader.md#customblinnphong)
- [customEdgeFragment](BaseShader.md#customedgefragment)
- [customTextureSampling](BaseShader.md#customtexturesampling)
- [customVertexPos](BaseShader.md#customvertexpos)
- [fragment](BaseShader.md#fragment)
- [fragmentIn](BaseShader.md#fragmentin)
- [fragmentMain](BaseShader.md#fragmentmain)
- [fragmentUniform](BaseShader.md#fragmentuniform)
- [fragmentVoid](BaseShader.md#fragmentvoid)
- [gl](BaseShader.md#gl)
- [image](BaseShader.md#image)
- [name](BaseShader.md#name)
- [owner](BaseShader.md#owner)
- [program](BaseShader.md#program)
- [vertex](BaseShader.md#vertex)
- [vertexMain](BaseShader.md#vertexmain)
- [vertexOut](BaseShader.md#vertexout)
- [vertexUniform](BaseShader.md#vertexuniform)
- [vertexVoid](BaseShader.md#vertexvoid)

### Methods

- [\_executeFina](BaseShader.md#_executefina)
- [\_executeInit](BaseShader.md#_executeinit)
- [createBuffer](BaseShader.md#createbuffer)
- [createIndexBuffer](BaseShader.md#createindexbuffer)
- [createVertexArray](BaseShader.md#createvertexarray)
- [deserialize](BaseShader.md#deserialize)
- [getAttribLocation](BaseShader.md#getattriblocation)
- [getUniform](BaseShader.md#getuniform)
- [getUniformLocation](BaseShader.md#getuniformlocation)
- [initComponent](BaseShader.md#initcomponent)
- [renderVao](BaseShader.md#rendervao)
- [serialize](BaseShader.md#serialize)
- [setFloat](BaseShader.md#setfloat)
- [setFloat2v](BaseShader.md#setfloat2v)
- [setFloat3v](BaseShader.md#setfloat3v)
- [setFloat4v](BaseShader.md#setfloat4v)
- [setFloatv](BaseShader.md#setfloatv)
- [setInt](BaseShader.md#setint)
- [setMat4](BaseShader.md#setmat4)

## Constructors

### constructor

• **new BaseShader**(): [`BaseShader`](BaseShader.md)

#### Returns

[`BaseShader`](BaseShader.md)

#### Overrides

[Shader](PropertyComponents.Shader.md).[constructor](PropertyComponents.Shader.md#constructor)

## Properties

### \_fragment

• **\_fragment**: `string` = `null`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_fragment](PropertyComponents.Shader.md#_fragment)

___

### \_gl

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

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_gl](PropertyComponents.Shader.md#_gl)

___

### \_image

• **\_image**: `string` = `"../../images/shader.svg"`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_image](PropertyComponents.Shader.md#_image)

___

### \_name

• **\_name**: `string` = `"着色器"`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_name](PropertyComponents.Shader.md#_name)

___

### \_owner

• **\_owner**: [`RenderObject`](RenderObject.md) = `null`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_owner](PropertyComponents.Shader.md#_owner)

___

### \_program

• **\_program**: `WebGLProgram` = `null`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_program](PropertyComponents.Shader.md#_program)

___

### \_segment

• **\_segment**: [`Segment`](Segment.md) = `null`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_segment](PropertyComponents.Shader.md#_segment)

___

### \_vertex

• **\_vertex**: `string` = `null`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_vertex](PropertyComponents.Shader.md#_vertex)

___

### banded\_face

• **banded\_face**: `string`

___

### blinn\_phong\_double\_face

• **blinn\_phong\_double\_face**: `string`

___

### blinn\_phong\_face

• **blinn\_phong\_face**: `string`

___

### blinn\_phong\_face\_custom

• **blinn\_phong\_face\_custom**: `string`

___

### fina

• **fina**: [`List`](List.md)\<(`viewer`: [`Viewer`](Viewer.md), `args`: [`EventArgs`](EventArgs.md)) => `void`\>

#### Inherited from

[Shader](PropertyComponents.Shader.md).[fina](PropertyComponents.Shader.md#fina)

___

### half\_lambert\_face

• **half\_lambert\_face**: `string`

___

### init

• **init**: [`List`](List.md)\<(`viewer`: [`Viewer`](Viewer.md), `args`: [`EventArgs`](EventArgs.md)) => `void`\>

#### Inherited from

[Shader](PropertyComponents.Shader.md).[init](PropertyComponents.Shader.md#init)

___

### isLog

• **isLog**: `boolean` = `false`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[isLog](PropertyComponents.Shader.md#islog)

___

### lambert\_face

• **lambert\_face**: `string`

___

### pbr\_face

• **pbr\_face**: `string`

___

### phong\_face

• **phong\_face**: `string`

___

### typeName

• **typeName**: `string` = `"Shader"`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[typeName](PropertyComponents.Shader.md#typename)

## Accessors

### customBlinnPhong

• `get` **customBlinnPhong**(): `string`

#### Returns

`string`

___

### customEdgeFragment

• `get` **customEdgeFragment**(): `string`

#### Returns

`string`

___

### customTextureSampling

• `get` **customTextureSampling**(): `string`

#### Returns

`string`

___

### customVertexPos

• `get` **customVertexPos**(): `string`

#### Returns

`string`

___

### fragment

• `get` **fragment**(): `string`

#### Returns

`string`

#### Overrides

Shader.fragment

___

### fragmentIn

• `get` **fragmentIn**(): `string`

#### Returns

`string`

___

### fragmentMain

• `get` **fragmentMain**(): `string`

#### Returns

`string`

___

### fragmentUniform

• `get` **fragmentUniform**(): `string`

#### Returns

`string`

___

### fragmentVoid

• `get` **fragmentVoid**(): `string`

#### Returns

`string`

___

### gl

• `get` **gl**(): `WebGLRenderingContext`

#### Returns

`WebGLRenderingContext`

#### Inherited from

Shader.gl

___

### image

• `get` **image**(): `string`

#### Returns

`string`

#### Inherited from

Shader.image

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

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `string` |

#### Returns

`void`

#### Inherited from

Shader.image

___

### name

• `get` **name**(): `string`

#### Returns

`string`

#### Inherited from

Shader.name

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

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `string` |

#### Returns

`void`

#### Inherited from

Shader.name

___

### owner

• `get` **owner**(): [`RenderObject`](RenderObject.md)

#### Returns

[`RenderObject`](RenderObject.md)

#### Inherited from

Shader.owner

___

### program

• `get` **program**(): `WebGLProgram`

#### Returns

`WebGLProgram`

#### Inherited from

Shader.program

___

### vertex

• `get` **vertex**(): `string`

#### Returns

`string`

#### Overrides

Shader.vertex

___

### vertexMain

• `get` **vertexMain**(): `string`

#### Returns

`string`

___

### vertexOut

• `get` **vertexOut**(): `string`

#### Returns

`string`

___

### vertexUniform

• `get` **vertexUniform**(): `string`

#### Returns

`string`

___

### vertexVoid

• `get` **vertexVoid**(): `string`

#### Returns

`string`

## Methods

### \_executeFina

▸ **_executeFina**(`viewer`, `args`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `viewer` | [`Viewer`](Viewer.md) |
| `args` | [`EventArgs`](EventArgs.md) |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_executeFina](PropertyComponents.Shader.md#_executefina)

___

### \_executeInit

▸ **_executeInit**(`viewer`, `args`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `viewer` | [`Viewer`](Viewer.md) |
| `args` | [`EventArgs`](EventArgs.md) |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[_executeInit](PropertyComponents.Shader.md#_executeinit)

___

### createBuffer

▸ **createBuffer**(`attrName`, `data`, `attrSize`): `WebGLBuffer`

#### Parameters

| Name | Type |
| :------ | :------ |
| `attrName` | `string` |
| `data` | `BufferSource` |
| `attrSize` | `number` |

#### Returns

`WebGLBuffer`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[createBuffer](PropertyComponents.Shader.md#createbuffer)

___

### createIndexBuffer

▸ **createIndexBuffer**(`indices`): `WebGLBuffer`

#### Parameters

| Name | Type |
| :------ | :------ |
| `indices` | `BufferSource` |

#### Returns

`WebGLBuffer`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[createIndexBuffer](PropertyComponents.Shader.md#createindexbuffer)

___

### createVertexArray

▸ **createVertexArray**(`vaoInfo`): [`vertexArrayObjectInfo`](vertexArrayObjectInfo.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `vaoInfo` | `any` |

#### Returns

[`vertexArrayObjectInfo`](vertexArrayObjectInfo.md)

#### Inherited from

[Shader](PropertyComponents.Shader.md).[createVertexArray](PropertyComponents.Shader.md#createvertexarray)

___

### deserialize

▸ **deserialize**(`obj`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `obj` | `any` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[deserialize](PropertyComponents.Shader.md#deserialize)

___

### getAttribLocation

▸ **getAttribLocation**(`name`): `number`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |

#### Returns

`number`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[getAttribLocation](PropertyComponents.Shader.md#getattriblocation)

___

### getUniform

▸ **getUniform**(`name`): `Promise`\<`any`\>

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |

#### Returns

`Promise`\<`any`\>

#### Inherited from

[Shader](PropertyComponents.Shader.md).[getUniform](PropertyComponents.Shader.md#getuniform)

___

### getUniformLocation

▸ **getUniformLocation**(`name`): `WebGLUniformLocation`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |

#### Returns

`WebGLUniformLocation`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[getUniformLocation](PropertyComponents.Shader.md#getuniformlocation)

___

### initComponent

▸ **initComponent**(): `void`

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[initComponent](PropertyComponents.Shader.md#initcomponent)

___

### renderVao

▸ **renderVao**(`vaoInfo`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `vaoInfo` | [`vertexArrayObjectInfo`](vertexArrayObjectInfo.md) |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[renderVao](PropertyComponents.Shader.md#rendervao)

___

### serialize

▸ **serialize**(): `any`

#### Returns

`any`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[serialize](PropertyComponents.Shader.md#serialize)

___

### setFloat

▸ **setFloat**(`name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `number` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[setFloat](PropertyComponents.Shader.md#setfloat)

___

### setFloat2v

▸ **setFloat2v**(`name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `Float32Array` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[setFloat2v](PropertyComponents.Shader.md#setfloat2v)

___

### setFloat3v

▸ **setFloat3v**(`name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `Float32Array` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[setFloat3v](PropertyComponents.Shader.md#setfloat3v)

___

### setFloat4v

▸ **setFloat4v**(`name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `Float32Array` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[setFloat4v](PropertyComponents.Shader.md#setfloat4v)

___

### setFloatv

▸ **setFloatv**(`name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `Float32Array` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[setFloatv](PropertyComponents.Shader.md#setfloatv)

___

### setInt

▸ **setInt**(`name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `number` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[setInt](PropertyComponents.Shader.md#setint)

___

### setMat4

▸ **setMat4**(`name`, `value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `name` | `string` |
| `value` | `Float32Array` |

#### Returns

`void`

#### Inherited from

[Shader](PropertyComponents.Shader.md).[setMat4](PropertyComponents.Shader.md#setmat4)
