답변:
헤더 파일에서 일부 함수를 정의하고이를 셰이더에 #include 할 수 있습니다. C / C ++와는 약간 다릅니다. 셰이더에는 별도의 컴파일 및 연결에 대한 개념이 없기 때문에 프로토 타입뿐만 아니라 C / C ++와 비슷하기 때문에 함수 본문 을 헤더에 넣습니다. 헤더.
#include를 사용할 수 없으면 glShaderSource의 인수를 사용하여 공유 항목을 지정합니다. 예:
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);