public TesselationEvaluationShader GetGLShaderToPixel(TesselationLayout layout) { return glShadersToGeometry.GetOrAdd(layout, this, (l, c) => c.CreateNative(l, ShaderStage.Pixel)); }
TesselationEvaluationShader CreateNative(TesselationLayout layout, ShaderStage outputStage) { var text = GenerateText<CDomainShader, Pair<TesselationLayout, ShaderStage>>(new Pair<TesselationLayout, ShaderStage>(layout, outputStage), WriteLayout, WriteIOAndCode); TesselationEvaluationShader glShader; string errors; if (!TesselationEvaluationShader.TryCompile(text, out glShader, out errors)) throw new Exception("Failed to compile a shader.\r\n\r\nShader Text:\r\n\r\n" + text + "\r\n\r\nErrors:\r\n\r\n" + errors); return glShader; }