MCPcopy Create free account
hub / github.com/Prograda/Skybolt / createModelFactory

Function createModelFactory

src/Skybolt/SkyboltEngine/EngineRoot.cpp:49–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47static std::vector<std::string> transparentMaterialNames() { return { "transparentExt", "transparent" }; } //@deprecated. Set osg::Material diffuse alpha < 1 instead to treat geometry as transparent.
48
49static vis::ModelFactoryPtr createModelFactory(const vis::ShaderPrograms& programs)
50{
51 osg::ref_ptr<osg::Program> glassProgram = programs.getRequiredProgram("glass");
52
53 vis::ModelFactoryConfig config;
54 config.defaultProgram = programs.getRequiredProgram("model");
55 config.glassProgram = glassProgram;
56 for (const std::string& name : transparentMaterialNames())
57 {
58 config.stateSetModifiers[name] = [=](osg::StateSet& stateSet, const osg::Material& material) {
59 stateSet.setAttribute(glassProgram);
60 vis::makeStateSetTransparent(stateSet, vis::TransparencyMode::PremultipliedAlpha);
61 };
62 }
63
64 return std::make_shared<vis::ModelFactory>(config);
65}
66
67const std::string maxCoresEnvironmentVariable = "SKYBOLT_MAX_CORES";
68

Callers 1

EngineRootMethod · 0.85

Calls 2

transparentMaterialNamesFunction · 0.85
makeStateSetTransparentFunction · 0.85

Tested by

no test coverage detected