public void SetInputLayout(IInputLayout inputLayout) { var command = new GLCommand { Type = CommandType.SetInputLayout, InputLayout = (GL46InputLayout)inputLayout }; _commandList.Add(command); }
public GL46Pipeline(Shader vertexShader, Shader pixelShader, IInputLayout inputLayout, Viewport viewport, PrimitiveTopology primitiveTopology) { VertexShader = vertexShader; PixelShader = pixelShader; InputLayout = inputLayout; Viewport = viewport; PrimitiveTopology = primitiveTopology; OpenTK.Graphics.OpenGL4.GL.CreateProgramPipelines(1, out _nativePipeline); OpenTK.Graphics.OpenGL4.GL.UseProgramStages(_nativePipeline, ProgramStageMask.VertexShaderBit, (GL46Shader)vertexShader); OpenTK.Graphics.OpenGL4.GL.UseProgramStages(_nativePipeline, ProgramStageMask.FragmentShaderBit, (GL46Shader)pixelShader); }
public override void Build(IDevice device) { _indexBuffer = device.CreateIndexBuffer(new int[] { 0, 3, 1, 3, 2, 1 }); _vertexBuffer = device.CreateVertexBuffer(CreateCube()); using var pixelShaderBlob = new Blob(device.TEMPORARYCompiler.CompileShaderFromFile(@"F:\Git\GameDev\resources\shaders\BackBufferPixelShader.hlsl", "main", "ps_5_0")); _pixelShader = device.CreatePixelShader(pixelShaderBlob); using var vertexShaderBlob = new Blob(device.TEMPORARYCompiler.CompileShaderFromFile(@"F:\Git\GameDev\resources\shaders\BackBufferVertexShader.hlsl", "main", "vs_5_0")); _vertexShader = device.CreateVertexShader(vertexShaderBlob); _inputLayout = device.CreateInputLayout(new VertexLayout(2).Append("POSITION", VertexLayoutTypes.Position2D).Append("TEXCOORD", VertexLayoutTypes.Position2D), vertexShaderBlob); _sampler = device.CreateSampler(); }
public D3D11Pipeline(Shader vertexShader, Shader pixelShader, IInputLayout inputLayout, IBlendState blendState, IDepthStencilState depthStencilState, IRasterizerState rasterizerState, Viewport viewport, PrimitiveTopology primitiveTopology) { VertexShader = vertexShader; PixelShader = pixelShader; InputLayout = inputLayout; BlendState = blendState; DepthStencilState = depthStencilState; RasterizerState = rasterizerState; Viewport = viewport; PrimitiveTopology = primitiveTopology; }
public RenderMeshPass(IDevice device, ID3DCompiler compiler) { using var vertexShaderBlob = new Blob(compiler.CompileShaderFromFile(@"F:\Git\GameDev\src\Titan.D3D11.Bindings\VertexShader.hlsl", "main", "vs_5_0")); using var pixelShaderBlob = new Blob(compiler.CompileShaderFromFile(@"F:\Git\GameDev\src\Titan.D3D11.Bindings\PixelShader.hlsl", "main", "ps_5_0")); _vertexShader = device.CreateVertexShader(vertexShaderBlob); _pixelShader = device.CreatePixelShader(pixelShaderBlob); _inputLayout = device.CreateInputLayout(new VertexLayout(4).Append("Position", VertexLayoutTypes.Position3D).Append("Normal", VertexLayoutTypes.Position3D).Append("Texture", VertexLayoutTypes.Texture2D).Append("Color", VertexLayoutTypes.Float4Color), vertexShaderBlob); _perFrameConstantBuffer = device.CreateConstantBuffer <PerFrameContantBuffer>(BufferUsage.Dynamic, BufferAccessFlags.Write); _lightsConstantBuffer = device.CreateConstantBuffer <LightsConstantBuffer>(BufferUsage.Dynamic, BufferAccessFlags.Write); _perObjectConstantBuffer = device.CreateConstantBuffer <PerObjectContantBuffer>(BufferUsage.Dynamic, BufferAccessFlags.Write); _sampler = device.CreateSampler(); }
public RenderToBackbufferPass(IDevice device, ID3DCompiler compiler) { _backBuffer = device.BackBuffer; _depthStencil = device.DepthStencil; _indexBuffer = device.CreateIndexBuffer(new int[] { 0, 3, 1, 3, 2, 1 }); _vertexBuffer = device.CreateVertexBuffer(CreateCube()); using var pixelShaderBlob = new Blob(compiler.CompileShaderFromFile(@"F:\Git\GameDev\resources\shaders\BackBufferPixelShader.hlsl", "main", "ps_5_0")); _pixelShader = device.CreatePixelShader(pixelShaderBlob); using var vertexShaderBlob = new Blob(compiler.CompileShaderFromFile(@"F:\Git\GameDev\resources\shaders\BackBufferVertexShader.hlsl", "main", "vs_5_0")); _vertexShader = device.CreateVertexShader(vertexShaderBlob); _inputLayout = device.CreateInputLayout(new VertexLayout(2).Append("POSITION", VertexLayoutTypes.Position2D).Append("TEXCOORD", VertexLayoutTypes.Position2D), vertexShaderBlob); _sampler = device.CreateSampler(); }
public SpriteBatchRenderer(IDevice device, IBlobReader blobReader, ICameraFactory cameraFactory) { _device = device; _context = _device.ImmediateContext; _camera = cameraFactory.CreateOrhographicCamera(); _buffer = device.CreateVertexBuffer <Vertex2D>(MaxVertices, BufferUsage.Dynamic, BufferAccessFlags.Write); _indices = device.CreateIndexBuffer(CreateIndices()); _sampler = device.CreateSampler(true); _blendState = device.CreateBlendState(); _cameraBuffer = device.CreateConstantBuffer(new Camera { Transform = _camera.ViewProjection }); using var vertexShaderBlob = blobReader.ReadFromFile("Shaders/VertexShader2D.cso"); _vertexShader = device.CreateVertexShader(vertexShaderBlob); using var pixelShaderBlob = blobReader.ReadFromFile("Shaders/PixelShader2D.cso"); _pixelShader = device.CreatePixelShader(pixelShaderBlob); _inputLayout = device.CreateInputLayout(new VertexLayout(3).Append("Position", VertexLayoutTypes.Position2D).Append("Textures", VertexLayoutTypes.Texture2D).Append("Color", VertexLayoutTypes.Float4Color), vertexShaderBlob); }
public IPipeline CreatePipeline(Shader vertexShader, Shader pixelShader, IInputLayout inputLayout, IBlendState blendState, IDepthStencilState depthStencilState, IRasterizerState rasterizerState, Viewport viewport, PrimitiveTopology primitiveTopology) { throw new System.NotImplementedException(); }
public IPipeline CreatePipeline(Shader vertexShader, Shader pixelShader, IInputLayout inputLayout, IBlendState blendState, IDepthStencilState depthStencilState, IRasterizerState rasterizerState, Viewport viewport, PrimitiveTopology primitiveTopology) { return(new D3D11Pipeline(vertexShader, pixelShader, inputLayout, blendState, depthStencilState, rasterizerState, viewport, primitiveTopology)); }
void Awake() { _currentInputStatus = new Dictionary <KeyCode, bool>(); inputLayout = inputLayout ?? _inputLayoutSO; }