private bool Init()
        {
            bool bGood = true;

            try {
                gradNow = new RGradient();
                gradNow.From(new int[] { 0, 32, 223, 255 }, new Pixel32Struct[] { new Pixel32Struct(64, 64, 64, 0), new Pixel32Struct(0, 0, 0, 255), new Pixel32Struct(255, 255, 255, 255), new Pixel32Struct(255, 255, 255, 255) });
                animarrGlyphType = new RAnim[RFont.iGlyphTypes];
                if (false == ResetGlyphTypeArray())
                {
                    bGood = false;
                }
            }
            catch (Exception exn) {
                RReporting.ShowExn(exn, "", "RFont Init");
                bGood = false;
            }
            return(bGood);
        }
        public RGradient Copy()
        {
            RGradient gradReturn;

            try {
                gradReturn = new RGradient(iGrad);
                for (int i = 0; i < iGrad; i++)
                {
                    gradReturn.by2dGrad[i][0] = by2dGrad[i][0];
                    gradReturn.by2dGrad[i][1] = by2dGrad[i][1];
                    gradReturn.by2dGrad[i][2] = by2dGrad[i][2];
                    gradReturn.by2dGrad[i][3] = by2dGrad[i][3];
                }
            }
            catch (Exception exn) {
                RReporting.ShowExn(exn, "copying gradient values", "RImage Copy");
                gradReturn = null;
            }
            return(gradReturn);
        }