mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
143 lines
3.5 KiB
Beef
143 lines
3.5 KiB
Beef
using System;
|
|
using GlitchyEngine.Math;
|
|
|
|
namespace GlitchyEngine.Renderer
|
|
{
|
|
public enum ClearOptions
|
|
{
|
|
None = 0,
|
|
Color = 1,
|
|
Depth = 2,
|
|
Stencil = 4,
|
|
|
|
ColorDepth = Color | Depth,
|
|
ColorStencil = Color | Stencil,
|
|
DepthStencil = Depth | Stencil,
|
|
All = Color | Depth | Stencil
|
|
}
|
|
|
|
public static class RenderCommand
|
|
{
|
|
private static RendererAPI _rendererAPI;
|
|
|
|
public static RendererAPI RendererAPI
|
|
{
|
|
get => _rendererAPI;
|
|
set => _rendererAPI = value;
|
|
}
|
|
|
|
[Inline]
|
|
public static void Init()
|
|
{
|
|
Debug.Profiler.ProfileFunction!();
|
|
|
|
_rendererAPI.Init();
|
|
}
|
|
|
|
// REPORT!!!!!!!!!
|
|
// Inline doesn't compile
|
|
//[Inline]
|
|
public static void Clear(RenderTarget2D renderTarget, ColorRGBA color)
|
|
{
|
|
_rendererAPI.Clear(renderTarget, color);
|
|
}
|
|
|
|
public static void Clear(DepthStencilTarget target, ClearOptions options, float depth, uint8 stencil)
|
|
{
|
|
_rendererAPI.Clear(target, options, depth, stencil);
|
|
}
|
|
|
|
public static void Clear(RenderTarget2D renderTarget, ClearOptions options, ColorRGBA color, float depth, uint8 stencil)
|
|
{
|
|
_rendererAPI.Clear(renderTarget, options, color, depth, stencil);
|
|
}
|
|
|
|
public static void Clear(RenderTargetGroup renderTarget, ClearOptions options, ColorRGBA? color = null, float? depth = null, uint8? stencil = null)
|
|
{
|
|
_rendererAPI.Clear(renderTarget, options, color, depth, stencil);
|
|
}
|
|
|
|
public static void SetRenderTarget(RenderTarget2D renderTarget, int slot = 0, bool setDepthBuffer = false)
|
|
{
|
|
_rendererAPI.SetRenderTarget(renderTarget, slot, setDepthBuffer);
|
|
}
|
|
|
|
public static void SetRenderTargetGroup(RenderTargetGroup renderTarget, bool setDepthBuffer = true)
|
|
{
|
|
_rendererAPI.SetRenderTargetGroup(renderTarget, setDepthBuffer);
|
|
}
|
|
|
|
public static void SetDepthStencilTarget(DepthStencilTarget target)
|
|
{
|
|
_rendererAPI.SetDepthStencilTarget(target);
|
|
}
|
|
|
|
public static void UnbindRenderTargets()
|
|
{
|
|
_rendererAPI.UnbindRenderTargets();
|
|
}
|
|
|
|
public static void BindRenderTargets()
|
|
{
|
|
_rendererAPI.BindRenderTargets();
|
|
}
|
|
|
|
public static void SetRasterizerState(RasterizerState rasterizerState)
|
|
{
|
|
_rendererAPI.SetRasterizerState(rasterizerState);
|
|
}
|
|
|
|
public static void SetBlendState(BlendState blendState, ColorRGBA blendFactor = .White)
|
|
{
|
|
_rendererAPI.SetBlendState(blendState, blendFactor);
|
|
}
|
|
|
|
public static void SetDepthStencilState(DepthStencilState depthStencilState, uint8 stencilReference = 0)
|
|
{
|
|
_rendererAPI.SetDepthStencilState(depthStencilState, stencilReference);
|
|
}
|
|
|
|
[Inline]
|
|
public static void DrawIndexed(GeometryBinding geometry)
|
|
{
|
|
_rendererAPI.DrawIndexed(geometry);
|
|
}
|
|
|
|
[Inline]
|
|
public static void DrawIndexedInstanced(GeometryBinding geometry)
|
|
{
|
|
_rendererAPI.DrawIndexedInstanced(geometry);
|
|
}
|
|
|
|
public static void SetViewport(Viewport viewport)
|
|
{
|
|
_rendererAPI.SetViewport(viewport);
|
|
}
|
|
|
|
public static void SetViewport(float left, float top, float width, float height, float minDepth = 0.0f, float maxDepth = 1.0f)
|
|
{
|
|
SetViewport(.(left, top, width, height, minDepth, maxDepth));
|
|
}
|
|
|
|
public static void UnbindTextures()
|
|
{
|
|
_rendererAPI.UnbindTextures();
|
|
}
|
|
|
|
public static void BindConstantBuffer(Buffer buffer, int slot, ShaderStage stage)
|
|
{
|
|
_rendererAPI.BindConstantBuffer(buffer, slot, stage);
|
|
}
|
|
|
|
public static void BindVertexShader(VertexShader vertexShader)
|
|
{
|
|
_rendererAPI.BindVertexShader(vertexShader);
|
|
}
|
|
|
|
public static void BindPixelShader(PixelShader pixelShader)
|
|
{
|
|
_rendererAPI.BindPixelShader(pixelShader);
|
|
}
|
|
}
|
|
}
|