10/02/28 00:14:16 wSOf0xrI
>>449
MDXだけど、まるぺけの高速フォント参考にした。
ソースコード全部はそれなりに長いので要点だけ。
System.Drawing.Graphicsは、GDI+でのサーフェスみたいなもの。DirectXのサーフェスと違ってDraw○○といった直線や文字列、矩形を描画するメンバがある。
Graphicsに書かれた画像をbyte配列に変換すれば、Stream経由でTexture化できる。
つまりGraphicsのサーフェスを適切なサイズに設定して文字を書いた後、Textureにすればいい。
Bitmap img = new Bitmap(textureSize.Width, textureSize.Height);
Graphics graphics = Graphics.FromImage(img);
graphics.DrawString(text, font, Brushes.White, 0, 0);
byte[] imgBytes = (byte[])(new ImageConverter().ConvertTo(img, typeof(byte[])));
MemoryStream ms = new MemoryStream(imgBytes);
return TextureLoader.FromStream(device, ms);
あとはTextureから実際に使う領域の保持や、Textureと文字の管理を上手く出来るような仕組みを作ればいい。