Hello everyone,
Been stuck with the following problem for a while, so any insight or clue will be greatly appreciated.
The following commands work fine with glsl 330 and the compatibility profile, but not with the core profile.
glEnable(GL_PROGRAM_POINT_SIZE);
glDrawArrays(GL_POINTS, 0, nPoints);
If the core profile is requested, glGetError returns a GL_INVALID_OPERATION.
If it can help, here are the shader codes.
// vertex shader
#version 330
uniform mat4 pvmMatrix;
uniform mat4 vmMatrix;
in vec4 vertexPosition_modelSpace;
in vec4 vertexColor;
uniform float pointsize;
out vec4 pointcolor;
out vec3 Position_viewSpace;
void main(void)
{
gl_Position = pvmMatrix * vec4(vertexPosition_modelSpace.xyz, 1.0f);
vec4 vsPos = vmMatrix * vec4(vertexPosition_modelSpace.xyz, 1.0f);
Position_viewSpace = vsPos.xyz;
gl_PointSize = pointsize;
pointcolor = vertexColor;
}
//fragment shader
#version 330
uniform float clipPlane0; // defined in view-space
in vec3 Position_viewSpace;
in vec4 pointcolor;
layout(location=0) out vec4 fragColor;
void main(void)
{
if (Position_viewSpace.z > clipPlane0)
{
discard;
return;
}
fragColor = pointcolor;
}
Thanks in advance,