Skip to content

Commit e1e3cf7

Browse files
[Rendering] WIP;
1 parent 297db34 commit e1e3cf7

32 files changed

+1207
-1428
lines changed

Engine/Staple.Core/Rendering/Animation/SkinnedMeshAnimatorSystem.cs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@ public void Shutdown()
2121
{
2222
}
2323

24-
public void ClearRenderData(ushort viewID)
25-
{
26-
}
27-
2824
public void Prepare()
2925
{
3026
}
@@ -33,18 +29,13 @@ public void Preprocess(Span<(Entity, Transform, IComponent)> entities, Camera ac
3329
{
3430
}
3531

36-
public void Submit(ushort viewID)
32+
public void Submit()
3733
{
3834
}
3935
#endregion
4036

41-
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform, ushort viewID)
37+
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform)
4238
{
43-
if(viewID != RenderSystem.FirstCameraViewID && (Platform.IsEditor == false || viewID != RenderSystem.EditorSceneViewID))
44-
{
45-
return;
46-
}
47-
4839
foreach (var (entity, transform, relatedComponent) in entities)
4940
{
5041
var animator = relatedComponent as SkinnedMeshAnimator;

Engine/Staple.Core/Rendering/Animation/SkinnedMeshAttachmentSystem.cs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@ public void Shutdown()
2020
{
2121
}
2222

23-
public void ClearRenderData(ushort viewID)
24-
{
25-
}
26-
2723
public void Prepare()
2824
{
2925
}
@@ -32,13 +28,8 @@ public void Preprocess(Span<(Entity, Transform, IComponent)> entities, Camera ac
3228
{
3329
}
3430

35-
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform, ushort viewID)
31+
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform)
3632
{
37-
if(viewID != RenderSystem.FirstCameraViewID)
38-
{
39-
return;
40-
}
41-
4233
foreach(var (entity, transform, relatedComponent) in entities)
4334
{
4435
if (relatedComponent is not SkinnedMeshAttachment attachment ||
@@ -89,7 +80,7 @@ void Apply(bool first)
8980
}
9081
}
9182

92-
public void Submit(ushort viewID)
83+
public void Submit()
9384
{
9485
}
9586
}

Engine/Staple.Core/Rendering/Animation/SkinnedMeshRenderSystem.cs

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,14 @@ private struct RenderInfo
2828
public Transform transform;
2929
}
3030

31-
private readonly Dictionary<ushort, ExpandableContainer<RenderInfo>> renderers = [];
31+
private readonly ExpandableContainer<RenderInfo> renderers = new();
3232

3333
private readonly SceneQuery<SkinnedMeshInstance, Transform> instances = new();
3434

3535
public bool UsesOwnRenderProcess => false;
3636

3737
public Type RelatedComponent => typeof(SkinnedMeshRenderer);
3838

39-
public void ClearRenderData(ushort viewID)
40-
{
41-
renderers.Remove(viewID);
42-
}
43-
4439
public void Preprocess(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform)
4540
{
4641
foreach (var (_, transform, relatedComponent) in entities)
@@ -89,18 +84,9 @@ public void Preprocess(Span<(Entity, Transform, IComponent)> entities, Camera ac
8984
}
9085
}
9186

