Moved ImplBind implementation from Texture2D to Texture

This commit is contained in:
Simon Lübeß
2021-03-23 19:07:41 +01:00
parent ec83dfa21d
commit dfeed4a5c9
2 changed files with 12 additions and 10 deletions
@@ -7,10 +7,20 @@ using internal GlitchyEngine.Renderer;
namespace GlitchyEngine.Renderer namespace GlitchyEngine.Renderer
{ {
extension Texture
{
protected internal ID3D11ShaderResourceView* nativeView ~ _?.Release();
protected override void ImplBind(uint32 slot)
{
_context.nativeContext.VertexShader.SetShaderResources(slot, 1, &nativeView);
_context.nativeContext.PixelShader.SetShaderResources(slot, 1, &nativeView);
}
}
extension Texture2D extension Texture2D
{ {
internal ID3D11Texture2D* nativeTexture ~ _?.Release(); internal ID3D11Texture2D* nativeTexture ~ _?.Release();
internal ID3D11ShaderResourceView* nativeView ~ _?.Release();
internal Texture2DDescription nativeDesc; internal Texture2DDescription nativeDesc;
public override uint32 Width => nativeDesc.Width; public override uint32 Width => nativeDesc.Width;
@@ -38,11 +48,5 @@ namespace GlitchyEngine.Renderer
nativeTexture.GetDescription(out nativeDesc); nativeTexture.GetDescription(out nativeDesc);
} }
protected override void ImplBind(uint32 slot)
{
_context.nativeContext.VertexShader.SetShaderResources(slot, 1, &nativeView);
_context.nativeContext.PixelShader.SetShaderResources(slot, 1, &nativeView);
}
} }
} }
+1 -3
View File
@@ -38,7 +38,7 @@ namespace GlitchyEngine.Renderer
_samplerState.Bind(slot); _samplerState.Bind(slot);
} }
protected abstract void ImplBind(uint32 slot); protected extern void ImplBind(uint32 slot);
protected this(GraphicsContext context) protected this(GraphicsContext context)
{ {
@@ -56,8 +56,6 @@ namespace GlitchyEngine.Renderer
public override extern uint32 ArraySize {get;} public override extern uint32 ArraySize {get;}
public override extern uint32 MipLevels {get;} public override extern uint32 MipLevels {get;}
protected override extern void ImplBind(uint32 slot);
public this(GraphicsContext context, String path) : base(context) public this(GraphicsContext context, String path) : base(context)
{ {
this._path = new String(path); this._path = new String(path);