Beispiel #1
0
        public void AddSimpleFontAtlas(SimpleBitmapAtlas[] simpleFontAtlases, System.IO.Stream totalGlyphImgStream)
        {
            //multiple font atlas that share the same glyphImg

            MemBitmap mainBmp = ReadGlyphImages(totalGlyphImgStream);

            for (int i = 0; i < simpleFontAtlases.Length; ++i)
            {
                SimpleBitmapAtlas simpleFontAtlas = simpleFontAtlases[i];
                simpleFontAtlas.SetMainBitmap(mainBmp, true);
                simpleFontAtlas.UseSharedImage = true;
                _createdAtlases.Add(simpleFontAtlas.FontKey, simpleFontAtlas);

                if (simpleFontAtlas.TextureKind == TextureKind.Msdf)
                {
                    //if we have msdf texture
                    //then we can use this to do autoscale
                    _msdfTextureFonts.Add(simpleFontAtlas.FontFilename, simpleFontAtlas);
                }
            }
        }
Beispiel #2
0
 public void RegisterBitmapAtlas(string atlasName, byte[] atlasInfoBuffer, byte[] totalImgBuffer)
 {
     //direct register atlas
     //instead of loading it from file
     if (!_createdAtlases.ContainsKey(atlasName))
     {
         SimpleBitmapAtlasBuilder atlasBuilder = new SimpleBitmapAtlasBuilder();
         using (System.IO.Stream fontAtlasTextureInfo = new MemoryStream(atlasInfoBuffer))
             using (System.IO.Stream fontImgStream = new MemoryStream(totalImgBuffer))
             {
                 try
                 {
                     List <SimpleBitmapAtlas> atlasList  = atlasBuilder.LoadAtlasInfo(fontAtlasTextureInfo);
                     SimpleBitmapAtlas        foundAtlas = atlasList[0];
                     foundAtlas.SetMainBitmap(MemBitmap.LoadBitmap(fontImgStream), true);
                     _createdAtlases.Add(atlasName, foundAtlas);
                 }
                 catch (Exception ex)
                 {
                     throw ex;
                 }
             }
     }
 }