Câu trả lời:
Bạn có thể xác định một số chức năng trong tệp tiêu đề và #incolee chúng vào shader của bạn. Đó là một khác nhau chút từ C / C ++ trong đó bạn muốn đặt các cơ quan chức năng của bạn trong các tiêu đề, không chỉ là nguyên mẫu của họ (vì shaders không có khái niệm về biên soạn riêng & liên kết), nhưng khác hơn là nó giống như C / C ++ tiêu đề.
Nếu #include không khả dụng, bạn sẽ sử dụng các đối số của glShaderSource để chỉ định nội dung được chia sẻ. Thí dụ:
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);