[gs-longan](../README.md) / [PropertyComponents](../modules/PropertyComponents.md) / Shader

# Class: Shader

[PropertyComponents](../modules/PropertyComponents.md).Shader

## Hierarchy

- [`PropertyComponent`](PropertyComponent.md)

  ↳ **`Shader`**

  ↳↳ [`BaseShader`](BaseShader.md)

## Table of contents

### Constructors

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

### Properties

- [\_fragment](PropertyComponents.Shader.md#_fragment)
- [\_gl](PropertyComponents.Shader.md#_gl)
- [\_image](PropertyComponents.Shader.md#_image)
- [\_name](PropertyComponents.Shader.md#_name)
- [\_owner](PropertyComponents.Shader.md#_owner)
- [\_program](PropertyComponents.Shader.md#_program)
- [\_segment](PropertyComponents.Shader.md#_segment)
- [\_vertex](PropertyComponents.Shader.md#_vertex)
- [fina](PropertyComponents.Shader.md#fina)
- [init](PropertyComponents.Shader.md#init)
- [isLog](PropertyComponents.Shader.md#islog)
- [typeName](PropertyComponents.Shader.md#typename)

### Accessors

- [fragment](PropertyComponents.Shader.md#fragment)
- [gl](PropertyComponents.Shader.md#gl)
- [image](PropertyComponents.Shader.md#image)
- [name](PropertyComponents.Shader.md#name)
- [owner](PropertyComponents.Shader.md#owner)
- [program](PropertyComponents.Shader.md#program)
- [vertex](PropertyComponents.Shader.md#vertex)

### Methods

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

## Constructors

### constructor

• **new Shader**(): [`Shader`](PropertyComponents.Shader.md)

#### Returns

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

#### Overrides

[PropertyComponent](PropertyComponent.md).[constructor](PropertyComponent.md#constructor)

## Properties

### \_fragment

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

___

### \_gl

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

___

### \_image

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

___

### \_name

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

#### Overrides

[PropertyComponent](PropertyComponent.md).[_name](PropertyComponent.md#_name)

___

### \_owner

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

#### Inherited from

[PropertyComponent](PropertyComponent.md).[_owner](PropertyComponent.md#_owner)

___

### \_program

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

___

### \_segment

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

#### Inherited from

[PropertyComponent](PropertyComponent.md).[_segment](PropertyComponent.md#_segment)

___

### \_vertex

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

___

### fina

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

#### Inherited from

[PropertyComponent](PropertyComponent.md).[fina](PropertyComponent.md#fina)

___

### init

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

#### Inherited from

[PropertyComponent](PropertyComponent.md).[init](PropertyComponent.md#init)

___

### isLog

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

___

### typeName

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

#### Overrides

[PropertyComponent](PropertyComponent.md).[typeName](PropertyComponent.md#typename)

## Accessors

### fragment

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

#### Returns

`string`

___

### gl

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

#### Returns

`WebGLRenderingContext`

___

### image

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

#### Returns

`string`

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

#### Parameters

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

#### Returns

`void`

___

### name

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

#### Returns

`string`

#### Overrides

PropertyComponent.name

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

#### Parameters

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

#### Returns

`void`

#### Overrides

PropertyComponent.name

___

### owner

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

#### Returns

[`RenderObject`](RenderObject.md)

#### Inherited from

PropertyComponent.owner

___

### program

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

#### Returns

`WebGLProgram`

___

### vertex

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

#### Returns

`string`

## Methods

### \_executeFina

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

#### Parameters

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

#### Returns

`void`

#### Inherited from

[PropertyComponent](PropertyComponent.md).[_executeFina](PropertyComponent.md#_executefina)

___

### \_executeInit

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

#### Parameters

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

#### Returns

`void`

#### Inherited from

[PropertyComponent](PropertyComponent.md).[_executeInit](PropertyComponent.md#_executeinit)

___

### createBuffer

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

#### Parameters

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

#### Returns

`WebGLBuffer`

___

### createIndexBuffer

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

#### Parameters

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

#### Returns

`WebGLBuffer`

___

### createVertexArray

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

#### Parameters

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

#### Returns

[`vertexArrayObjectInfo`](vertexArrayObjectInfo.md)

___

### deserialize

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

#### Parameters

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

#### Returns

`void`

#### Inherited from

[PropertyComponent](PropertyComponent.md).[deserialize](PropertyComponent.md#deserialize)

___

### getAttribLocation

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

#### Parameters

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

#### Returns

`number`

___

### getUniform

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

#### Parameters

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

#### Returns

`Promise`\<`any`\>

___

### getUniformLocation

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

#### Parameters

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

#### Returns

`WebGLUniformLocation`

___

### initComponent

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

#### Returns

`void`

___

### renderVao

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

#### Parameters

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

#### Returns

`void`

___

### serialize

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

#### Returns

`any`

#### Inherited from

[PropertyComponent](PropertyComponent.md).[serialize](PropertyComponent.md#serialize)

___

### setFloat

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

#### Parameters

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

#### Returns

`void`

___

### setFloat2v

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

#### Parameters

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

#### Returns

`void`

___

### setFloat3v

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

#### Parameters

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

#### Returns

`void`

___

### setFloat4v

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

#### Parameters

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

#### Returns

`void`

___

### setFloatv

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

#### Parameters

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

#### Returns

`void`

___

### setInt

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

#### Parameters

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

#### Returns

`void`

___

### setMat4

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

#### Parameters

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

#### Returns

`void`
