1

これは実際のコードから取った例です。これは私の Samsung Galaxy Tab 2 ではコンパイルできません:

#define some_macro(x_)

void some_function(vec4 some_arg some_macro(FOO))
{

}

アイデアは、引数リストの「some_macro(FOO)」部分が何も展開されないようにすることです。代わりに、「ERROR: 0:520: '(' : syntax error」のようなエラー メッセージが生成されます。これは、マクロ呼び出しで左の親を参照していると思われます。パラメーターのないマクロ (単純な #define) は、同じ場所で正常に動作します。 .

この構文を回避するためにコードをリファクタリングする必要があることについてはそれほど心配していませんが、このコードが GLSL ES 仕様に従って機能するかどうかを誰かが知っているかどうか疑問に思っています。これは、他のデバイス (Galaxy Note II など) でも問題なくコンパイルできます。

4

0 に答える 0