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); } } }
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; } } } }