Merge branch 'AcidicVoid-master'

This commit is contained in:
Wojtek Figat
2025-12-13 23:11:05 +01:00
3 changed files with 24 additions and 3 deletions

View File

@@ -2553,9 +2553,15 @@ void AnimGraphExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value& va
// Function Input
case 1:
{
// Skip when graph is too small (eg. preview) and fallback with default value from the function graph
if (context.GraphStack.Count() < 2)
{
value = tryGetValue(node->TryGetBox(1), Value::Zero);
break;
}
// Find the function call
AnimGraphNode* functionCallNode = nullptr;
ASSERT(context.GraphStack.Count() >= 2);
Graph* graph;
for (int32 i = context.CallStack.Count() - 1; i >= 0; i--)
{

View File

@@ -482,9 +482,15 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupFunction(Box* box, Node* node,
// Function Input
case 1:
{
// Skip when graph is too small (eg. preview) and fallback with default value from the function graph
if (context.GraphStack.Count() < 2)
{
value = tryGetValue(node->TryGetBox(1), Value::Zero);
break;
}
// Find the function call
Node* functionCallNode = nullptr;
ASSERT(context.GraphStack.Count() >= 2);
ParticleEmitterGraphCPU* graph;
for (int32 i = context.CallStackSize - 1; i >= 0; i--)
{

View File

@@ -790,9 +790,18 @@ void MaterialGenerator::ProcessGroupFunction(Box* box, Node* node, Value& value)
// Function Input
case 1:
{
// Check the stack count. If only 1 graph is present,
// we are processing the graph in isolation (e.g., in the Editor Preview).
// In this case, we skip the caller-finding logic and use the node's default value.
if (_graphStack.Count() < 2)
{
// Use the default value from the function input node's box (usually box 1)
value = tryGetValue(node->TryGetBox(1), Value::Zero);
break;
}
// Find the function call
Node* functionCallNode = nullptr;
ASSERT(_graphStack.Count() >= 2);
Graph* graph;
for (int32 i = _callStack.Count() - 1; i >= 0; i--)
{