Files
glitchy-engine-beef/GlitchyEngine/src/Renderer/DepthStencilTarget.bf
T

44 lines
1017 B
Beef

using System;
namespace GlitchyEngine.Renderer
{
public enum DepthStencilFormat
{
D16_UNorm,
D24_UNorm_S8_UInt,
D32_Float,
D32_Float_S8X24_UInt,
None
}
// TODO: add all features.
public class DepthStencilTarget : RefCounted
{
protected internal GraphicsContext _context ~ _?.ReleaseRef();
protected uint32 _width, _height;
protected DepthStencilFormat _format;
public uint32 Width => _width;
public uint32 Height => _height;
public DepthStencilFormat Format => _format;
public this(GraphicsContext context, uint32 width, uint32 height, DepthStencilFormat format = .D32_Float)
{
Log.EngineLogger.Assert(format != .None, "DepthStencilFormat None is only valid for RenderTarget");
_context = context..AddRef();
_width = width;
_height = height;
_format = format;
PlatformCreate();
}
protected extern void PlatformCreate();
public extern void Bind();
public extern void Clear(float depthValue, uint8 stencilValue, DepthStencilClearFlag clearFlags);
}
}