D言語で文字を出す、ピクセル直書き


おかげさまでテキストテクスチャはクラスできました。


結局テクスチャの方が早いって言う文書も見つけたんだけど
自分がつくるクソゲーにはサーフェース直書きでいんじゃね?
ってことを思ってきたのでいろいろ試し中です。
glDrawPixelsで描画することができたのだが。。。
180度回転上下反転されてますね、その通りで御座います
きっとあんまり考えなくてもテクスチャにできるようにする配慮かと。


昨日いっしきさんに教えてもらったSDL_kanjiも試してみるべきかな

検索したら


gl_kanjiも出てきた
意外と重いとかかれてたがどうしようか
あと半角カナがだめだって

とりあえず上下反転してみた


ちょっと前にg:gamehell:id:kenmoさんとid:KouMikageさんが
dhellのスクショかなにかの話でやりとりしてるのを思い出して
そのままコピーしたコードを流したらあっけなく上下反転は出来た
もちろん速度うんぬんはまず置いておいて表示は問題なくなった

実は新たな問題?


いままで白黒テクスチャに色を付けるようにしてたんだけど
この方式にするとサーフェース作るときに色指定しなきゃだめかも
えーやだやだやだー

速度の問題

毎フレーム500回ずつglDrawPixelsすると多少落ちてくる60fps割ったり割らなかったり
毎フレーム1000回ずつglDrawPixelsすると30fpsあたりを上下
毎フレーム10000回ずつglDrawPixelsすると3fpsあたりを上下ってどんだけ書くだよwwww


ちなみに全画面半角Aで文字送り想定で一文字ずつ書くと
サンプルの画面サイズ、フォントサイズで約1000回glDrawPixelsすることになる
限界まで馬鹿やっても30fpsは出るかもしれないけどやらないから!
だってCPU使用率100%だし

自分のPCを爆熱させた結果


100回前後で勘弁してやってください
あと、毎回サーフェース作り直しながらってのもやってみた
全然いけるって!
これは、クソゲーつくるなら全部一個の関数につっこんで

unkoGameFont.printf("もりもりうんこ");


で、みんな幸せになればいいと思った

最終的にこうなった


easyFontと名づけた
でもunkoでもなんでもよかった
結局真ん中に3・2・1・DEADって出す程度なら
これで十分すぎだよな


出来たやつをダウンロードする


使い方

// 初期化
Hell_init(std.string.toString(std.windows.charset.toMBSz("春のA・S・C3")), 320, 240);
// easyFontハジマル
easyFont ef = new easyFont();

// ゲームループ開始
while(true) {
	// 描画エリアの消去
	Hell_begin();
	glPushMatrix();

	ef.drawText("へる わーるど!");
	ef.drawText("へる わーるど!", 5, 5, 255, 0, 0);

	glPopMatrix();

	Hell_drawFPS();
	// 画面更新
	Hell_update();
	// 16ms待つ
	Hell_wait(16);
}


まぁ詳しくはソース見ればいい
いままでのまとめだから