luma.gl/docs/api-reference/core/shader-cache.md
2019-03-19 07:37:37 -07:00

52 lines
1.3 KiB
Markdown

# ShaderCache (Experimental)
A cache of compiled shaders, keyed by shader source strings. Compilation of long shaders can be time consuming. By using a `ShaderCache`, the application can ensure that each shader is only compiled once.
## Usage
```js
import {_ShaderCache as ShaderCache} from '@luma.gl/core';
```
## Methods
### constructor
Creates a new `ShaderCache` object.
`new ShaderCache(gl)`
Note that only objects from a single context can be cached, any attempts to use this cache with other gl contexts will result in exceptions.
### delete
`ShaderCache.delete()`
Hint to delete any unused cached shaders (currently a no-op).
### getVertexShader
Returns a compiled `VertexShader` object corresponding to the supplied GLSL source code string, if possible from cache.
`ShaderCache.getVertexShader(gl, source)`
* `gl` {WebGLRenderingContext} - gl context
* `source` {String} - Source code for shader
returns {VertexShader} - a compiled vertex shader
### getFragmentShader
Returns a compiled `FragmentShader` object corresponding to the supplied GLSL source code string, if possible from cache.
`ShaderCache.getFragmentShader(gl, source)`
* `gl` {WebGLRenderingContext} - gl context
* `source` {String} - Source code for shader
returns {FragmentShader} - a compiled fragment shader