MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / ProcessGroupPacking

Method ProcessGroupPacking

Source/Engine/Visject/ShaderGraph.cpp:447–604  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

445}
446
447void ShaderGenerator::ProcessGroupPacking(Box* box, Node* node, Value& value)
448{
449 switch (node->TypeID)
450 {
451 // Pack
452 case 20:
453 {
454 Box* bX = node->GetBox(1);
455 Box* bY = node->GetBox(2);
456 Value vX = tryGetValue(bX, node->Values[0]);
457 Value vY = tryGetValue(bY, node->Values[1]);
458 value = Value::Float2(vX, vY);
459 break;
460 }
461 case 21:
462 {
463 Box* bX = node->GetBox(1);
464 Box* bY = node->GetBox(2);
465 Box* bZ = node->GetBox(3);
466 Value vX = tryGetValue(bX, node->Values[0]);
467 Value vY = tryGetValue(bY, node->Values[1]);
468 Value vZ = tryGetValue(bZ, node->Values[2]);
469 value = Value::Float3(vX, vY, vZ);
470 break;
471 }
472 case 22:
473 {
474 Box* bX = node->GetBox(1);
475 Box* bY = node->GetBox(2);
476 Box* bZ = node->GetBox(3);
477 Box* bW = node->GetBox(4);
478 Value vX = tryGetValue(bX, node->Values[0]);
479 Value vY = tryGetValue(bY, node->Values[1]);
480 Value vZ = tryGetValue(bZ, node->Values[2]);
481 Value vW = tryGetValue(bW, node->Values[3]);
482 value = Value::Float4(vX, vY, vZ, vW);
483 break;
484 }
485 case 23:
486 case 24:
487 case 25:
488 {
489 // Not supported
490 value = Value::Zero;
491 break;
492 }
493 // Unpack
494 case 30:
495 {
496 value = tryGetValue(node->GetBox(0), Float2::Zero).AsFloat2();
497 const int32 subIndex = box->ID - 1;
498 if (subIndex >= 0 && subIndex < 2)
499 value = Value(ValueType::Float, value.Value + _subs[subIndex]);
500 break;
501 }
502 case 31:
503 {
504 value = tryGetValue(node->GetBox(0), Float3::Zero).AsFloat3();

Callers

nothing calls this directly

Calls 11

Float2Class · 0.85
Float3Class · 0.85
Float4Class · 0.85
ValueEnum · 0.85
AsFloat2Method · 0.80
AsFloat3Method · 0.80
AsFloat4Method · 0.80
FormatFunction · 0.50
GetBoxMethod · 0.45
HasConnectionMethod · 0.45
FirstConnectionMethod · 0.45

Tested by

no test coverage detected