私は2Dゲームプロジェクトに取り組んでいます。私はopenGlテクスチャを単純なクラスにラップしたいと思っていました。テクスチャはlibpngを使用して128x128px .png(アルファチャンネル)から読み込まれます。コードの量がかなり大きいので、私はpastebinを使用しています。OpenGL 2Dテクスチャが動作しない
コードファイル:
- テクスチャクラス:http://pastebin.com/gbGMEF2Z
- PngReaderクラス:http://pastebin.com/h6uP5Uc8は(大丈夫動作しているようですので、私は説明を削除しました)。
- OpenGLのコード:
テクスチャクラス:OpenGLのテクスチャのラッパーhttp://pastebin.com/PVhwnDif
あなたの時間を無駄にしないように、私はコードを少し説明します。
loadData
関数はglでテクスチャを設定します(これは私が動作しないと思われる関数です)。 OpenGLのコード:
debugSetTexture
関数はgraphicsDraw()
関数で使用されるtemp
変数にテクスチャを置きます。これは、同じソースファイル内にmain()
としていないためです。graphicsMainLoop()
関数では、実際にはfork()
を呼び出し、生成されたプロセスのpid
を格納するFork()
関数を使用します。main()
から
、これは私が何をすべきかです:
Strategy::IO::PngReader reader ("/cygdrive/c/Users/Tibi/Desktop/128x128.png");
reader.read();
grahpicsInit2D(&argc, argv);
debugSetTexture(reader.generateTexture());
graphicsMainLoop();
reader.close();
私は、アプリケーションを試してみましたgDEBuggerと呼ばれ、テクスチャビューアで、生成されたテクスチャがありましたが、サイズは0x0pxました。
Texture :: loadTexture()を使用してテクスチャが読み込まれたときに問題が発生したと思われます。
なぜCygwinを使用していますか? Cygwin環境でプログラムを実行しますか? – AndiDog
"Texture :: loadData()関数が機能しないと思われます" ...そういうわけで、Textureクラス以外の最小限の例では、同じデータに対して同じことを試みましたか?それは動作しますか? – Bart
@AndiDog Eclipseが設定されている方法です...私はmingwをインストールしていないので、Windowsにlibpngが存在するかどうかわかりません。 – Tibi