/// <summary> /// <see cref="PrepareForDraw"/> prepares and updates the Material, ShapeBuilder and VertexBuilder if necessary /// </summary> private void PrepareForDraw() { Material.PrepareForDraw(vertexBuilder, ParticleSorter); ShapeBuilder.PrepareForDraw(vertexBuilder, ParticleSorter); // Update the vertex builder and the vertex layout if needed if (Material.VertexLayoutHasChanged || ShapeBuilder.VertexLayoutHasChanged) { vertexBuilder.ResetVertexElementList(); Material.UpdateVertexBuilder(vertexBuilder); ShapeBuilder.UpdateVertexBuilder(vertexBuilder); vertexBuilder.UpdateVertexLayout(); } }
/// <summary> /// <see cref="PrepareForDraw"/> prepares and updates the Material, ShapeBuilder and VertexBuilder if necessary /// </summary> public void PrepareForDraw() { Material.PrepareForDraw(VertexBuilder, ParticleSorter); ShapeBuilder.PrepareForDraw(VertexBuilder, ParticleSorter); // Update the vertex builder and the vertex layout if needed if (Material.HasVertexLayoutChanged || ShapeBuilder.VertexLayoutHasChanged) { VertexBuilder.ResetVertexElementList(); Material.UpdateVertexBuilder(VertexBuilder); ShapeBuilder.UpdateVertexBuilder(VertexBuilder); VertexBuilder.UpdateVertexLayout(); } VertexBuilder.SetRequiredQuads(ShapeBuilder.QuadsPerParticle, pool.LivingParticles, pool.ParticleCapacity); }