উত্তর:
আপনি একটি শিরোনাম ফাইলটিতে কিছু ফাংশন সংজ্ঞায়িত করতে পারেন এবং এগুলি আপনার শ্যাডারে অন্তর্ভুক্ত করতে পারেন। এটি সি / সি ++ এর থেকে কিছুটা আলাদা যে আপনি নিজের ফাংশনগুলির মৃতদেহগুলি শিরোনামগুলিতে রেখেছিলেন কেবল তাদের প্রোটোটাইপগুলি নয় (যেহেতু শেডারের পৃথক সংকলন এবং সংযোগ করার কোনও ধারণা নেই), তবে এটি সি / সি ++ এর মতোই অন্যরকম other হেডার।
# অন্তর্ভুক্তটি উপলভ্য না হলে আপনি ভাগ করা জিনিসগুলি নির্দিষ্ট করতে 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);