static unsafe void Main(string[] args) { var shader = new TestShader(); ShaderInterpreter <IVertexShader> .Interpret <TestShader>(); Stopwatch sw = new Stopwatch(); sw.Start(); ShaderInvoker <IVertexShader> .ChangeActiveShader(shader); Vector4[] input = new Vector4[itr_count]; for (int i = 0; i < 480000 / itr_count; i++) { for (int j = 0; j < itr_count; j++) { input[j].X = i; input[j].Y = i; input[j].Z = i; input[j].W = i; } ShaderInvoker <IVertexShader> .Invoke(itr_count, input); } sw.Stop(); WriteLine(sw.ElapsedMilliseconds); ReadKey(); }
static unsafe void Main(string[] args) { var shader = new TestShader(); ShaderInterpreter <IVertexShader> .Interpret <TestShader>(); Stopwatch sw = new Stopwatch(); sw.Start(); ShaderInvoker <IVertexShader> .ChangeActiveShader(shader); float *zero = stackalloc float[4]; *(Vector4 *)zero = Vector4.Zero; for (int i = 0; i < 480000; i++) { ShaderInvoker <IVertexShader> .Invoke(zero); } sw.Stop(); WriteLine(sw.ElapsedMilliseconds); ReadKey(); }
public void TestShaderInterpret() { ShaderInterpreter <IVertexShader> .InterpretAll(); ShaderInterpreter <IFragmentShader> .InterpretAll(); }
static Shader_Scale() { ShaderInterpreter <IVertexShader, ShaderInOutPatternDefault> .Interpret <Shader_Scale>(); }
static Shader_Distort() { ShaderInterpreter <IVertexShader, ShaderInOutPatternDefault> .Interpret <Shader_Distort>(); }