From 3c58e207870f122988237548fc50c3e2e7f19e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Fri, 1 Jan 2021 14:47:49 +0100 Subject: [PATCH] Workaround beef bug --- .../src/Renderer/BufferCollection.bf | 24 ++++++++++++------- GlitchyEngine/src/Renderer/Shader.bf | 5 ++-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/GlitchyEngine/src/Renderer/BufferCollection.bf b/GlitchyEngine/src/Renderer/BufferCollection.bf index 8893d3f..7700056 100644 --- a/GlitchyEngine/src/Renderer/BufferCollection.bf +++ b/GlitchyEngine/src/Renderer/BufferCollection.bf @@ -7,31 +7,37 @@ namespace GlitchyEngine.Renderer { typealias BufferEntry = (String Name, int Index, Buffer Buffer, bool OwnsBuffer); - List _buffers ~ delete:append _; + List _buffers ~ DeleteBufferEntries!(_); - Dictionary _strToBuf ~ delete:append _; - Dictionary _idxToBuf ~ delete:append _; + Dictionary _strToBuf ~ delete _; //delete:append _; + Dictionary _idxToBuf ~ delete _; //delete:append _; [AllowAppend] public this() { - let buffers = append List(); - let strToBuf = append Dictionary(); - let idxToBuf = append Dictionary(); + // Todo: append allocate as soon as it's fixed + let buffers = new List(); + let strToBuf = new Dictionary(); + let idxToBuf = new Dictionary(); _buffers = buffers; _strToBuf = strToBuf; _idxToBuf = idxToBuf; } - - public ~this() + + mixin DeleteBufferEntries(List entries) { - for(let entry in _buffers) + if(entries == null) + return; + + for(let entry in entries) { delete entry.Name; if(entry.OwnsBuffer) delete entry.Buffer; } + + delete entries; } public Buffer this[int idx] => _idxToBuf[idx]; diff --git a/GlitchyEngine/src/Renderer/Shader.bf b/GlitchyEngine/src/Renderer/Shader.bf index 8ad38e4..ec74f36 100644 --- a/GlitchyEngine/src/Renderer/Shader.bf +++ b/GlitchyEngine/src/Renderer/Shader.bf @@ -23,7 +23,7 @@ namespace GlitchyEngine.Renderer { protected GraphicsContext _context; - protected BufferCollection _buffers ~ delete:append _; + protected BufferCollection _buffers ~ delete _;//:append _; public GraphicsContext Context => _context; @@ -32,7 +32,8 @@ namespace GlitchyEngine.Renderer [AllowAppend] public this(GraphicsContext context, String source, String entryPoint, ShaderDefine[] macros = null) { - let buffers = append BufferCollection(); + // Todo: append as soon as it's fixed. + let buffers = new BufferCollection(); _buffers = buffers; _context = context;