private void CreateExpressionContext(bool forceRecreation)
        {
            if (!forceRecreation && m_ExpressionContext != null)
            {
                return;
            }

            m_ExpressionContext = new VFXExpression.Context(VFXExpressionContextOption.CPUEvaluation);
            var currentObjects = new HashSet <ScriptableObject>();

            graph.CollectDependencies(currentObjects);

            int nbExpr = 0;

            foreach (var o in currentObjects)
            {
                if (o is VFXSlot)
                {
                    var exp = ((VFXSlot)o).GetExpression();
                    if (exp != null)
                    {
                        m_ExpressionContext.RegisterExpression(exp);
                        ++nbExpr;
                    }
                }
            }
        }