Exemplo n.º 1
0
 /// <summary>
 /// Creates a new instance of <see cref="VertexElement"/>.
 /// </summary>
 /// <param name="semantic">The element's shader semantic.</param>
 /// <param name="semanticIndex">The element's shader semantic index</param>
 /// <param name="format">The element's format.</param>
 /// <param name="offset">The element's offset from the start of the vertex data.</param>
 public VertexElement(VertexSemantic semantic, int semanticIndex, VertexFormat format, int offset)
 {
     Offset        = offset;
     SemanticName  = semantic;
     SemanticIndex = semanticIndex;
     Format        = format;
 }
Exemplo n.º 2
0
        private int IncrementSemanticIndex(VertexSemantic semantic)
        {
            int arrayIndex = (int)semantic;
            int arrayValue = _semanticIndexCount[arrayIndex];

            _semanticIndexCount[arrayIndex] = arrayValue + 1;
            return(arrayValue);
        }
Exemplo n.º 3
0
            private static VertexElementUsage Convert(VertexSemantic semantic)
            {
                switch (semantic)
                {
                case VertexSemantic.Color: return(VertexElementUsage.Color);

                case VertexSemantic.Texture: return(VertexElementUsage.TextureCoordinate);

                case VertexSemantic.Position: return(VertexElementUsage.Position);

                default:
                    throw new Exception($"Unsupported semantic: {semantic}");
                }
            }
Exemplo n.º 4
0
        /// <summary>
        /// Deserializes the object and populates it from the input.
        /// </summary>
        /// <param name="input">Savable input</param>
        public void Read(ISavableReader input)
        {
            _vertexStride = input.ReadInt();
            int count = input.ReadInt();

            _elements = new VertexElement[count];
            for (int i = 0; i < count; i++)
            {
                VertexSemantic semantic      = input.ReadEnum <VertexSemantic>();
                int            semanticIndex = input.ReadInt();
                VertexFormat   format        = input.ReadEnum <VertexFormat>();
                int            offset        = input.ReadInt();
                _elements[i] = new VertexElement(semantic, semanticIndex, format, offset);
            }
            GetHashCode();
        }
Exemplo n.º 5
0
        internal static String ToD3DVertexSemantic(VertexSemantic semantic)
        {
            switch (semantic)
            {
            case VertexSemantic.Position:
                return("POSITION");

            case VertexSemantic.Normal:
                return("NORMAL");

            case VertexSemantic.Color:
                return("COLOR");

            case VertexSemantic.TextureCoordinate:
                return("TEXCOORD");

            case VertexSemantic.Binormal:
                return("BINORMAL");

            case VertexSemantic.Tangent:
                return("TANGENT");

            case VertexSemantic.BlendIndices:
                return("BLENDINDICES");

            case VertexSemantic.BlendWeight:
                return("BLENDWEIGHT");

            case VertexSemantic.Depth:
                return("DEPTH");

            case VertexSemantic.Fog:
                return("FOG");

            case VertexSemantic.PointSize:
                return("PSIZE");

            default:
                throw new ArgumentException("Invalid vertex semantic");
            }
        }
Exemplo n.º 6
0
 public VertexElementAttribute(VertexElementType elementType, VertexSemantic semantic, int usageIndex = 0)
 {
     VertexSchema = new VertexSchema(elementType, semantic, usageIndex);
 }
Exemplo n.º 7
0
 public VertexSchema(VertexElementType elementType, VertexSemantic semantic, int usageIndex = 0)
 {
     ElementType = elementType;
     Semantic    = semantic;
     UsageIndex  = usageIndex;
 }