void CSceneManager::collectMeshNodeShaders(IMeshNode* node) { // collect all the shaders ( for per-frame variables optimization) u32 subsetCount = node->getSubsetCount(); for (u32 i = 0; i < subsetCount; i++) { IMaterial* material = node->getMaterial(i); if (material) { for (u32 j = 0; j < material->getPipelineCount(); j++) { IPipeline* pipeline = material->getPipeline(j); if (pipeline) { for (u32 k = 0; k < EST_SHADER_COUNT; k++) { IShader* shader = pipeline->getShader((E_SHADER_TYPE)k); if (shader != nullptr) mActiveShaders.insert(shader); } } } } } }