2024/03/31(日) [n年前の日記]
#1 [prog] スクリーンセーバのソースを弄ってる。その4
以前作成したスクリーンセーバのC言語ソースを弄って、疑似3D道路を描画するスクリーンセーバを作成しているところ。
自作したスクリーンセーバは、メインPC上では動くのだけど、相変わらずサブPC上で動かない…。
どこかでエラーが返ってきているのに無視してしまっているのではないかと、エラーチェックを思いつく限り追加してみたのだけど、どこにも引っ掛かってくれない…。
自作したスクリーンセーバは、メインPC上では動くのだけど、相変わらずサブPC上で動かない…。
どこかでエラーが返ってきているのに無視してしまっているのではないかと、エラーチェックを思いつく限り追加してみたのだけど、どこにも引っ掛かってくれない…。
◎ GLFW使用版も書いてみた :
GLFWでウインドウを作成して、そこにスクリーンセーバと全く同じ描画をするプログラムを書いてみた。
これだと、サブPC上で動く。10回実行したら、ちゃんと10回動いてくれる。
しかし、スクリーンセーバにすると途端に動かなくなるわけで…。スクリーンセーバとして実行する時の差異の中に怪しい部分があるのだろうな…。
これだと、サブPC上で動く。10回実行したら、ちゃんと10回動いてくれる。
しかし、スクリーンセーバにすると途端に動かなくなるわけで…。スクリーンセーバとして実行する時の差異の中に怪しい部分があるのだろうな…。
◎ printf()デバッグをしたい :
スクリーンセーバのようなGUI表示(?)をするプログラムで、printf()デバッグのようなことをするにはどうしたらいいのかで悩んでしまった。ファイルに出力するしかないのかな。
そこでふと、MessageBox() が使えるのではないかと気が付いた。
_メッセージボックス
処理を進めることができないクリティカルなエラーが出ている時に、このメッセージボックスが表示されるだけでも随分と違うはず。
しかし、入れてみたものの、やはり引っ掛かってくれない…。それでも、処理成功時もメッセージボックスを表示するようにしてみたことで、WM_CREATE を受け取った際に行われる初期化処理については最後まで無事走っていることは確認できた。となると、タイマーをセットして、その後一定時間毎に呼ばれる部分で、何か変なことが起きているのだろう…。さて、どこだ…。
そこでふと、MessageBox() が使えるのではないかと気が付いた。
_メッセージボックス
処理を進めることができないクリティカルなエラーが出ている時に、このメッセージボックスが表示されるだけでも随分と違うはず。
しかし、入れてみたものの、やはり引っ掛かってくれない…。それでも、処理成功時もメッセージボックスを表示するようにしてみたことで、WM_CREATE を受け取った際に行われる初期化処理については最後まで無事走っていることは確認できた。となると、タイマーをセットして、その後一定時間毎に呼ばれる部分で、何か変なことが起きているのだろう…。さて、どこだ…。
◎ OpenGLのエラーチェック :
OpenGL関係でVRAMが足りなくなってるとか、コマンドキューのサイズをオーバーしているとか、そういうことだったりしないか。
_【OpenGL】OpenGL APIのエラーチェック #初心者 - Qiita
_glGetError 関数 (Gl.h) - Win32 apps | Microsoft Learn
glGetError() を使えばOpenGL絡みで発生してるエラーを調べることができるらしい。チェック処理をあちこちに入れてみた。しかし、これも引っ掛からない…。
_【OpenGL】OpenGL APIのエラーチェック #初心者 - Qiita
_glGetError 関数 (Gl.h) - Win32 apps | Microsoft Learn
glGetError() を使えばOpenGL絡みで発生してるエラーを調べることができるらしい。チェック処理をあちこちに入れてみた。しかし、これも引っ掛からない…。
[ ツッコむ ]
以上、1 日分です。