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

Method get_variant

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

Source from the content-addressed store, hash-verified

118}
119
120std::shared_ptr<shader_variant> gl_shader_asset::get_variant(const std::vector<std::string> defines)
121{
122 // Hash the defines
123 uint64_t theHash = hash(defines);
124
125 // Lookup if exists
126 auto itr = shaders.find(theHash);
127 if (itr != shaders.end()) return itr->second;
128
129 // Create if not
130 auto newVariant = std::make_shared<shader_variant>();
131 newVariant->shader = std::move(compile_variant(defines));
132 newVariant->defines = defines;
133 newVariant->hash = theHash;
134 shaders[theHash] = newVariant;
135 return newVariant;
136}
137
138gl_shader & gl_shader_asset::get()
139{

Callers 12

resolve_variantsMethod · 0.80
pre_drawMethod · 0.80
update_shadow_matrixMethod · 0.80
post_drawMethod · 0.80
run_stencil_prepassMethod · 0.80
run_depth_prepassMethod · 0.80
run_skybox_passMethod · 0.80
run_particle_passMethod · 0.80
run_post_passMethod · 0.80
on_drawMethod · 0.80
on_drawMethod · 0.80
on_drawMethod · 0.80

Calls 2

hashFunction · 0.50
endMethod · 0.45

Tested by

no test coverage detected