public CGeometryShader(ICDevice device, CShaderReflection reflection) : base(device, reflection) { maxVertexCount = Reflection.GetMaxVertexCount(); inputPrimitiveType = Reflection.GetGeometryInputPrimitiveType(); outputPrimitiveType = Reflection.GetGeometryOutputPrimitiveType(); }
public static string GeometryShaderInputPrimitiveTypeToString(GeometryShaderInputPrimitiveType type) { switch (type) { case GeometryShaderInputPrimitiveType.Point: return "points"; case GeometryShaderInputPrimitiveType.Line: return "lines"; case GeometryShaderInputPrimitiveType.Triangle: return "triangles"; case GeometryShaderInputPrimitiveType.LineWithAdjacency: return "lines_adjacency"; case GeometryShaderInputPrimitiveType.TriangleWithAdjacency: return "triangles_adjacency"; default: throw new ArgumentOutOfRangeException("type"); } }
static int GetInputVertexCount(GeometryShaderInputPrimitiveType primitiveType) { switch (primitiveType) { case GeometryShaderInputPrimitiveType.Point: return 1; case GeometryShaderInputPrimitiveType.Line: return 2; case GeometryShaderInputPrimitiveType.Triangle: return 3; case GeometryShaderInputPrimitiveType.LineWithAdjacency: return 4; case GeometryShaderInputPrimitiveType.TriangleWithAdjacency: return 6; default: throw new ArgumentOutOfRangeException("primitiveType"); } }