title: NULL checks in GLSL
body: <p>I'm trying to check inside the shader (GLSL) if my vec4 is NULL. I need this for several reasons, mostly to get specific graphics cards compatible, since some of them pass a previous color in gl_FragColor, and some don't (providing a null vec4 that needs to be overwritten). 
  Well, on a fairly new Mac, someone got this error:</p>
  
  <pre><code>java.lang.RuntimeException: Error creating shader: ERROR: 0:107: '==' does not operate on 'vec4' and 'int'
  ERROR: 0:208: '!=' does not operate on 'mat3' and 'int'
  </code></pre>
  
  <p>This is my code in the fragment shader:</p>
  
  <pre><code>void main()
  {
      if(gl_FragColor == 0) gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); //Line 107
      vec4 newColor = vec4(0.0, 0.0, 0.0, 0.0);
  
      [...]
  
      if(inverseViewMatrix != 0) //Line 208
      {
          [do stuff with it; though I can replace this NULL check with a boolean]
      }
  
      [...]
  
      gl_FragColor.rgb = mix(gl_FragColor.rgb, newColor.rgb, newColor.a);
      gl_FragColor.a += newColor.a; 
  }
  </code></pre>
  
  <p>As you can see, I do a 0/NULL check for gl_FragColor at the start, because some graphics cards pass valuable information there, but some don't. Now, on that special mac, it didn't work. I did some research, but couldn't find any information on how to do a proper NULL check in GLSL. Is there even one, or do I really need to make separate shaders here?</p>