mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
VertexBuffer is no longer generic
This commit is contained in:
@@ -68,7 +68,7 @@ namespace GlitchyEngine
|
||||
}
|
||||
}
|
||||
|
||||
VertexBuffer<VertexColor> _vertexBuffer ~ delete _;
|
||||
VertexBuffer _vertexBuffer ~ delete _;
|
||||
IndexBuffer _indexBuffer ~ delete _;
|
||||
Buffer<ColorRGBA> _cBuffer ~ delete _;
|
||||
|
||||
@@ -120,7 +120,7 @@ namespace GlitchyEngine
|
||||
VertexColor(CircleCoord(-pO3), Color(255, 0,255)),
|
||||
);
|
||||
|
||||
_vertexBuffer = new VertexBuffer<VertexColor>(Window.Context, (.)vertices.Count, .Immutable);
|
||||
_vertexBuffer = new VertexBuffer(Window.Context, typeof(VertexColor), (.)vertices.Count, .Immutable);//<VertexColor>
|
||||
_vertexBuffer.SetData(vertices);
|
||||
|
||||
uint16[?] indices = .(
|
||||
|
||||
@@ -3,11 +3,11 @@ namespace GlitchyEngine.Renderer
|
||||
{
|
||||
public struct VertexBufferBinding
|
||||
{
|
||||
public Buffer Buffer;
|
||||
public VertexBuffer Buffer;
|
||||
public uint32 Stride;
|
||||
public uint32 Offset;
|
||||
|
||||
public this(Buffer buffer, uint32 stride, uint32 offset = 0)
|
||||
public this(VertexBuffer buffer, uint32 stride, uint32 offset = 0)
|
||||
{
|
||||
Buffer = buffer;
|
||||
Stride = stride;
|
||||
@@ -15,28 +15,29 @@ namespace GlitchyEngine.Renderer
|
||||
}
|
||||
}
|
||||
|
||||
public class VertexBuffer<T> : Buffer where T: struct, IVertexData
|
||||
public class VertexBuffer : Buffer
|
||||
{
|
||||
private VertexBufferBinding _defaultBinding;
|
||||
|
||||
private Type _vertexType;
|
||||
|
||||
public Type VertexDataType => _vertexType;
|
||||
|
||||
public VertexBufferBinding Binding => _defaultBinding;
|
||||
|
||||
public this(GraphicsContext context, uint32 vertexCount, Usage usage = .Default, CPUAccessFlags cpuAccess = .None) : base(context)
|
||||
public this(GraphicsContext context, Type vertexType, uint32 vertexCount, Usage usage = .Default, CPUAccessFlags cpuAccess = .None) : base(context)
|
||||
{
|
||||
_vertexType = vertexType;
|
||||
|
||||
_description = .(){
|
||||
Size = ((uint32)sizeof(T) * vertexCount),
|
||||
Size = ((uint32)_vertexType.Size * vertexCount),
|
||||
Usage = usage,
|
||||
CPUAccess = cpuAccess,
|
||||
BindFlags = .Vertex,
|
||||
MiscFlags = .None
|
||||
};
|
||||
|
||||
_defaultBinding = .(this, (.)sizeof(T), 0);
|
||||
}
|
||||
|
||||
public Result<void> SetData(Span<T> data, uint32 destinationVertexOffset = 0, MapType mapType = .Write)
|
||||
{
|
||||
return SetData<T>(data, destinationVertexOffset * (uint32)sizeof(T));
|
||||
_defaultBinding = .(this, (.)_vertexType.Size, 0);
|
||||
}
|
||||
|
||||
[Inline]
|
||||
|
||||
Reference in New Issue
Block a user