この glsl シェーダーは正常にコンパイルされますが、glUseProgram(); でアクティブにしようとすると、opengl で無効な値のエラーが表示されます。
@vert
#version 150
uniform mat4 projectionmodelview_matrix_;
in vec3 global_position_;
void main(void) {
gl_Position = projectionmodelview_matrix_ * vec4(global_position_, 1.0);
EmitVertex();
gl_Position = projectionmodelview_matrix_ * vec4(global_position_, 1.0);
EmitVertex();
gl_Position = projectionmodelview_matrix_ * vec4(global_position_, 1.0);
EmitVertex();
EndPrimitive();
}
@frag
#version 150
out vec4 out_color_;
void main(void) {
out_color_ = vec4(1.0, 0.0, 0.0, 1.0);
}
ただし、頂点を放出する部分を削除すると機能します。私は何を間違っていますか?