using System.Diagnostics; namespace Quik.VertexGenerator { /// <summary> /// Represents a GPU vertex. /// </summary> [DebuggerDisplay("XY={Position} RGBA={Color}, UV={TextureCoordinates}")] public struct QuikVertex { /// <summary> /// Position value. /// </summary> public QVec2 Position; /// <summary> /// Texture Coordinates. /// </summary> public QVec2 TextureCoordinates; /// <summary> /// Per vertex color value. /// </summary> public QColor Color; /// <summary> /// Per vertex depth index value. /// </summary> public int ZIndex; /// <summary> /// The texture layer to draw for 3d images. /// </summary> public float TextureLayer; public static int PositionOffset => 0; public static unsafe int TextureCoordinatesOffset => sizeof(QVec2); public static unsafe int ColorOffset => 2 * sizeof(QVec2); public static unsafe int ZIndexOffset => ColorOffset + sizeof(QColor); public static unsafe int TextureLayerOffset => ZIndexOffset + sizeof(int); public static unsafe int Stride => sizeof(QuikVertex); } }