Pregunta de diseño para una ventana SDL \ OpenGL & amp; Biblioteca de widgets
Pregunta
Quiero diseñar & amp; implementar una ventana simple & amp; El widget para OpenGL se ejecuta sobre SDL, al igual que Agar o GiGi, pero está mucho más vinculado a SDL & amp; OpenGL.
Mi problema general es este: ¿cuál es el mejor diseño para un sistema de ventanas dentro de en un contexto OpenGL?
Quiero tener ventanas solo para los controles y, si es posible, ventanas con subprocesos con sus propios contextos OpenGL. La única forma en que lo he pensado, incluso siendo posible, es hacer texturas, y agregar adornos de ventanas alrededor de esos ...
Quiero exponer el funcionamiento a otros programadores, pero cuál sería el mejor camino. Soy más de un programador de C ++ y la herencia fue la primera forma en que pensé. A partir de las clases básicas que expongo en un archivo de encabezado compartido, el programador deriva su propio objeto de ventana a partir de eso, anulando los métodos Init () o Run () para implementar lo que necesitan. El problema con este enfoque sería mantener a los programadores bajo control, no habría una manera real de "evitar" que ellos simplemente dibujen donde quieran en la pantalla de OpenGL.
Otra forma posible sería con los funtores, pasando los funtores que el programador quiere usar a la biblioteca, que luego la llama una vez que termina de renderizar sus componentes GUI y lo que no.
¿Cuál es la mejor manera de abordar esto?
Solución
ventanas con sus propios contextos OpenGL
Eso requerirá hackear SDL, ya que solo proporciona un contexto por proceso. A menos que esté pensando en hacer un solo contexto GL con múltiples sub-vistas independientes representadas en secuencia.