internal IEnumerable <VertexShaderOutput> Execute(IEnumerable <InputAssemblerVertexOutput> inputs) { SetShaderConstants(); foreach (var input in inputs) { SetShaderInputs(0, 0, input.Data); VirtualMachine.Execute(); var outputs = GetShaderOutputs(0); var result = new VertexShaderOutput { VertexID = input.VertexID, InstanceID = input.InstanceID, InputData = input.Data, OutputData = outputs }; if (_outputPositionRegister != null) { result.Position = outputs[_outputPositionRegister.Value]; } yield return(result); } }
public Fragment(VertexShaderOutput[] vertices, int primitiveID, uint renderTargetArrayIndex, int x, int y, FragmentQuadLocation quadLocation, bool isInsideViewport) { Vertices = vertices; PrimitiveID = primitiveID; RenderTargetArrayIndex = renderTargetArrayIndex; X = x; Y = y; QuadLocation = quadLocation; IsInsideViewport = isInsideViewport; Samples = new Samples(); Data = null; }
public PixelEventArgs( VertexShaderOutput[] vertices, int primitiveID, uint renderTargetArrayIndex, int x, int y, ref Number4 pixelShader, ref Number4 previous, Number4? result, PixelExclusionReason exclusionReason) { _vertices = vertices; _primitiveID = primitiveID; _renderTargetArrayIndex = renderTargetArrayIndex; _x = x; _y = y; _pixelShader = pixelShader; _previous = previous; _result = result; _exclusionReason = exclusionReason; }