Files
voxel/ChunkMesh.cs
maxwes08 b6655d71d9 update
2025-09-09 10:57:28 +02:00

47 lines
1.0 KiB
C#

using OpenTK.Graphics.OpenGL4;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Voxel
{
public class ChunkMesh
{
public int X;
public int Y;
private byte[] _packedData;
public bool NeedsUpdate = false;
public int Length = 0;
private List<FaceData> _faces;
public int SSBO;
public ChunkMesh(int x, int y)
{
_packedData = new byte[0];
X = x;
Y = y;
SSBO = GL.GenBuffer();
}
public void SetFaces(List<FaceData> faces)
{
Length = faces.Count;
_faces = faces;
NeedsUpdate = true;
}
public byte[] GetPackedData()
{
if (NeedsUpdate)
{
_packedData = _faces.SelectMany(f => f.Pack()).ToArray();
NeedsUpdate = false;
}
return _packedData;
}
}
}