Example #1
0
        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);
            }
        }
Example #2
0
		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;
		}
Example #3
0
 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;
 }