| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using Ryujinx.Graphics.Shader.Translation;
- namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
- {
- public static class Varying
- {
- public static string GetName(int offset)
- {
- offset <<= 2;
- if (offset >= AttributeConsts.UserAttributeBase &&
- offset < AttributeConsts.UserAttributeEnd)
- {
- offset -= AttributeConsts.UserAttributeBase;
- string name = $"{ DefaultNames.OAttributePrefix}{(offset >> 4)}";
- name += "_" + "xyzw"[(offset >> 2) & 3];
- return name;
- }
- switch (offset)
- {
- case AttributeConsts.PositionX:
- case AttributeConsts.PositionY:
- case AttributeConsts.PositionZ:
- case AttributeConsts.PositionW:
- return "gl_Position";
- case AttributeConsts.PointSize:
- return "gl_PointSize";
- case AttributeConsts.ClipDistance0:
- return "gl_ClipDistance[0]";
- case AttributeConsts.ClipDistance1:
- return "gl_ClipDistance[1]";
- case AttributeConsts.ClipDistance2:
- return "gl_ClipDistance[2]";
- case AttributeConsts.ClipDistance3:
- return "gl_ClipDistance[3]";
- case AttributeConsts.ClipDistance4:
- return "gl_ClipDistance[4]";
- case AttributeConsts.ClipDistance5:
- return "gl_ClipDistance[5]";
- case AttributeConsts.ClipDistance6:
- return "gl_ClipDistance[6]";
- case AttributeConsts.ClipDistance7:
- return "gl_ClipDistance[7]";
- case AttributeConsts.VertexId:
- return "gl_VertexID";
- }
- return null;
- }
- public static int GetSize(int offset)
- {
- switch (offset << 2)
- {
- case AttributeConsts.PositionX:
- case AttributeConsts.PositionY:
- case AttributeConsts.PositionZ:
- case AttributeConsts.PositionW:
- return 4;
- }
- return 1;
- }
- }
- }
|