spv.150.geom 780 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #version 150 core
  2. layout(triangles_adjacency) in;
  3. layout(max_vertices = 30) out;
  4. layout(stream = 3, triangle_strip) out;
  5. in fromVertex {
  6. in vec3 color;
  7. } fromV[];
  8. out toFragment {
  9. out vec3 color;
  10. } toF;
  11. out fromVertex {
  12. vec3 color;
  13. };
  14. void main()
  15. {
  16. color = fromV[0].color;
  17. //?? gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2];
  18. gl_Position = gl_in[0].gl_Position;
  19. gl_PointSize = gl_in[3].gl_PointSize;
  20. gl_PrimitiveID = gl_PrimitiveIDIn;
  21. gl_Layer = 2;
  22. EmitVertex();
  23. color = 2 * fromV[0].color;
  24. gl_Position = 2.0 * gl_in[0].gl_Position;
  25. gl_PointSize = 2.0 * gl_in[3].gl_PointSize;
  26. gl_PrimitiveID = gl_PrimitiveIDIn + 1;
  27. gl_Layer = 3;
  28. EmitVertex();
  29. EndPrimitive();
  30. }