GLU требует допустимого контекста openGL, да (даже если должно быть возможным для вызова тесселятора в одиночку без контекста).
Если у вас нет окна, это должно быть возможно - но сложно. См. opengl wiki (и прочитайте его 3 раза, за ним довольно трудно следить).
Основная идея заключается в том, что вам нужно специальное расширение для создания вашего особого контекста без окон. Таким образом, вы должны вызвать wglGetExtensionsStringARB, чтобы получить это расширение. Но чтобы это можно было назвать, вам нужно иметь контекст в первую очередь! (да, это кошмар. У меня есть тот, кто создал этот API). Поэтому создайте контекст обычным способом (и надейтесь, что он работает, даже если у вас нет экрана), получите свое расширение, вызовите wglCreateContextAttribsARB
Примечание: спецификация расширения говорит, что When this extension is supported, calling wglCreateContext(hdc) is equivalent to calling wglCreateContextAttribs(hdc,0,NULL)
, так что, может быть, вы могли бы сделать ставку вместе с простым созданием контекста.