void DebugVertices(StreamWriter s, Render.VertexBufferInterface.VertexBuffersGen3 gr, bool denormalize,
                           Render.VertexBufferInterface.VertexBuffersGen3.Definition def,
                           s_tag_d3d_vertex_buffer vb)
        {
            var stream_r = new Render.VertexBufferInterface.StreamReader(def);

            using (var er = new IO.EndianReader(vb.VertexBuffer.Value, IO.EndianState.Big, this))
            {
                for (int x = 0; x < vb.VertexCount.Value; x++)                 // foreach vertex...
                {
                    s.WriteLine("\tVertex\t{0}", x.ToString("X8"));
                    {
                        stream_r.Read(er);
                        if (denormalize)
                        {
                            foreach (string str in stream_r.GetDenormalizedStrings())
                            {
                                s.WriteLine("\t\t{0}", str);
                            }
                        }
                        else
                        {
                            foreach (string str in stream_r.GetNormalizedStrings())
                            {
                                s.WriteLine("\t\t{0}", str);
                            }
                        }
                    }
                    s.WriteLine();
                }
                s.WriteLine(); s.WriteLine();
            }
        }
        void DebugVerticesOld(StreamWriter s, Render.VertexBufferInterface.VertexBuffersGen3 gr, bool denormalize,
                              Render.VertexBufferInterface.VertexBuffersGen3.Definition def,
                              s_tag_d3d_vertex_buffer vb)
        {
            LowLevel.Math.real_quaternion quat;

            var elements = new Render.DeclarationTypes.IDeclType[def.Elements.Length];

            for (int x = 0; x < elements.Length; x++)
            {
                elements[x] = def.Elements[x].DeclarationType.AllocateDeclType();
            }

            using (var er = new IO.EndianReader(vb.VertexBuffer.Value, IO.EndianState.Big, this))
            {
                for (int x = 0; x < vb.VertexCount.Value; x++)                 // foreach vertex...
                {
                    s.WriteLine("\tVertex\t{0}", x.ToString("X8"));
                    foreach (Render.DeclarationTypes.IDeclType dt in elements) // and foreach type in the vertex...
                    {
                        dt.Read(er);                                           // load the type data
                        if (denormalize)
                        {
                            dt.Denormalize(out quat);
                            s.WriteLine("\t\t{0}", dt.ToString(quat));
                        }
                        else
                        {
                            s.WriteLine("\t\t{0}", dt.ToString());
                        }
                        s.Flush();
                    }
                    s.WriteLine();
                }
                s.WriteLine(); s.WriteLine();
            }
        }