170{
171 code = "";
172 std::stringstream c;
173 c << "#version " << version << "\n\n";
174 c << "// This code has benn generated by TerraForge3D Shader Generator\n";
175 c << "// Shader Name : " << name << "\n";
176 c << "\n\n";
177
178 if(topLines.size() > 0)
179 {
180 c << "// " << DASHIT("MISC") << "\n";
181
183 {
184 c << line.GenerateGLSL() << "\n";
185 }
186
187 c << "\n\n";
188 }
189
190 if(macros.size() > 0)
191 {
192 c << "// " << DASHIT("MACROS") << "\n";
193
195 {
196 c << macro.GenerateGLSL() << "\n";
197 }
198
199 c << "\n\n";
200 }
201
202 if(ssbos.size() > 0)
203 {
204 c << "// " << DASHIT("SSBOS") << "\n";
205
207 {
208 c << ssbo.GenerateGLSL() << "\n";
209 }
210
211 c << "\n\n";
212 }
213
214 if(uniforms.size() > 0)
215 {
216 c << "//" << DASHIT("UNIFORMS") << "\n";
217
219 {
220 c << uniform.GenerateGLSL() << "\n";
221 }
222
223 c << "\n\n";
224 }
225
226 if(functions.size() > 0)
227 {
228 c << "//" << DASHIT("FUNCTIONS") << "\n";
229
231 {
232 c << "// " << function.name << "\n";
233 c << function.GenerateGLSL() << "\n\n";
234 }
235 }
236
237 code = c.str();
238 return code;
239}