teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード追記

2020/05/10 23:01

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,2 +1,14 @@
1
1
  動作確認はしていませんが…
2
- コードを見た感じ`font_Draw()`内で毎回`CreateFont()`を呼び`Odc`にセットしており、`Odc`のフォントを元に戻さず`DeleteObject()`もしていないので、ある程度の回数呼び出された後にそれ以上フォントを作れなくなっているのでは?
2
+ コードを見た感じ`font_Draw()`内で毎回`CreateFont()`を呼び`Odc`にセットしており、`Odc`のフォントを元に戻さず`DeleteObject()`もしていないので、ある程度の回数呼び出された後にそれ以上フォントを作れなくなっているのでは?
3
+
4
+ 今回直接関係ありませんが、書式化結果の2行目以降に書式化文字が含まれていると、`font_Draw()`再帰呼び出しで誤動作するので"%s"を指定しておいたほうがよいと思います。
5
+ ```diff
6
+ - if (*font == '\n' || '\0') {
7
+ + if (*font == '\n' && *(font+1) != '\0') {
8
+ glDeleteLists(list, length);
9
+
10
+ font_SetPosition(0, y + font_GetSize()-15);
11
+ - font_Draw(++font);
12
+ + font_Draw(L"%s", ++font);
13
+ }
14
+ ```

1

文言修正

2020/05/10 23:01

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,2 +1,2 @@
1
1
  動作確認はしていませんが…
2
- コードを見た感じ`font_Draw()`内で毎回`CreateFont()`を呼び`Odc`にセットしており、`Odc`のフォントを元に戻さず`DeleteObject()`もしていないので、れ以上フォントを作れなくなっているのでは?
2
+ コードを見た感じ`font_Draw()`内で毎回`CreateFont()`を呼び`Odc`にセットしており、`Odc`のフォントを元に戻さず`DeleteObject()`もしていないので、ある程度の回数呼び出さた後にそれ以上フォントを作れなくなっているのでは?