非圧縮DDS画像をロードします。 私は.ddsファイルを持っていて、SOIL libraryを使用しています。私は私のプロジェクトに画像をロードする場合は、画像が(DXT3、DXT5)圧縮されている場合のOpenGL SOILライブラリは、私だけがOpenGLアプリケーション上で、私は矩形をテクスチャにしたい、その目的のために働いています
は
void setTexture(const std::string& t_filename)
{
GLuint m_TEX = SOIL_load_OGL_texture(
t_filename.c_str(),
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_DDS_LOAD_DIRECT);
[...]
}
私のアプリケーションはすぐにクラッシュします。圧縮されていないと、すべて正常に動作します。
その理由は何ですか? SOILは圧縮された.ddsファイルを公式Webサイトに準拠してサポートする必要があります。
EDIT 1: わかりました私は、GDBとvalgrindのを使用して、私のprogammをデバッグしようとしました。圧縮された.ddsファイルを使用するとすぐに、SOIL_load_OGL_texture()
関数によって引き起こされるセグメンテーションのように見えます。しかし私は圧縮されたイメージを使用した唯一の人だとはほとんど想像できません。
GDB出力:
Program received signal SIGSEGV, Segmentation fault.
0x00007f469cd03197 in __strstr_sse2() from /usr/lib/libc.so.6
#0 0x00007f469cd03197 in __strstr_sse2() from /usr/lib/libc.so.6
#1 0x00007f469d8daa2d in query_DXT_capability() from /usr/lib/libSOIL.so.1
#2 0x00007f469d8dc19f in SOIL_direct_load_DDS_from_memory() from /usr/lib/libSOIL.so.1
#3 0x00007f469d8dcaad in SOIL_direct_load_DDS() from /usr/lib/libSOIL.so.1
#4 0x00007f469d8dcb66 in SOIL_load_OGL_texture() from /usr/lib/libSOIL.so.1
あなたはSOILプロジェクトソースにリンクし、それが失敗した場所を見つけるために、デバッガを使用してみましたか? – Robinson