attribute float mode;
attribute float clampSize;
attribute float geomSize;
attribute float minSize;
attribute float maxSize;
attribute float magnification;

void main()
{
  gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;

  gl_FrontColor = gl_Color;

  float size;
  if( mode == 0 )   // Results
    size = minSize + ( maxSize - minSize ) * ( 1 - gl_Color.w / 241.0f );
  else              // Geometry and Uniform colored outside cursor
    size = geomSize;

  gl_PointSize = clamp( magnification * size * gl_ProjectionMatrix[1].y, 2.0, clampSize );
}