92-
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform, ushort viewID)
87+
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform)
9388
{
94-
if(renderers.TryGetValue(viewID, out var container) == false)
95-
{
96-
container = new();
97-
98-
renderers.Add(viewID, container);
99-
}
100-
else
101-
{
102-
container.Clear();
103-
}
89+
renderers.Clear();
10490

10591
foreach (var (entity, transform, relatedComponent) in entities)
10692
{
@@ -153,7 +139,7 @@ public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activ
153139
renderer.instance ??= new(entity, EntityQueryMode.Parent, false);
154140
}
155141

156-
container.Add(new()
142+
renderers.Add(new()
157143
{
158144
renderer = renderer,
159145
transform = transform,
@@ -244,13 +230,8 @@ public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activ
244230
}
245231
}
246232

247-
public void Submit(ushort viewID)
233+
public void Submit()
248234
{
249-
if (renderers.TryGetValue(viewID, out var content) == false)
250-
{
251-
return;
252-
}
253-
254235
Material lastMaterial = null;
255236

256237
var lastMeshAsset = 0;
@@ -259,11 +240,11 @@ public void Submit(ushort viewID)
259240

260241
var renderState = new RenderState();
261242

262-
var l = content.Length;
243+
var l = renderers.Length;
263244

264245
for (var i = 0; i < l; i++)
265246
{
266-
var item = content.Contents[i];
247+
var item = renderers.Contents[i];
267248

268249
var renderer = item.renderer;
269250
var instance = renderer.instance.Content;
@@ -342,7 +323,7 @@ void SetupMaterial()
342323

343324
renderState.readOnlyBuffers = [(SkinningBufferIndex, buffer)];
344325

345-
RenderSystem.Submit(viewID, renderState, renderer.mesh.SubmeshTriangleCount(j), 1);
326+
RenderSystem.Submit(renderState, renderer.mesh.SubmeshTriangleCount(j), 1);
346327
}
347328
}
348329
}

Engine/Staple.Core/Rendering/CullingVolume/CullingVolumeSystem.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,11 @@ public sealed class CullingVolumeSystem : IRenderSystem
99
public Type RelatedComponent => typeof(CullingVolume);
1010

1111
#region Lifecycle
12-
public void ClearRenderData(ushort viewID)
13-
{
14-
}
15-
1612
public void Prepare()
1713
{
1814
}
1915

20-
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform, ushort viewID)
16+
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform)
2117
{
2218
}
2319

@@ -29,7 +25,7 @@ public void Startup()
2925
{
3026
}
3127

32-
public void Submit(ushort viewID)
28+
public void Submit()
3329
{
3430
}
3531
#endregion

Engine/Staple.Core/Rendering/Graphics.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@ public static class Graphics
2121
/// <param name="transform">The transform for the model</param>
2222
/// <param name="topology">The geometry topology</param>
2323
/// <param name="lighting">What kind of lighting to apply</param>
24-
/// <param name="viewID">The bgfx view ID to render to</param>
2524
/// <param name="materialSetupCallback">A callback to setup the material. If it's not set, the default behaviour will be used</param>
2625
public static void RenderGeometry(VertexBuffer vertex, IndexBuffer index,
2726
int startVertex, int startIndex, int indexCount, Material material,
28-
Vector3 position, Matrix4x4 transform, MeshTopology topology, MaterialLighting lighting, ushort viewID,
27+
Vector3 position, Matrix4x4 transform, MeshTopology topology, MaterialLighting lighting,
2928
Action materialSetupCallback = null)
3029
{
3130
if(vertex == null ||
@@ -80,12 +79,12 @@ public static void RenderGeometry(VertexBuffer vertex, IndexBuffer index,
8079

8180
lightSystem?.ApplyLightProperties(material, RenderSystem.CurrentCamera.Item2.Position, lighting);
8281

83-
RenderSystem.Submit(viewID, renderState, Mesh.TriangleCount(topology, indexCount), 1);
82+
RenderSystem.Submit(renderState, Mesh.TriangleCount(topology, indexCount), 1);
8483
}
8584
}
8685

8786
public static void RenderSimple<T>(Span<T> vertices, VertexLayout layout, Span<ushort> indices, Material material, Vector3 position,
88-
Matrix4x4 transform, MeshTopology topology, MaterialLighting lighting, ushort viewID, Action materialSetupCallback = null)
87+
Matrix4x4 transform, MeshTopology topology, MaterialLighting lighting, Action materialSetupCallback = null)
8988
where T: unmanaged
9089
{
9190
if (vertices.Length == 0||
@@ -128,11 +127,11 @@ public static void RenderSimple<T>(Span<T> vertices, VertexLayout layout, Span<u
128127

129128
lightSystem?.ApplyLightProperties(material, RenderSystem.CurrentCamera.Item2.Position, lighting);
130129

131-
RenderSystem.Instance.RenderSimple(vertices, layout, indices, viewID, renderState);
130+
RenderSystem.Instance.RenderSimple(vertices, layout, indices, renderState);
132131
}
133132

134133
public static void RenderSimple<T>(Span<T> vertices, VertexLayout layout, Span<uint> indices, Material material, Vector3 position,
135-
Matrix4x4 transform, MeshTopology topology, MaterialLighting lighting, ushort viewID, Action materialSetupCallback = null)
134+
Matrix4x4 transform, MeshTopology topology, MaterialLighting lighting, Action materialSetupCallback = null)
136135
where T : unmanaged
137136
{
138137
if (vertices.Length == 0 ||
@@ -175,7 +174,7 @@ public static void RenderSimple<T>(Span<T> vertices, VertexLayout layout, Span<u
175174

176175
lightSystem?.ApplyLightProperties(material, RenderSystem.CurrentCamera.Item2.Position, lighting);
177176

178-
RenderSystem.Instance.RenderSimple(vertices, layout, indices, viewID, renderState);
177+
RenderSystem.Instance.RenderSimple(vertices, layout, indices, renderState);
179178
}
180179
}
181180
}

Engine/Staple.Core/Rendering/Lighting/LightSystem.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,6 @@ public void Shutdown()
125125
{
126126
}
127127

128-
public void ClearRenderData(ushort viewID)
129-
{
130-
}
131-
132128
public void Prepare()
133129
{
134130
}
@@ -137,11 +133,11 @@ public void Preprocess(Span<(Entity, Transform, IComponent)> entities, Camera ac
137133
{
138134
}
139135

140-
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform, ushort viewID)
136+
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform)
141137
{
142138
}
143139

