MCPcopy Create free account
hub / github.com/ddiakopoulos/polymer / preprocess

Function preprocess

libraries/lib-engine/src/shader.cpp:69–104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67}
68
69gl_shader preprocess(const std::string & vertexShader,
70 const std::string & fragmentShader,
71 const std::string & geomShader,
72 const std::string & includeSearchPath,
73 const std::vector<std::string> & defines,
74 std::vector<std::string> & includes)
75{
76 std::stringstream vertex;
77 std::stringstream fragment;
78 std::stringstream geom;
79
80 for (const auto define : defines)
81 {
82 if (vertexShader.size()) vertex << "#define " << define << std::endl;
83 if (fragmentShader.size()) fragment << "#define " << define << std::endl;
84 if (geomShader.size()) geom << "#define " << define << std::endl;
85 }
86
87 if (vertexShader.size()) vertex << vertexShader;
88 if (fragmentShader.size()) fragment << fragmentShader;
89 if (geomShader.size()) geom << geomShader;
90
91 if (geomShader.size())
92 {
93 return gl_shader(
94 preprocess_version(process_includes_recursive(vertex.str(), includeSearchPath, includes, 0)),
95 preprocess_version(process_includes_recursive(fragment.str(), includeSearchPath, includes, 0)),
96 preprocess_version(process_includes_recursive(geom.str(), includeSearchPath, includes, 0)));
97 }
98 else
99 {
100 return gl_shader(
101 preprocess_version(process_includes_recursive(vertex.str(), includeSearchPath, includes, 0)),
102 preprocess_version(process_includes_recursive(fragment.str(), includeSearchPath, includes, 0)));
103 }
104}
105
106///////////////////////////////////////
107// gl_shader_asset implementation //

Callers 1

compile_variantMethod · 0.85

Calls 4

gl_shaderClass · 0.85
preprocess_versionFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected