fna-workbench

fna-workbench Git Source Tree


Root/src/Graphics/ModelMeshPart.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#region License
/* FNA - XNA4 Reimplementation for Desktop Platforms
 * Copyright 2009-2016 Ethan Lee and the MonoGame Team
 *
 * Released under the Microsoft Public License.
 * See LICENSE for details.
 */
#endregion
 
namespace Microsoft.Xna.Framework.Graphics
{
    public sealed class ModelMeshPart
    {
        #region Public Properties
 
        /// <summary>
        /// Gets or sets the material Effect for this mesh part.
        /// </summary>
        public Effect Effect
        {
            get
            {
                return INTERNAL_effect;
            }
            set
            {
                if (value == INTERNAL_effect)
                {
                    return;
                }
 
                if (INTERNAL_effect != null)
                {
                    // First check to see any other parts are also using this effect.
                    bool removeEffect = true;
                    foreach (ModelMeshPart part in parent.MeshParts)
                    {
                        if (part != this && part.INTERNAL_effect == INTERNAL_effect)
                        {
                            removeEffect = false;
                            break;
                        }
                    }
 
                    if (removeEffect)
                    {
                        parent.Effects.Remove(INTERNAL_effect);
                    }
                }
 
                // Set the new effect.
                INTERNAL_effect = value;
                parent.Effects.Add(value);
            }
        }
 
        /// <summary>
        /// Gets the index buffer for this mesh part.
        /// </summary>
        public IndexBuffer IndexBuffer
        {
            get;
            internal set;
        }
 
        /// <summary>
        /// Gets the number of vertices used during a draw call.
        /// </summary>
        public int NumVertices
        {
            get;
            internal set;
        }
 
        /// <summary>
        /// Gets the number of primitives to render.
        /// </summary>
        public int PrimitiveCount
        {
            get;
            internal set;
        }
 
        /// <summary>
        /// Gets the location in the index array at which to start reading vertices.
        /// </summary>
        public int StartIndex
        {
            get;
            internal set;
        }
 
        /// <summary>
        /// Gets or sets an object identifying this model mesh part.
        /// </summary>
        public object Tag
        {
            get;
            set;
        }
 
        /// <summary>
        /// Gets the vertex buffer for this mesh part.
        /// </summary>
        public VertexBuffer VertexBuffer
        {
            get;
            internal set;
        }
 
        /// <summary>
        /// Gets the offset (in vertices) from the top of vertex buffer.
        /// </summary>
        public int VertexOffset
        {
            get;
            internal set;
        }
 
        #endregion
 
        #region Internal Variables
 
        internal ModelMesh parent;
 
        #endregion
 
        #region Private Variables
 
        private Effect INTERNAL_effect;
 
        #endregion
    }
}

Archive Download this file

Branches

Number of commits:
Page rendered in 0.19809s using 11 queries.