initial OpenGL renderer implementation