Skip to content

Commit

Permalink
Expose Framebuffer removal
Browse files Browse the repository at this point in the history
  • Loading branch information
deccer committed Dec 26, 2022
1 parent 201972f commit 53d4ae5
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/EngineKit/Graphics/FramebufferFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,15 @@ public uint GetOrCreateFramebuffer(FramebufferRenderDescriptor framebufferRender
: CreateFramebuffer(framebufferRenderDescriptor);
}

public void RemoveFramebuffer(FramebufferRenderDescriptor framebufferRenderDescriptor)
{
if (_framebufferCache.TryGetValue(framebufferRenderDescriptor, out var framebuffer))
{
GL.DeleteFramebuffer(framebuffer);
_framebufferCache.Remove(framebufferRenderDescriptor);
}
}

private uint CreateFramebuffer(FramebufferRenderDescriptor framebufferRenderDescriptor)
{
_logger.Debug("Creating Framebuffer");
Expand Down
5 changes: 5 additions & 0 deletions src/EngineKit/Graphics/GraphicsContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -512,4 +512,9 @@ public void InsertMemoryBarrier(BarrierMask mask)
{
GL.MemoryBarrier(mask.ToGL());
}

public void RemoveFramebuffer(FramebufferRenderDescriptor framebufferRenderDescriptor)
{
_framebufferFactory.RemoveFramebuffer(framebufferRenderDescriptor);
}
}
2 changes: 2 additions & 0 deletions src/EngineKit/Graphics/IFramebufferFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ namespace EngineKit.Graphics;
internal interface IFramebufferFactory : IDisposable
{
uint GetOrCreateFramebuffer(FramebufferRenderDescriptor framebufferRenderDescriptor);

void RemoveFramebuffer(FramebufferRenderDescriptor framebufferRenderDescriptor);
}
2 changes: 2 additions & 0 deletions src/EngineKit/Graphics/IGraphicsContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,6 @@ ITexture CreateTexture2D(
void EndRender();

void InsertMemoryBarrier(BarrierMask mask);

void RemoveFramebuffer(FramebufferRenderDescriptor framebufferRenderDescriptor);
}

0 comments on commit 53d4ae5

Please sign in to comment.