Вы не можете избежать минимального количества кода объективного C. Однако, если вы переименуете целевые файлы C в файлы .mm, целевой код C сможет вызывать методы класса c ++. Это означает, что вы можете подключить -drawRect (и другие соответствующие сообщения NSOpenGLView) к вашей реализации C ++ OpenGL. NSOpenGLView имеет метод -makeCurrent, который можно вызывать вне drawRect, чтобы убедиться, что правильный контекст OpenGL активен.
Ваш код на C ++ может просто вызывать функции gl по мере необходимости.