Exemple #1
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing && _font != null)
     {
         _font.Dispose();
         _font = null;
     }
 }
Exemple #2
0
        /// <summary>
        ///     Creates and initializes a font from ttf/otf/ttc data
        /// </summary>
        /// <param name="data"></param>
        /// <param name="offset"></param>
        /// <returns>null if the data was invalid</returns>
        public static stbtt_fontinfo CreateFont(byte[] data, int offset)
        {
            var dataCopy = (byte *)CRuntime.malloc(data.Length);

            Marshal.Copy(data, 0, new IntPtr(dataCopy), data.Length);

            var info = new stbtt_fontinfo
            {
                isDataCopy = true
            };

            if (stbtt_InitFont_internal(info, dataCopy, offset) == 0)
            {
                info.Dispose();
                return(null);
            }

            return(info);
        }