public static ParticleRenderableComponent GetParticlesCom() { var name = "Particle"; var compiler = new D3DShaderCompilator(null); var vertex = new ShaderInMemoryInfo(name + "Vertex", ShaderStructures + VertexShaderText, compiler.Compile(ShaderStructures + VertexShaderText, "TriangleVS", ShaderStages.Vertex.ToString()), ShaderStages.Vertex.ToString(), "TriangleVS"); //var geometry = new ShaderInMemoryInfo(name + "Geometry", ShaderStructures + GeometryShaderText, // compiler.Compile(ShaderStructures + GeometryShaderText, // "TriangleGS", ShaderStages.Geometry.ToString()), // ShaderStages.Geometry.ToString(), "TriangleGS"); var pixel = new ShaderInMemoryInfo(name + "Pixel", ShaderStructures + PixelShaderText, compiler.Compile(ShaderStructures + PixelShaderText, "TrianglePS", ShaderStages.Fragment.ToString()), ShaderStages.Fragment.ToString(), "TrianglePS"); var pass = new ShaderTechniquePass(new IShaderInfo[] { vertex, /*geometry,*/ pixel }); var shader = new ParticleShaderSpecification(new[] { pass }); return(new ParticleRenderableComponent(shader, new ParticleDeviceBufferesUpdater(shader))); }
static BoundingBoxRenderableComponent GetBoundingBoxCom(BoundingBox box) { var name = "BoundingBoxShader"; var compiler = new D3DShaderCompilator(null); var vertex = new ShaderInMemoryInfo(name + "Vertex", VertexShaderText, compiler.Compile(VertexShaderText, "VShaderBoundingBox", ShaderStages.Vertex.ToString()), ShaderStages.Vertex.ToString(), "VShaderBoundingBox"); var pixel = new ShaderInMemoryInfo(name + "Pixel", PixelShaderText, compiler.Compile(PixelShaderText, "PShaderBoundingBox", ShaderStages.Fragment.ToString()), ShaderStages.Fragment.ToString(), "PShaderBoundingBox"); var geometry = new ShaderInMemoryInfo(name + "Geometry", GeometryShaderText, compiler.Compile(GeometryShaderText, "GShaderBoundingBox", ShaderStages.Geometry.ToString()), ShaderStages.Geometry.ToString(), "GShaderBoundingBox"); var pass = new ShaderTechniquePass(new IShaderInfo[] { vertex, geometry, pixel, }); var shader = new LineShaderSpecification(new[] { pass }); return(new BoundingBoxRenderableComponent(shader, new LineDeviceBufferesUpdater(shader), box)); }
bool CreateInfo(List <IShaderInfo> infos, string keyname, string[] parts, string partName, ref int i) { var part = parts[i].Trim(); if (part.Length == partName.Length && string.Compare(part, partName, true) == 0 && parts.Length > (i + 1)) { i++; var info = new ShaderInMemoryInfo($"{keyname}_{partName}Shader", parts[i].Trim(), null, partName, entry); infos.Add(info); return(true); } return(false); }