/// <summary>
 /// Draw a texture.
 /// </summary>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <param name="nw"></param>
 /// <param name="nh"></param>
 /// <param name="uoff"></param>
 /// <param name="voff"></param>
 /// <param name="umax"></param>
 /// <param name="vmax"></param>
 /// <param name="color"></param>
 public void Draw(float x, float y, float nw, float nh, float uoff,
                  float voff, float umax, float vmax, uint color)
 {
     if (_textureNumber >= 0)
     {
         float[,] matrix = GUIGraphicsContext.GetFinalMatrix();
         DXNative.FontEngineDrawTextureSync(_textureNumber, x, y, nw, nh, uoff, voff, umax, vmax, color, matrix);
     }
 }
        /// <summary>
        /// Draw a texture rotated around (x,y).
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <param name="nw"></param>
        /// <param name="nh"></param>
        /// <param name="zrot"></param>
        /// <param name="uoff"></param>
        /// <param name="voff"></param>
        /// <param name="umax"></param>
        /// <param name="vmax"></param>
        /// <param name="color"></param>
        public void Draw(float x, float y, float nw, float nh, float zrot, float uoff,
                         float voff, float umax, float vmax, uint color)
        {
            if (_textureNumber >= 0)
            {
                // Rotate around the x,y point of the specified rectangle; maintain aspect ratio (1.0f)
                TransformMatrix localTransform = new TransformMatrix();
                localTransform.SetZRotation(zrot, x, y, 1.0f);
                TransformMatrix finalTransform = GUIGraphicsContext.GetFinalTransform();
                localTransform = finalTransform.multiply(localTransform);

                DXNative.FontEngineDrawTextureSync(_textureNumber, x, y, nw, nh, uoff, voff, umax, vmax, color,
                                                   localTransform.Matrix);
            }
        }