public static Texture2D createTexture(string text, Font font, uint argb) { int width = font.GetTextWidth(text, 0, text.Length); int height = font.Metrics.Height; var image = new Image(ImageMode.Rgba, new ImageSize(width, height), new ImageColor(0, 0, 0, 0) ); image.DrawText(text, new ImageColor((int)((argb >> 16) & 0xff), (int)((argb >> 8) & 0xff), (int)((argb >> 0) & 0xff), (int)((argb >> 24) & 0xff)), font, new ImagePosition(0, 0) ); Texture2D texture; if (Thread.CurrentThread != Game.GAME_INSTANCE.getMainThread()) { LoadableTexture txt = new LoadableTexture(width, height, image); txt.loadNow(); texture = txt.getTexture(); } else { texture = new Texture2D(width, height, false, PixelFormat.Rgba); texture.SetPixels(0, image.ToBuffer(), 0, 0, width, height); } image.Dispose(); return(texture); }
public void setTexture(LoadableTexture texture) { if (!texture.isLoaded()) { return; } this.texture = texture.getTexture(); }