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(); }