Format code for shader generators

This commit is contained in:
Wojciech Figat
2022-03-28 14:01:29 +02:00
parent a685962d32
commit e56b280f5b
13 changed files with 234 additions and 281 deletions

View File

@@ -121,14 +121,14 @@ int32 ParticleEmitterGraphCPUExecutor::ProcessSpawnModule(int32 index)
// Calculate particles to spawn during this frame
switch (node->TypeID)
{
// Constant Spawn Rate
// Constant Spawn Rate
case 100:
{
const float rate = Math::Max((float)TryGetValue(node->GetBox(0), node->Values[2]), 0.0f);
spawnCount += rate * context.DeltaTime;
break;
}
// Single Burst
// Single Burst
case 101:
{
const bool isFirstUpdate = (context.Data->Time - context.DeltaTime) <= 0.0f;
@@ -139,7 +139,7 @@ int32 ParticleEmitterGraphCPUExecutor::ProcessSpawnModule(int32 index)
}
break;
}
// Periodic
// Periodic
case 102:
{
float& nextSpawnTime = data.NextSpawnTime;
@@ -152,7 +152,7 @@ int32 ParticleEmitterGraphCPUExecutor::ProcessSpawnModule(int32 index)
}
break;
}
// Periodic Burst (range)
// Periodic Burst (range)
case 103:
{
float& nextSpawnTime = data.NextSpawnTime;
@@ -186,7 +186,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
switch (node->TypeID)
{
// Orient Sprite
// Orient Sprite
case 201:
case 303:
{
@@ -229,7 +229,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
}
break;
}
// Orient Model
// Orient Model
case 213:
case 309:
{
@@ -246,7 +246,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
}
break;
}
// Update Age
// Update Age
case 300:
{
PARTICLE_EMITTER_MODULE("Update Age");
@@ -259,7 +259,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
}
break;
}
// Gravity/Force
// Gravity/Force
case 301:
case 304:
{
@@ -288,7 +288,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
}
break;
}
// Conform to Sphere
// Conform to Sphere
case 305:
{
PARTICLE_EMITTER_MODULE("Conform to Sphere");
@@ -351,7 +351,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Kill (sphere)
// Kill (sphere)
case 306:
{
PARTICLE_EMITTER_MODULE("Kill");
@@ -400,7 +400,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Kill (box)
// Kill (box)
case 307:
{
PARTICLE_EMITTER_MODULE("Kill");
@@ -454,7 +454,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Kill (custom)
// Kill (custom)
case 308:
{
PARTICLE_EMITTER_MODULE("Kill (custom)");
@@ -492,7 +492,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Linear Drag
// Linear Drag
case 310:
{
PARTICLE_EMITTER_MODULE("Linear Drag");
@@ -538,7 +538,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Turbulence
// Turbulence
case 311:
{
PARTICLE_EMITTER_MODULE("Turbulence");
@@ -598,7 +598,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Set Attribute
// Set Attribute
case 200:
case 302:
{
@@ -630,7 +630,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
}
break;
}
// Set Position/Lifetime/Age/..
// Set Position/Lifetime/Age/..
case 250:
case 251:
case 252:
@@ -688,7 +688,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
}
break;
}
// Position (sphere surface)
// Position (sphere surface)
case 202:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -734,7 +734,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (plane)
// Position (plane)
case 203:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -773,7 +773,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (circle)
// Position (circle)
case 204:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -817,7 +817,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (disc)
// Position (disc)
case 205:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -861,7 +861,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (box surface)
// Position (box surface)
case 206:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -912,7 +912,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (box volume)
// Position (box volume)
case 207:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -951,7 +951,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (cylinder)
// Position (cylinder)
case 208:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -997,7 +997,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (line)
// Position (line)
case 209:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -1036,7 +1036,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (torus)
// Position (torus)
case 210:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -1101,7 +1101,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (sphere volume)
// Position (sphere volume)
case 211:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -1147,13 +1147,13 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (depth)
// Position (depth)
case 212:
{
// Not supported
break;
}
// Position (spiral)
// Position (spiral)
case 214:
{
PARTICLE_EMITTER_MODULE("Position");
@@ -1204,14 +1204,14 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Position (Global SDF)
// Position (Global SDF)
case 215:
{
// Not supported
break;
}
// Helper macros for collision modules to share the code
// Helper macros for collision modules to share the code
#define COLLISION_BEGIN() \
PARTICLE_EMITTER_MODULE("Collision"); \
auto& positionAttr = context.Data->Buffer->Layout->Attributes[node->Attributes[0]]; \
@@ -1251,7 +1251,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
velocityPtr += stride; \
agePtr += stride
// Collision (plane)
// Collision (plane)
case 330:
{
COLLISION_BEGIN();
@@ -1293,7 +1293,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Collision (sphere)
// Collision (sphere)
case 331:
{
COLLISION_BEGIN();
@@ -1338,7 +1338,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Collision (box)
// Collision (box)
case 332:
{
COLLISION_BEGIN();
@@ -1398,7 +1398,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Collision (cylinder)
// Collision (cylinder)
case 333:
{
COLLISION_BEGIN();
@@ -1463,19 +1463,19 @@ void ParticleEmitterGraphCPUExecutor::ProcessModule(ParticleEmitterGraphCPUNode*
#undef LOGIC
break;
}
// Collision (depth)
// Collision (depth)
case 334:
{
// Not supported
break;
}
// Conform to Global SDF
// Conform to Global SDF
case 335:
{
// Not supported
break;
}
// Collision (Global SDF)
// Collision (Global SDF)
case 336:
{
// Not supported

View File

@@ -15,7 +15,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupParameters(Box* box, Node* nod
auto& context = Context.Get();
switch (node->TypeID)
{
// Get
// Get
case 2:
{
int32 paramIndex;
@@ -96,28 +96,28 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupTextures(Box* box, Node* node,
{
switch (node->TypeID)
{
// Scene Texture
// Scene Texture
case 6:
{
// Not supported
value = Value::Zero;
break;
}
// Scene Depth
// Scene Depth
case 8:
{
// Not supported
value = Value::Zero;
break;
}
// Texture
// Texture
case 11:
{
// TODO: support sampling textures in CPU particles
value = Value::Zero;
break;
}
// Load Texture
// Load Texture
case 13:
{
// TODO: support sampling textures in CPU particles
@@ -141,18 +141,18 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupTools(Box* box, Node* node, Va
auto& context = Context.Get();
switch (node->TypeID)
{
// Linearize Depth
// Linearize Depth
case 7:
{
// TODO: support Linearize Depth in CPU particles
value = Value::Zero;
break;
}
// Time
// Time
case 8:
value = box->ID == 0 ? context.Data->Time : context.DeltaTime;
break;
// Transform Position To Screen UV
// Transform Position To Screen UV
case 9:
{
GET_VIEW();
@@ -176,7 +176,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupParticles(Box* box, Node* node
auto node = (ParticleEmitterGraphCPUNode*)nodeBase;
switch (node->TypeID)
{
// Particle Attribute
// Particle Attribute
case 100:
{
byte* ptr = ACCESS_PARTICLE_ATTRIBUTE(0);
@@ -204,7 +204,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupParticles(Box* box, Node* node
}
break;
}
// Particle Attribute (by index)
// Particle Attribute (by index)
case 303:
{
const auto particleIndex = tryGetValue(node->GetBox(1), context.ParticleIndex);
@@ -233,61 +233,61 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupParticles(Box* box, Node* node
}
break;
}
// Particle Position
// Particle Position
case 101:
{
value = GET_PARTICLE_ATTRIBUTE(0, Vector3);
break;
}
// Particle Lifetime
// Particle Lifetime
case 102:
{
value = GET_PARTICLE_ATTRIBUTE(0, float);
break;
}
// Particle Age
// Particle Age
case 103:
{
value = GET_PARTICLE_ATTRIBUTE(0, float);
break;
}
// Particle Color
// Particle Color
case 104:
{
value = GET_PARTICLE_ATTRIBUTE(0, Vector4);
break;
}
// Particle Velocity
// Particle Velocity
case 105:
{
value = GET_PARTICLE_ATTRIBUTE(0, Vector3);
break;
}
// Particle Sprite Size
// Particle Sprite Size
case 106:
{
value = GET_PARTICLE_ATTRIBUTE(0, Vector2);
break;
}
// Particle Mass
// Particle Mass
case 107:
{
value = GET_PARTICLE_ATTRIBUTE(0, float);
break;
}
// Particle Rotation
// Particle Rotation
case 108:
{
value = GET_PARTICLE_ATTRIBUTE(0, Vector3);
break;
}
// Particle Angular Velocity
// Particle Angular Velocity
case 109:
{
value = GET_PARTICLE_ATTRIBUTE(0, Vector3);
break;
}
// Particle Normalized Age
// Particle Normalized Age
case 110:
{
const float age = GET_PARTICLE_ATTRIBUTE(0, float);
@@ -295,55 +295,55 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupParticles(Box* box, Node* node
value = age / Math::Max(lifetime, ZeroTolerance);
break;
}
// Particle Radius
// Particle Radius
case 111:
{
value = GET_PARTICLE_ATTRIBUTE(0, float);
break;
}
// Effect Position
// Effect Position
case 200:
{
value = context.Effect->GetPosition();
break;
}
// Effect Rotation
// Effect Rotation
case 201:
{
value = context.Effect->GetOrientation();
break;
}
// Effect Scale
// Effect Scale
case 202:
{
value = context.Effect->GetScale();
break;
}
// Simulation Mode
// Simulation Mode
case 203:
{
value = box->ID == 0;
break;
}
// View Position
// View Position
case 204:
{
value = context.ViewTask ? context.ViewTask->View.Position : Vector3::Zero;
break;
}
// View Direction
// View Direction
case 205:
{
value = context.ViewTask ? context.ViewTask->View.Direction : Vector3::Forward;
break;
}
// View Far Plane
// View Far Plane
case 206:
{
value = context.ViewTask ? context.ViewTask->View.Far : 0.0f;
break;
}
// Screen Size
// Screen Size
case 207:
{
const Vector4 size = context.ViewTask ? context.ViewTask->View.ScreenSize : Vector4::Zero;
@@ -353,13 +353,13 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupParticles(Box* box, Node* node
value = Vector2(size.Z, size.W);
break;
}
// Particle Position (world space)
// Particle Position (world space)
case 212:
value = GET_PARTICLE_ATTRIBUTE(0, Vector3);
if (context.Emitter->SimulationSpace == ParticlesSimulationSpace::Local)
value.AsVector3() = context.Effect->GetTransform().LocalToWorld(value.AsVector3());
break;
// Particle Emitter Function
// Particle Emitter Function
case 300:
{
// Load function asset
@@ -406,11 +406,11 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupParticles(Box* box, Node* node
context.GraphStack.Pop();
break;
}
// Particle Index
// Particle Index
case 301:
value = context.ParticleIndex;
break;
// Particles Count
// Particles Count
case 302:
value = (uint32)context.Data->Buffer->CPU.Count;
break;
@@ -425,7 +425,7 @@ void ParticleEmitterGraphCPUExecutor::ProcessGroupFunction(Box* box, Node* node,
auto& context = Context.Get();
switch (node->TypeID)
{
// Function Input
// Function Input
case 1:
{
// Find the function call

View File

@@ -102,7 +102,7 @@ void ParticleEmitterGraphCPU::InitializeNode(Node* node)
switch (node->Type)
{
// Position (spiral)
// Position (spiral)
case GRAPH_NODE_MAKE_TYPE(15, 214):
node->CustomDataOffset = CustomDataSize;
CustomDataSize += sizeof(float);
@@ -226,7 +226,7 @@ bool ParticleEmitterGraphCPUExecutor::ComputeBounds(ParticleEmitter* emitter, Pa
const auto module = emitter->Graph.RenderModules[moduleIndex];
switch (module->TypeID)
{
// Sprite Rendering
// Sprite Rendering
case 400:
{
if (_graph._attrSpriteSize != -1)
@@ -246,7 +246,7 @@ bool ParticleEmitterGraphCPUExecutor::ComputeBounds(ParticleEmitter* emitter, Pa
}
break;
}
// Light Rendering
// Light Rendering
case 401:
{
// Prepare graph data
@@ -269,7 +269,7 @@ bool ParticleEmitterGraphCPUExecutor::ComputeBounds(ParticleEmitter* emitter, Pa
break;
}
// Model Rendering
// Model Rendering
case 403:
{
const auto modelAsset = (Model*)module->Assets[0].Get();
@@ -297,7 +297,7 @@ bool ParticleEmitterGraphCPUExecutor::ComputeBounds(ParticleEmitter* emitter, Pa
}
break;
}
// Ribbon Rendering
// Ribbon Rendering
case 404:
{
if (_graph._attrRibbonWidth != -1)
@@ -317,7 +317,7 @@ bool ParticleEmitterGraphCPUExecutor::ComputeBounds(ParticleEmitter* emitter, Pa
}
break;
}
// Volumetric Fog Rendering
// Volumetric Fog Rendering
case 405:
{
// Find the maximum radius of the particle