#pragma once enum struct RenderPassType { RayTracing, Compute, Rasterization // Not intended to implement, want to make a pure ray tracer }; struct RayTracingPass { }; struct ComputePass { }; struct RenderPass { RenderPassType type; union { RayTracingPass ray_tracing; ComputePass compute; } inner; };