public void Dispatch(int xGroupCount, int yGroupCount, int zGroupCount) { var screen = _screen; ContextMismatchException.ThrowIfContextNotEqual(Engine.GetValidCurrentContext(), screen); var program = _program; ProgramObject.UseProgram(program); var context = new ComputeShaderContext(screen); var uniform = new ShaderDataDispatcher(program); IComputeShader.OnDispatchingInternal(_shader, uniform, context); IComputeShader.DispatchCompute(xGroupCount, yGroupCount, zGroupCount); }
protected abstract void OnRendering(ShaderDataDispatcher dispatcher, in Vector2i screenSize);
protected abstract void OnRendering(ShaderDataDispatcher dispatcher, Control target, in Matrix4 model, in Matrix4 view, in Matrix4 projection);
public void DispatchShader(ShaderDataDispatcher dispatcher, in Matrix4 model, in Matrix4 lightViewProjection)