mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 21: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 _;
|
IndexBuffer _indexBuffer ~ delete _;
|
||||||
Buffer<ColorRGBA> _cBuffer ~ delete _;
|
Buffer<ColorRGBA> _cBuffer ~ delete _;
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ namespace GlitchyEngine
|
|||||||
VertexColor(CircleCoord(-pO3), Color(255, 0,255)),
|
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);
|
_vertexBuffer.SetData(vertices);
|
||||||
|
|
||||||
uint16[?] indices = .(
|
uint16[?] indices = .(
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ namespace GlitchyEngine.Renderer
|
|||||||
{
|
{
|
||||||
public struct VertexBufferBinding
|
public struct VertexBufferBinding
|
||||||
{
|
{
|
||||||
public Buffer Buffer;
|
public VertexBuffer Buffer;
|
||||||
public uint32 Stride;
|
public uint32 Stride;
|
||||||
public uint32 Offset;
|
public uint32 Offset;
|
||||||
|
|
||||||
public this(Buffer buffer, uint32 stride, uint32 offset = 0)
|
public this(VertexBuffer buffer, uint32 stride, uint32 offset = 0)
|
||||||
{
|
{
|
||||||
Buffer = buffer;
|
Buffer = buffer;
|
||||||
Stride = stride;
|
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 VertexBufferBinding _defaultBinding;
|
||||||
|
|
||||||
|
private Type _vertexType;
|
||||||
|
|
||||||
|
public Type VertexDataType => _vertexType;
|
||||||
|
|
||||||
public VertexBufferBinding Binding => _defaultBinding;
|
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 = .(){
|
_description = .(){
|
||||||
Size = ((uint32)sizeof(T) * vertexCount),
|
Size = ((uint32)_vertexType.Size * vertexCount),
|
||||||
Usage = usage,
|
Usage = usage,
|
||||||
CPUAccess = cpuAccess,
|
CPUAccess = cpuAccess,
|
||||||
BindFlags = .Vertex,
|
BindFlags = .Vertex,
|
||||||
MiscFlags = .None
|
MiscFlags = .None
|
||||||
};
|
};
|
||||||
|
|
||||||
_defaultBinding = .(this, (.)sizeof(T), 0);
|
_defaultBinding = .(this, (.)_vertexType.Size, 0);
|
||||||
}
|
|
||||||
|
|
||||||
public Result<void> SetData(Span<T> data, uint32 destinationVertexOffset = 0, MapType mapType = .Write)
|
|
||||||
{
|
|
||||||
return SetData<T>(data, destinationVertexOffset * (uint32)sizeof(T));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Inline]
|
[Inline]
|
||||||
|
|||||||
Reference in New Issue
Block a user