UNPKG

texturity.js

Version:

WebGL based library for drawing textures

40 lines (37 loc) 1.19 kB
import colorModelsChunk from '../chunks/color-models'; import grayChunk from '../chunks/gray'; export default function (b, expression, preExpressions = '') { return { vertex: ` attribute vec2 position; varying mediump vec2 texcoord; void main(void) { texcoord = (position+1.0)/2.0; gl_Position = vec4(position, 0.0, 1.0); } `, fragment: ` #ifdef GL_ES precision mediump float; #endif varying mediump vec2 texcoord; uniform sampler2D texture1; ${b instanceof WebGLTexture ? 'uniform sampler2D texture2' : (b instanceof Array ? 'uniform mediump vec3 color' : 'uniform mediump float value')}; ${colorModelsChunk()} ${grayChunk()} void main(void) { vec3 a = texture2D(texture1, texcoord).rgb; vec3 b = ${b instanceof WebGLTexture ? 'texture2D(texture2, texcoord).rgb' : (b instanceof Array ? 'color' : 'vec3(value)')}; ${preExpressions} gl_FragColor = vec4(${expression}, 1.0); }` } }