ModernGL basics: compile shader

void glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length);

The last argument is a pointer and C_NULL is Ptr{Nothing} @0x0000000000000000, so it’s ok to let ccall do the auto-conversion.

status = Int32[-1]
glGetShaderiv(vert_shader, GL_COMPILE_STATUS, pointer(status))

This should be:

status_ref = Ref{GLint](-1)
glGetShaderiv(vert_shader, GL_COMPILE_STATUS, status_ref)
status = status_ref[]