コード例 #1
0
        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);
        }
コード例 #2
0
 public void setTexture(LoadableTexture texture)
 {
     if (!texture.isLoaded())
     {
         return;
     }
     this.texture = texture.getTexture();
 }