OpenGL/Shaders: use glUniform..() for projection and solid color

glVertexAttribPointer() is only for shader "attributes", not for
shader "uniforms".  Unfortunately, glBindUniformLocation() does not
exist.
OpenGL/Canvas: set up the "solid" shader before drawing
OpenGL/Texture: set up projection matrix