public static string BuildShaderSource(QShaderData shader) { //devuelve el codigo del Fx ShaderCode shaderCode = new ShaderCode(); shaderCode.AuxFuntions.Add(CreateSquareFunction()); shaderCode.AuxFuntions.Add(CreateTriangleFunction()); shaderCode.VsStruct.Add("float4 Pos : POSITION;"); shaderCode.VsStruct.Add("float3 Normal : NORMAL;"); shaderCode.VsStruct.Add("float4 Color : COLOR;"); shaderCode.VsStruct.Add("float2 Tex0 : TEXCOORD0;"); shaderCode.VsStruct.Add("float2 Tex1 : TEXCOORD1;"); shaderCode.PsStruct.Add("float4 Pos : POSITION;"); shaderCode.PsStruct.Add("float3 Normal : NORMAL;"); shaderCode.PsStruct.Add("float4 Color : COLOR;"); shaderCode.PsStruct.Add("float2 Tex0 : TEXCOORD0;"); shaderCode.PsStruct.Add("float2 Tex1 : TEXCOORD1;"); shaderCode.Globals.Add("float4x4 g_mWorld;// : WORLD;"); shaderCode.Globals.Add("float4x4 g_mViewProj;// : VIEWPROJECTION;"); shaderCode.Globals.Add("float g_time;// : TIME;"); shaderCode.Globals.Add("sampler2D texture0 : register(s0);"); shaderCode.Globals.Add("sampler2D texture1 : register(s1);"); foreach (QShaderStage qstage in shader.Stages) { StageCode stageCode = shaderCode.NewStage(); stageCode.VertexLines = BuildVertexShader(shader, qstage); stageCode.PixelLines = BuildPixelShader(shader, qstage); stageCode.StatesLines = BuildEffectState(shader, qstage); } return(shaderCode.Build()); }
public static string BuildShaderSource(QShaderData shader) { //devuelve el codigo del Fx ShaderCode shaderCode = new ShaderCode(); shaderCode.AuxFuntions.Add(CreateSquareFunction()); shaderCode.AuxFuntions.Add(CreateTriangleFunction()); shaderCode.VsStruct.Add("float4 Pos : POSITION;"); shaderCode.VsStruct.Add("float3 Normal : NORMAL;"); shaderCode.VsStruct.Add("float4 Color : COLOR;"); shaderCode.VsStruct.Add("float2 Tex0 : TEXCOORD0;"); shaderCode.VsStruct.Add("float2 Tex1 : TEXCOORD1;"); shaderCode.PsStruct.Add("float4 Pos : POSITION;"); shaderCode.PsStruct.Add("float3 Normal : NORMAL;"); shaderCode.PsStruct.Add("float4 Color : COLOR;"); shaderCode.PsStruct.Add("float2 Tex0 : TEXCOORD0;"); shaderCode.PsStruct.Add("float2 Tex1 : TEXCOORD1;"); shaderCode.Globals.Add("float4x4 g_mWorld;// : WORLD;"); shaderCode.Globals.Add("float4x4 g_mViewProj;// : VIEWPROJECTION;"); shaderCode.Globals.Add("float g_time;// : TIME;"); shaderCode.Globals.Add("sampler2D texture0 : register(s0);"); shaderCode.Globals.Add("sampler2D texture1 : register(s1);"); foreach (QShaderStage qstage in shader.Stages) { StageCode stageCode = shaderCode.NewStage(); stageCode.VertexLines = BuildVertexShader(shader, qstage); stageCode.PixelLines = BuildPixelShader(shader, qstage); stageCode.StatesLines = BuildEffectState(shader, qstage); } return shaderCode.Build(); }