GLSL ha un preprocessore completo in stile C. L'unica cosa che non funziona è #include. Una delle grandi caratteristiche è che è possibile utilizzare #ifdef per commentare le funzioni e creare così uno shader che può essere diluito se non vengono utilizzate determinate funzionalità.Definisci esternamente macro di preprocessore in GLSL
mia domanda è:
C'è un modo per definire una macro da codice C?
Non sembra esserci alcun modo per farlo con l'interfaccia openGL. Il trucco rapido è di anteporre alcune righe con #define FOO prima del file del modulo caricato del codice. Ma sembra un po 'indietro.
Questa è una soluzione valida, ma non molto meglio del prepending del codice sorgente. – rioki
beh, dipende da cosa stai cercando. Questo è utile per prevenire l'allocazione e la copia aggiuntive della memoria (motivo per cui prenderei in considerazione la soluzione preliminare hacky). Cosa ti sembrerebbe migliore, e perché? – Bahbar
Ho pensato più lungo le linee 'glDefine (" Moo "," Foo ")' ... ma sembra che ho studiato le specifiche correttamente ... – rioki