Jawaban:
Anda dapat mendefinisikan beberapa fungsi dalam file header dan # memasukkannya ke shader Anda. Ini sedikit berbeda dari C / C ++ karena Anda akan menempatkan tubuh fungsi Anda di header, bukan hanya prototipe mereka (karena shader tidak memiliki konsep kompilasi & penautan terpisah), tetapi selain itu hanya seperti C / C ++ header.
Jika #include tidak tersedia, Anda akan menggunakan argumen glShaderSource untuk menentukan hal-hal yang dibagikan. Contoh:
char *sharedcode = "...shared code here...";
char *fs1 = "...fragment shader 1...";
char *fs2 = "...fragment shader 2...";
char *awesomeeffect1[] = {sharedcode, fs1};
char *awesomeeffect2[] = {sharedcode, fs2};
glShaderSource (shader1, 2, awesomeeffect1, NULL);
glShaderSource (shader2, 2, awesomeeffect2, NULL);