Lines Matching refs:src

99 	std::ostringstream	src;
103 src << glu::getGLSLVersionDeclaration(shaderSpec.version) << "\n";
106 src << shaderSpec.globalDeclarations << "\n";
108 src << in << " highp vec4 a_position;\n";
111 src << in << " " << glu::declare(input->varType, inputPrefix + input->name) << ";\n";
123 src << "flat " << out << " " << glu::declare(intType, outputPrefix + output->name) << ";\n";
126 src << "flat " << out << " " << glu::declare(output->varType, outputPrefix + output->name) << ";\n";
129 src << "\n"
137 src << "\t" << glu::declare(input->varType, input->name) << " = " << inputPrefix << input->name << ";\n";
141 src << "\t" << glu::declare(output->varType, output->name) << ";\n";
149 src << "\t" << line << "\n";
160 src << "\t" << outputPrefix << output->name << " = " << glu::getDataTypeName(intBaseType) << "(" << output->name << ");\n";
163 src << "\t" << outputPrefix << output->name << " = " << output->name << ";\n";
166 src << "}\n";
168 return src.str();
176 std::ostringstream src;
178 src << glu::getGLSLVersionDeclaration(shaderSpec.version) << "\n";
181 src << "#extension GL_EXT_geometry_shader : require\n";
184 src << shaderSpec.globalDeclarations << "\n";
186 src << "layout(points) in;\n"
190 src << "flat in " << glu::declare(input->varType, inputPrefix + input->name) << "[];\n";
202 src << "flat out " << glu::declare(intType, outputPrefix + output->name) << ";\n";
205 src << "flat out " << glu::declare(output->varType, outputPrefix + output->name) << ";\n";
208 src << "\n"
215 src << "\t" << glu::declare(input->varType, input->name) << " = " << inputPrefix << input->name << "[0];\n";
219 src << "\t" << glu::declare(output->varType, output->name) << ";\n";
221 src << "\n";
229 src << "\t" << line << "\n";
240 src << "\t" << outputPrefix << output->name << " = " << glu::getDataTypeName(intBaseType) << "(" << output->name << ");\n";
243 src << "\t" << outputPrefix << output->name << " = " << output->name << ";\n";
246 src << " EmitVertex();\n"
250 return src.str();
256 std::ostringstream src;
258 src << glu::getGLSLVersionDeclaration(version) << "\n";
262 src << "void main (void)\n{\n";
264 src << " gl_FragColor = vec4(0.0);\n";
265 src << "}\n";
267 return src.str();
275 std::ostringstream src;
277 src << glu::getGLSLVersionDeclaration(shaderSpec.version) << "\n"
282 src << "in " << glu::declare(input->varType, inputPrefix + input->name) << ";\n"
286 src << "\nvoid main (void)\n{\n"
291 src << "\t" << outputPrefix << input->name << " = " << inputPrefix << input->name << ";\n";
293 src << "}\n";
295 return src.str();
298 static void generateFragShaderOutputDecl (std::ostream& src, const ShaderSpec& shaderSpec, bool useIntOutputs, const std::map<std::string, int>& outLocationMap, const std::string& outputPrefix)
318 src << decl << ";\n";
327 src << decl << ";\n";
341 src << decl << ";\n";
345 src << decl << ";\n";
349 static void generateFragShaderOutAssign (std::ostream& src, const ShaderSpec& shaderSpec, bool useIntOutputs, const std::string& valuePrefix, const std::string& outputPrefix)
354 src << " o_" << output->name << " = floatBitsToUint(" << valuePrefix << output->name << ");\n";
361 src << "\t" << outputPrefix << output->name << "_" << vecNdx << " = floatBitsToUint(" << valuePrefix << output->name << "[" << vecNdx << "]);\n";
363 src << "\t" << outputPrefix << output->name << "_" << vecNdx << " = " << valuePrefix << output->name << "[" << vecNdx << "];\n";
370 src << "\t" << outputPrefix << output->name << " = " << glu::getDataTypeName(intBaseType) << "(" << valuePrefix << output->name << ");\n";
373 src << "\t" << outputPrefix << output->name << " = " << valuePrefix << output->name << ";\n";
381 std::ostringstream src;
383 src << glu::getGLSLVersionDeclaration(shaderSpec.version) << "\n";
386 src << shaderSpec.globalDeclarations << "\n";
389 src << "flat in " << glu::declare(input->varType, inputPrefix + input->name) << ";\n";
391 generateFragShaderOutputDecl(src, shaderSpec, useIntOutputs, outLocationMap, outputPrefix);
393 src << "\nvoid main (void)\n{\n";
397 src << "\t" << glu::declare(input->varType, input->name) << " = " << inputPrefix << input->name << ";\n";
401 src << "\t" << glu::declare(output->varType, output->name) << ";\n";
409 src << "\t" << line << "\n";
412 generateFragShaderOutAssign(src, shaderSpec, useIntOutputs, "", outputPrefix);
414 src << "}\n";
416 return src.str();
423 std::ostringstream src;
425 src << glu::getGLSLVersionDeclaration(shaderSpec.version) << "\n";
428 src << shaderSpec.globalDeclarations << "\n";
438 src << "flat in " << glu::declare(intType, inputPrefix + output->name) << ";\n";
441 src << "flat in " << glu::declare(output->varType, inputPrefix + output->name) << ";\n";
444 generateFragShaderOutputDecl(src, shaderSpec, useIntOutputs, outLocationMap, outputPrefix);
446 src << "\nvoid main (void)\n{\n";
448 generateFragShaderOutAssign(src, shaderSpec, useIntOutputs, inputPrefix, outputPrefix);
450 src << "}\n";
452 return src.str();
839 static void declareBufferBlocks (std::ostream& src, const ShaderSpec& spec);
840 static void generateExecBufferIo(std::ostream& src, const ShaderSpec& spec, const char* invocationNdxName);
1095 void BufferIoExecutor::declareBufferBlocks (std::ostream& src, const ShaderSpec& spec)
1103 src << glu::declare(&inputStruct) << ";\n";
1111 src << glu::declare(&outputStruct) << ";\n";
1114 src << "\n";
1118 src << "layout(binding = " << int(INPUT_BUFFER_BINDING) << ", std430) buffer InBuffer\n"
1124 src << "layout(binding = " << int(OUTPUT_BUFFER_BINDING) << ", std430) buffer OutBuffer\n"
1131 void BufferIoExecutor::generateExecBufferIo (std::ostream& src, const ShaderSpec& spec, const char* invocationNdxName)
1134 src << "\t" << glu::declare(symIter->varType, symIter->name) << " = inputs[" << invocationNdxName << "]." << symIter->name << ";\n";
1137 src << "\t" << glu::declare(symIter->varType, symIter->name) << ";\n";
1139 src << "\n";
1146 src << "\t" << line << "\n";
1149 src << "\n";
1151 src << "\toutputs[" << invocationNdxName << "]." << symIter->name << " = " << symIter->name << ";\n";
1172 std::ostringstream src;
1174 src << glu::getGLSLVersionDeclaration(spec.version) << "\n";
1177 src << spec.globalDeclarations << "\n";
1179 src << "layout(local_size_x = 1) in;\n"
1182 declareBufferBlocks(src, spec);
1184 src << "void main (void)\n"
1189 generateExecBufferIo(src, spec, "invocationNdx");
1191 src << "}\n";
1193 return src.str();
1247 std::ostringstream src;
1249 src << glu::getGLSLVersionDeclaration(version) << "\n";
1251 src << "void main (void)\n{\n"
1255 return src.str();
1302 std::ostringstream src;
1304 src << glu::getGLSLVersionDeclaration(shaderSpec.version) << "\n";
1307 src << "#extension GL_EXT_tessellation_shader : require\n";
1310 src << shaderSpec.globalDeclarations << "\n";
1312 src << "\nlayout(vertices = 1) out;\n\n";
1314 declareBufferBlocks(src, shaderSpec);
1316 src << "void main (void)\n{\n";
1319 src << "\tgl_TessLevelInner[" << ndx << "] = 1.0;\n";
1322 src << "\tgl_TessLevelOuter[" << ndx << "] = 1.0;\n";
1324 src << "\n"
1327 generateExecBufferIo(src, shaderSpec, "invocationId");
1329 src << "}\n";
1331 return src.str();
1336 std::ostringstream src;
1338 src << glu::getGLSLVersionDeclaration(version) << "\n";
1341 src << "#extension GL_EXT_tessellation_shader : require\n\n";
1343 src << "layout(triangles, ccw) in;\n";
1345 src << "\nvoid main (void)\n{\n"
1349 return src.str();
1422 std::ostringstream src;
1424 src << glu::getGLSLVersionDeclaration(version) << "\n";
1427 src << "#extension GL_EXT_tessellation_shader : require\n\n";
1429 src << "layout(vertices = 1) out;\n\n";
1431 src << "void main (void)\n{\n";
1434 src << "\tgl_TessLevelInner[" << ndx << "] = 1.0;\n";
1437 src << "\tgl_TessLevelOuter[" << ndx << "] = 1.0;\n";
1439 src << "}\n";
1441 return src.str();
1446 std::ostringstream src;
1448 src << glu::getGLSLVersionDeclaration(shaderSpec.version) << "\n";
1451 src << "#extension GL_EXT_tessellation_shader : require\n";
1454 src << shaderSpec.globalDeclarations << "\n";
1456 src << "\n";
1458 src << "layout(isolines, equal_spacing) in;\n\n";
1460 declareBufferBlocks(src, shaderSpec);
1462 src << "void main (void)\n{\n"
1466 generateExecBufferIo(src, shaderSpec, "invocationId");
1468 src << "}\n";
1470 return src.str();