glCreateShader — シェーダーオブジェクトを作成する
GLuint glCreateShader(
|
GLenum shaderType) ; |
shaderType
作成するシェーダーのタイプを指定します。
GL_COMPUTE_SHADER
,
GL_VERTEX_SHADER
,
GL_TESS_CONTROL_SHADER
,
GL_TESS_EVALUATION_SHADER
,
GL_GEOMETRY_SHADER
,
GL_FRAGMENT_SHADER
のいずれかでなければなりません。
glCreateShader
は、空のシェーダーオブジェクトを作成し、参照可能な 0 以外の値を返します。
シェーダーオブジェクトは、シェーダーを定義するソースコード文字列を保持するために使用されます。
shaderType
は、作成されるシェーダーのタイプを示します。
5種類のシェーダーがサポートされています。
GL_COMPUTE_SHADER
は、プログラマブルコンピューティングプロセッサーで実行することを目的としたシェーダーです。
GL_VERTEX_SHADER
は、プログラム可能なバーテックスプロセッサーで実行することを目的としたシェーダーです。
GL_TESS_CONTROL_SHADER
は、コントロールステージのプログラム可能なテッセレーションプロセッサーで実行することを目的としたシェーダーです。
GL_TESS_EVALUATION_SHADER
は、評価ステージのプログラム可能なテッセレーションプロセッサーで実行することを目的としたシェーダーです。
GL_GEOMETRY_SHADER
は、プログラム可能なジオメトリプロセッサーで実行することを目的としたシェーダーです。
GL_FRAGMENT_SHADER
は、プログラム可能なフラグメントプロセッサーで実行することを目的としたシェーダーです。
シェーダーオブジェクトが作成されると、shaderType
の値に応じ、GL_SHADER_TYPE
のパラメーターには GL_COMPUTE_SHADER
、 GL_VERTEX_SHADER
、 GL_TESS_CONTROL_SHADER
、GL_TESS_EVALUATION_SHADER
、 GL_GEOMETRY_SHADER
、 GL_FRAGMENT_SHADER
のいずれかが設定されます。
バッファーオブジェクトやテクスチャオブジェクトと同様に、シェーダーオブジェクトの名前空間は、サーバー側が同じアドレス空間でコンテキストを共有している限り、コンテキストのセット全体で共有できます。 名前空間がコンテキスト全体で共有される場合、関連するオブジェクトとそれらに付随するデータも共有されます。
アプリケーションは、オブジェクトが異なる実行スレッドからアクセスされたときに、全ての API 呼び出しを同期呼び出しに変換する責任があります。
GL_COMPUTE_SHADER
は、GLバージョンが4.3以上の場合にのみ使用できます。
This function returns 0 if an error occurs creating the shader object.
GL_INVALID_ENUM
is generated if
shaderType
is not an accepted value.
glGetShader with a valid shader object and the parameter to be queried
glGetShaderInfoLog with a valid shader object
glGetShaderSource with a valid shader object
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 |
glCreateShader
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
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/.