glShaderSource — シェーダーオブジェクトのソースコードを置き換えます
void glShaderSource(
|
GLuint shader, |
GLsizei count, | |
const GLchar **string, | |
const GLint *length) ; |
shader
ソースコードを置換するシェーダーオブジェクトのハンドルを指定します。
count
string
と length
の配列の要素の数を指定します。
string
シェーダーにロードされるソースコードを含む文字列へのポインターの配列を指定します。
length
文字列の長さの配列を指定します。
glShaderSource
は、 string
で指定された文字列の配列のソースコードを shader
のソースコードとして設定します。
シェーダーオブジェクトに以前格納されていたソースコードは全て置換されます。
配列内の文字列の数は、 count
で指定されます。
length
が NULL
の場合、各文字列の終端は NULL
であると見見做されます。
length
が NULL
以外の値の場合、string
の配列に対応する各要素の文字列の長さを指定します。
length
配列の各要素には、対応する文字列の長さ(null文字は文字列の長さの一部としてカウントされない)を格納するか、0未満の値にすることで文字列がnull終端文字列であることを示します。
この時点では、ソースコード文字列に対してスキャンやパースは行われません。 指定されたシェーダーオブジェクトに単純にコピーされます。
OpenGLは glShaderSource
が呼び出されたときにシェーダーソースコード文字列をコピーするため、アプリケーションは関数が戻った直後にソースコード文字列のコピーを解放できます。
GL_INVALID_VALUE
is generated if
shader
is not a value generated by
OpenGL.
GL_INVALID_OPERATION
is generated if
shader
is not a shader object.
GL_INVALID_VALUE
is generated if
count
is less than 0.
glGetShader
with arguments shader
and
GL_SHADER_SOURCE_LENGTH
glGetShaderSource
with argument shader
OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glShaderSource
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Copyright © 2003-2005 3Dlabs Inc. Ltd. Copyright © 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.