mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-06 05:01:53 +00:00
Added vertex shader
This commit is contained in:
@@ -166,6 +166,14 @@ namespace GlitchyEngine.Renderer
|
||||
nativeContext.InputAssembler.SetPrimitiveTopology((DirectX.Common.PrimitiveTopology)primitiveTopology);
|
||||
}
|
||||
|
||||
public override void SetVertexShader(VertexShader vertexShader)
|
||||
{
|
||||
//Todo: nativeContext.VertexShader.SetSamplers();
|
||||
//Todo: nativeContext.VertexShader.SetConstantBuffers();
|
||||
//Todo: nativeContext.VertexShader.SetShaderResources();
|
||||
nativeContext.VertexShader.SetShader(vertexShader.nativeShader);
|
||||
}
|
||||
|
||||
public override void SetPixelShader(PixelShader pixelShader)
|
||||
{
|
||||
//Todo: nativeContext.PixelShader.SetSamplers();
|
||||
|
||||
@@ -29,7 +29,8 @@ namespace GlitchyEngine.Renderer
|
||||
var result = D3DCompiler.D3DCompile(code.CStr(), (.)code.Length, null, nativeMacros, null, entryPoint, target, compileFlags, .None, &shaderBlob, &errorBlob);
|
||||
if(result.Failed)
|
||||
{
|
||||
Log.EngineLogger.Error($"Failed to compile Shader: Error Code({(int)result}): {result} | Error Message: {scope String((char8*)errorBlob.GetBufferPointer(), errorBlob.GetBufferSize())}");
|
||||
StringView str = StringView((char8*)errorBlob.GetBufferPointer(), errorBlob.GetBufferSize());
|
||||
Log.EngineLogger.Error($"Failed to compile Shader: Error Code({(int)result}): {result} | Error Message: {str}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -81,4 +82,32 @@ namespace GlitchyEngine.Renderer
|
||||
reflection.Release();
|
||||
}
|
||||
}
|
||||
|
||||
extension VertexShader
|
||||
{
|
||||
internal ID3D11VertexShader* nativeShader ~ _?.Release();
|
||||
|
||||
internal ID3DBlob* nativeCode ~ _?.Release();
|
||||
|
||||
public override void CompileFromSource(String code, String entryPoint, ShaderDefine[] macros = null)
|
||||
{
|
||||
ShaderCompileFlags flags = .Default;
|
||||
|
||||
#if DEBUG
|
||||
flags |= .Debug;
|
||||
#else
|
||||
flags |= .OptimizationLevel3;
|
||||
#endif
|
||||
|
||||
Shader.PlattformCompileShaderFromSource(code, macros, entryPoint, "vs_5_0", flags, out nativeCode);
|
||||
|
||||
var result = _context.nativeDevice.CreateVertexShader(nativeCode.GetBufferPointer(), nativeCode.GetBufferSize(), null, &nativeShader);
|
||||
if(result.Failed)
|
||||
{
|
||||
Log.EngineLogger.Error($"Failed to create vertex shader: Message ({(int)result}): {result}");
|
||||
}
|
||||
|
||||
//int i = nativeCode?.Release() ?? (uint32)-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user