Example #1
0
        public Font(string filename, float size = 12f)
        {
            if (string.IsNullOrEmpty(filename))
            {
                throw new System.ArgumentException($"Invalid font filename '{filename}'");
            }

            Filename = filename;
            if (filename.Contains(".") && !Filename.Contains(Game.Instance.ContentDirectory))
            {
                Filename = Path.Combine(Game.Instance.ContentDirectory, Filename);
            }

            RenderMap        = new FontFaceRenderMap(Filename, size);
            ShaderParameters = RenderMap.CreateShaderParameters();
            Size             = size;
        }
Example #2
0
        private void Load(Stream fontStream, int faceIndex, float size)
        {
            if (fontStream is FileStream fileStream)
            {
                Filename = fileStream.Name;
            }

            fontStream.Seek(0, SeekOrigin.End);
            long streamSize = fontStream.Position;

            fontStream.Seek(0, SeekOrigin.Begin);

            byte[] file = new byte[streamSize];

            if (streamSize > int.MaxValue)
            {
                byte[] buffer = new byte[int.MaxValue];
                int    count;
                long   offset = 0L;

                while (offset < streamSize)
                {
                    if (streamSize >= int.MaxValue)
                    {
                        count = int.MaxValue;
                    }
                    else
                    {
                        count = (int)streamSize;
                    }

                    fontStream.Read(buffer, 0, count);
                    buffer.CopyTo(file, offset);
                    offset += count;
                }
            }
            else
            {
                fontStream.Read(file, 0, (int)streamSize);
            }

            RenderMap        = new FontFaceRenderMap(file, faceIndex, (uint)Math.Round(size));
            ShaderParameters = RenderMap.CreateShaderParameters();
        }
Example #3
0
 public Font(SharpFont.Face fontFace, float size = 12f)
 {
     RenderMap        = new FontFaceRenderMap(fontFace, size);
     ShaderParameters = RenderMap.CreateShaderParameters();
     Size             = size;
 }
Example #4
0
 public Font(byte[] file, int faceIndex, float size = 12f)
 {
     RenderMap        = new FontFaceRenderMap(file, faceIndex, size);
     ShaderParameters = RenderMap.CreateShaderParameters();
     Size             = size;
 }