{
	f = u_deformParms[deformOffs++];
	if (f == GLSL_DEFORM_EXPAND)
	{	// queue:
		//	scale
		xyz += attr_Normal * u_deformParms[deformOffs++] * offs * mask;
	}
	if (f == GLSL_DEFORM_BULGE)
	{	// queue:
		//	backEnd.refdef.time * ds->bulgeSpeed * 0.001f
		//	ds->bulgeWidth
		//	ds->bulgeHeight
		float now = u_deformParms[deformOffs++];
		float off = 0.7853981634 * attr_texCoords.s * u_deformParms[deformOffs++] + now;
		xyz += attr_Normal * sin(off) * u_deformParms[deformOffs++] * offs * mask;
	}
	if (f == GLSL_DEFORM_WAVE)
	{	// queue:
		//	deformationSpread
		//	table
		//	base
		//	amplitude
		//	phase + freq
		float off = 6.2831853072 * ( xyz.x + xyz.y + xyz.z ) * u_deformParms[deformOffs++];
		float table = u_deformParms[deformOffs++];
		float base = u_deformParms[deformOffs++];
		float amplitude = u_deformParms[deformOffs++];
		float pf = u_deformParms[deformOffs++] + off;
		xyz += (attr_Normal * (base * offs + TABLE(table, pf) * amplitude)) * mask;
	}
	if (f == GLSL_DEFORM_MOVE)
	{	// queue:
		//	ds->moveVector[0]
		//	ds->moveVector[1]
		//	ds->moveVector[2]
		vec3 vector;
		vector.x = u_deformParms[deformOffs++];
		vector.y = u_deformParms[deformOffs++];
		vector.z = u_deformParms[deformOffs++];
		xyz += vector * offs * mask;
	}
}
