示例#1
0
        public ModelPiece(BMD.MaterialGroup matgroup, TextureCache texcache)
        {
            BeginMode[] beginmodes = { BeginMode.Triangles, BeginMode.Quads, BeginMode.TriangleStrip, BeginMode.QuadStrip };

            m_TextureID = texcache.GetTextureID(matgroup);
            m_DispListID = GL.GenLists(1);

            GL.NewList(m_DispListID, ListMode.Compile);

            GL.BindTexture(TextureTarget.Texture2D, m_TextureID);

            foreach (BMD.VertexList vtxlist in matgroup.m_Geometry)
            {
                GL.Begin(beginmodes[vtxlist.m_PolyType]);

                foreach (BMD.Vertex vtx in vtxlist.m_VertexList)
                {
                    GL.Color4(vtx.m_Color);
                    if (m_TextureID != 0) GL.TexCoord2(vtx.m_TexCoord);
                    GL.Vertex3(vtx.m_Position);
                }

                GL.End();
            }

            GL.EndList();
        }