ShaderCache

new SuperMap3D.ShaderCache()

Methods

getShaderProgram(options)ShaderProgram

根据 GLSL 顶点和片段着色器源和属性位置,从缓存中返回着色器程序,或创建并缓存一个新的着色器程序。
Name Type Description
options Object 具有以下属性的对象:
Name Type Description
vertexShaderSource String | ShaderSource 顶点着色器的 GLSL 源。
fragmentShaderSource String | ShaderSource 片段着色器的 GLSL 源。
attributeLocations Object 顶点着色器的属性输入索引。
Returns:
缓存或新创建的着色器程序。

replaceShaderProgram(options)ShaderProgram

从缓存中返回着色器程序,或根据 GLSL 顶点和片段着色器源和属性位置创建并缓存一个新的着色器程序。

它与 ShaderCache#getShaderProgram 的区别在于,它是用来替换着色器程序的现有引用,而着色器程序是作为第一个参数传递的。

Name Type Description
options Object 具有以下属性的对象:
Name Type Description
shaderProgram ShaderProgram optional 被重新分配的着色器程序。
vertexShaderSource String | ShaderSource 顶点着色器的 GLSL 源。
fragmentShaderSource String | ShaderSource 片段着色器的 GLSL 源。
attributeLocations Object 顶点着色器的属性输入索引。
Returns:
缓存或新创建的着色器程序。
Example:
this._shaderProgram = context.shaderCache.replaceShaderProgram({
    shaderProgram : this._shaderProgram,
    vertexShaderSource : vs,
    fragmentShaderSource : fs,
    attributeLocations : attributeLocations
});
See: