#目的・エラー内容
C++からOpenGLを利用してシェーダーのコンパイルを試みたのですが、その際に「ERROR: 0:1: '' : illegal non-ASCII character (0xdd)」というエラーがいくつも発生しました。このエラーメッセージは、glGetShaderInfoLog関数からの出力です。
#試したこと
バイナリエディタを用いてシェーダーファイルを開き 0xdd のデータがないか確認しましたが、ありませんでした。また、コンパイル関数に通す前にcontents変数の内容を確認しましたが、こちらも元のシェーダーファイルと差はありませんでした。
#バージョン
Visual Studio Community 2017 の Version 15.9.19 + OpenGL 3.3を使っています。
#ソースコード
こちらがコンパイルに使用したC++コードです。(関連すると思われる部分のみ抜粋)
C++
1ifstream shader_file(filename); 2if(!shader_file.is_open())return false; 3stringstream sstream; 4sstream << shader_file.rdbuf(); 5const char* contents = sstream.str().c_str(); 6out_shader = glCreateShader(type); 7glShaderSource(out_shader, 1, &contents, nullptr); 8glCompileShader(out_shader); 9char text[512]; 10memset(text, 0, 512); 11glGetShaderInfoLog(shader, 511, nullptr, text); 12SDL_Log("OpenGL Shader Compile Error:\n%s", text);
こちらがシェーダーファイル(basic.vert)の内容です。
Shader
1#version 330 2in vec3 inPosition; 3void main(){ 4 gl_Position=vec4(inPosition, 1.0); 5} 6
最後に、実際に出力されたログをコピーして貼り付けておきます。
Output
1INFO: OpenGL Shader Compile Error: 2ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 3ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 4ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 5ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 6ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 7ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 8ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 9ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 10ERROR: 0:1: '' : illegal non-ASCII character (0xdd) 11ERROR: 0:1: '' : illegal non-ASCII charact
原因について思い当たる部分が全くありませんので、何か情報がありましたら、ぜひ教えていただければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/05 11:16