MENU
Qualifiers
Storage Qualifiers | |
(none) | local read/write; input parameter |
const | compile-time constant; read-only function parameter; must be initialized during declaration |
attribute | used to pass per-vertex data to the vertex shader; must be global; can only be used with float, vec2, vec3, vec4, mat2, mat3, and mat4 |
uniform | used to pass data to the vertex and fragment shaders; read-only; value does not change across the primitive being drawn |
varying | used to pass data from the vertex shader to the fragment shader; must be global; can only be used with float, vec2, vec3, vec4, mat2, mat3, and mat4. The value passed to a fragment shader is interpolated across the vertices according to the shape drawn. |
Precision Qualifiers | |
(none) | Vertex Shader (default): int: highp float: highp sampler2D: lowp samplerCube: lowp Fragment Shader (default): int: mediump float: None sampler2D: lowp samplerCube: lowp |
highp | float range: (-262,262) float precision: 2-16 int range: (-216,216) |
mediump | float range: (-214,214) float precision: 2-10 int range: (-210,210) |
lowp | float range: (-2,2) float precision: 2-8 int range: (-28 ,28) |
Function Parameter Qualifiers | |
(none) | same as 'in' |
in | passes values in as function parameters; values not passed out during return time |
out | passes values out of functions during return time; values not initialized when the variables are passed in |
inout | passes values both in and out of functions |
Examples ([storage][parameter][precision]<type><var>) |
|
varying lowp vec2 v; | |
precision mediump float; //all floats are mediump precision highp int; // all ints are highp // ivec4 now has 4 highp int components |
|
void luma(const in vec3 color, out float brightness){ brightness=0.2*color.r +0.7*color.g+0.7*color.b; } |