0

このように、ファイルの先頭で宣言されたポインターの配列があります。

GLuint *buffers[2];

そして、配列の実際の値を gl 関数に渡してバッファを生成したいと考えています。

GL_API void GL_APIENTRY glGenBuffers(GLsizei n, GLuint *buffers);

これは API エントリです。私は機能を変更できませんが、Khronos/Apple (拡張) は変更できます。

私は試した:

glGenBuffers(2, *buffers);

運がない。これが可能かどうかはわかりませんが、可能ではないと思いますが、可能であればプログラムを非常に簡単に作成できます。

この例は、私が実際に使用する方法ではありません。コールを減らしてパフォーマンスを高速化するために、すべてのバッファーを生成し、malloc をより大きなものに分割する要求ベースのジオメトリ ローダーを作成する予定です。

編集:これが人々が提案しているものである場合、glGenBuffers関数を変更することはできません。

編集:私の要求がどれほどばかげているように見えるかを今認識しています.cには、これらがポインタであると言った機能があるので、値を編集することを望んでいました. 元のポインター (別のクラス ファイル内) をこの値と等しくするよりも、おそらくバッファーの配列を割り当てるだけです。ループで。

4

1 に答える 1

0

APIエントリ(コメントから質問にコピーされたもの)と変数宣言を考えると、ポインターの配列を関数に渡すことはできません。

あなたは書くことができます:

GLuint buffer[2];

glGenBuffers(2, buffer);

あなたは書くことができます:

GLuint *buffers[2];
buffers[0] = malloc(number * sizeof(GLuint));
buffers[1] = malloc(number * sizeof(GLuint));
glGenBuffers(number, buffers[0]);
glGenBuffers(number, buffers[1]);

これらのいずれも API を尊重します。

于 2013-06-26T14:44:56.667 に答える