144-
public void Submit(ushort viewID)
140+
public void Submit()
145141
{
146142
}
147143
#endregion

Engine/Staple.Core/Rendering/Mesh/MeshCombineSystem.cs

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private struct RenderInfo
2929
public Transform transform;
3030
}
3131

32-
private readonly Dictionary<ushort, ExpandableContainer<RenderInfo>> renderers = [];
32+
private readonly ExpandableContainer<RenderInfo> renderers = new();
3333

3434
#region Lifecycle
3535
public void Prepare()
@@ -275,18 +275,9 @@ void ApplyIfValid<T>(ref T[] target, List<T> source)
275275
}
276276
}
277277

278-
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform, ushort viewID)
278+
public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activeCamera, Transform activeCameraTransform)
279279
{
280-
if (renderers.TryGetValue(viewID, out var container) == false)
281-
{
282-
container = new();
283-
284-
renderers.Add(viewID, container);
285-
}
286-
else
287-
{
288-
container.Clear();
289-
}
280+
renderers.Clear();
290281

291282
foreach (var (entity, transform, relatedComponent) in entities)
292283
{
@@ -297,36 +288,26 @@ public void Process(Span<(Entity, Transform, IComponent)> entities, Camera activ
297288
continue;
298289
}
299290

300-
container.Add(new()
291+
renderers.Add(new()
301292
{
302293
renderer = combine,
303294
transform = transform,
304295
});
305296
}
306297
}
307298

308-
public void ClearRenderData(ushort viewID)
299+
public void Submit()
309300
{
310-
renderers.Remove(viewID);
311-
}
312-
313-
public void Submit(ushort viewID)
314-
{
315-
if (renderers.TryGetValue(viewID, out var content) == false)
316-
{
317-
return;
318-
}
319-
320301
Material lastMaterial = null;
321302

322303
var lastLighting = MaterialLighting.Unlit;
323304
var lastTopology = MeshTopology.Triangles;
324305

325-
var l = content.Length;
306+
var l = renderers.Length;
326307

327308
for (var i = 0; i < l; i++)
328309
{
329-
var item = content.Contents[i];
310+
var item = renderers.Contents[i];
330311

331312
var renderer = item.renderer;
332313

@@ -392,7 +373,7 @@ void SetupMaterial()
392373

393374
renderState.program = program;
394375

395-
RenderSystem.Submit(viewID, renderState, mesh.SubmeshTriangleCount(0), 1);
376+
RenderSystem.Submit(renderState, mesh.SubmeshTriangleCount(0), 1);
396377
}
397378
}
398379
}

0 commit comments

Comments
 (0)