From: Sven P. <sve...@ae...> - 2006-11-24 21:33:48
|
Am Freitag, 24. November 2006 19:01 schrieb Andreas Volz: > [...] > I like this idea! I tried some projects that realize a GLUT/FreeGLUT > wrapper in C++. But there're some problems I see with each alternative: > > 1. The activity and maintenance of these projects are not very good > > 2. They're not a "standard" like GLUT and so not very common > > 3. The portability isn't the same as GLUT or at least yet tested on > many platforms > > 4. Some C++ wrappers try to implement much more features as GLUT > offers. So e.g. a 3DS loader or bitmap loader. I think a C++ or > perhaps also other binding (e.g. python,...) with 100% the same > features could be great. [...] 5. freeglut is a GLUT clone, which is a C API, so you will never see an "official" OO freeglut (at least not as long as Steve lives ;-) ). 6. freeglut/GLUT mirrors the OpenGL programming model quite closely, i.e. there is the notion of "current BLAH" (where BLAH is e.g. a window, an OpenGL context, etc.), and *no* function gets this "current BLAH" explicitly. This model was chosen quite deliberately for OpenGL, because switching the current context can be a very, very costly operation (swapping texture data in/out, reprogramming HW, etc.). So having an OO API and using it like: context1->OpenGLOpFoo(...); context2->OpenGLOpBar(...); might be very cheap or extremely costly, depending on the fact if context1 and context2 refer to the same OpenGL context or not. Hiding this behind a OO facade is not a very good design decision, so the context handling is explicitly visible e.g. via GLX. Cheers, S. |