Files
bluflame/aiwaz/Aiwaz.Contracts/IRenderTargetBase.cs
2026-04-18 22:31:51 +02:00

61 lines
1.7 KiB
C#

using SlimDX;
using SlimDX.Direct3D10;
namespace Aiwaz.Contracts
{
public class ViewPort
{
public ViewPort()
{
MaxDepth = 1.0f;
}
public int TopLeftX;
public int TopLeftY;
public int Width;
public int Height;
public float MinDepth;
public float MaxDepth;
public static implicit operator SlimDX.Direct3D10.Viewport(ViewPort vp)
{
return new SlimDX.Direct3D10.Viewport(vp.TopLeftX, vp.TopLeftY, vp.Width, vp.Height, vp.MinDepth, vp.MaxDepth);
}
};
public enum BindFlags
{
None = 0x000,
ClearDepthStencil = 0x001,
ClearColor = 0x002,
ClearAll = 0x00F,
BindAdditionalTexture0 = 0x010,
BindAdditionalTexture1 = 0x020,
BindAdditionalTexture2 = 0x040,
BindAdditionalTexture3 = 0x080,
BindBaseTexture = 0x100,
BindAllTextures = 0xFF0,
Default = ClearAll | BindAllTextures
};
public interface IRenderTargetBase
{
float ClearDepth { get; set; }
byte ClearStencil { get; set; }
Color4 ClearColor { get; set; }
ViewPort ViewPort { get; set; }
int RenderTargetWidth { get; }
int RenderTargetHeight { get; }
SlimDX.DXGI.Format RenderTargetFormat { get; }
bool HasDepthStencilBuffer { get; set; }
RenderTargetView DX10RenderTargetView { get; }
DepthStencilView DX10DepthStencilView { get; }
void AddAdditionalRenderTarget(IRenderTargetBase target);
void RemoveAdditionalRenderTarget(IRenderTargetBase target);
void Bind(BindFlags bindFlags);
void UnbindAllRenderTargets();
};
}