Come posso creare uno shader di geometria in grado di gestire più primitive? Ad esempio quando creo uno shader di geometria per triangoli, definisco un layout in questo modo:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
Ma se uso questo shader, le linee o i punti non verranno visualizzati. Quindi aggiungendo:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
layout(lines) in;
layout(line_strip, max_vertices=2) out;
Lo shader verrà compilato ed eseguito, ma renderà solo le linee (o qualunque sia l'ultima primitiva definita).
Quindi, come posso definire un singolo shader di geometria che gestirà più tipi di primitive? O non è possibile e devo creare più programmi shader e cambiare i programmi shader prima di disegnare ogni tipo?