(bind-func ShaderProgram_create
"compile and link shader program (vert and frag shader source)"
(lambda (vsource:i8* fsource:i8*)
(let ((vert (Shader_create vsource GL_VERTEX_SHADER))
(frag (Shader_create fsource GL_FRAGMENT_SHADER)))
(if (or (null? vert) (null? frag))
-1
(ShaderProgram_create:[i32,Shader*,Shader*]* vert frag)))))