-
Notifications
You must be signed in to change notification settings - Fork 0
プログラムとシェーダ
sapphire-al2o3 edited this page Jul 21, 2014
·
8 revisions
プログラムオブジェクトにシェーダオブジェクトをアタッチする。
void attachShader(WebGLProgram program, WebGLShader shader)
-
program
: シェーダオブジェクトを指定する。 -
shader
: アタッチされるためのシェーダオブジェクトを指定する。
頂点属性を関連付ける。
void bindAttribLocation(WebGLProgram program, uint index, string name)
-
program
: プログラムオブジェクトを指定する。 -
index
: 頂点属性のインデックスを指定する。 -
name
: 頂点シェーダでの名前を指定する。
シェーダオブジェクトをコンパイルする。
void compileShader(WebGLShader shader)
-
shader
: コンパイルされるシェーダオブジェクトを指定する。
// フラグメントシェーダをコンパイルする
var shader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(shader, str);
gl.compileShader(shader);
プログラムオブジェクトを生成する。
WebGLProgram createProgram()
-
return
: 空のプロブラムオブジェクトを返す。エラーが起きた場合0が返される。
シェーダオブジェクトを生成する。
WebGLShader createShader(enum type)
-
type
:VERTEX_SHADER
,FRAGMENT_SHADER
のいずれかを指定する。 -
return
: シェーダオブジェクトを返す。
プログラムオブジェクトを削除する。
void deleteProgram(WebGLProgram program)
-
program
: 削除するプログラムオブジェクトを指定する。
シェーダオブジェクトを削除する。
void deleteShader(WebGLShader shader)
-
shader
: 削除するシェーダオブジェクトを指定する。
プログラムオブジェクトからシェーダオブジェクトをデタッチする。
void detachShader(WebGLProgram program, WebGLShader shader)
-
program
: プログラムオブジェクトを指定する。 -
shader
: シェーダオブジェクトを指定する。
プログラムオブジェクトにアタッチされたシェーダオブジェクトを取得する。
Object[] getAttachedShaders(WebGLProgram program)
-
program
: プログラムオブジェクトを指定する。 -
return
: シェーダオブジェクトの配列を返す。
プロブラムオブジェクトのパラメータを取得する。OpenGL ES 2.0 の glGetProgramiv
に相当する。
any getProgramParameter(WebGLProgram program, enum pname)
-
program
: プログラムオブジェクトを指定する。 -
pname
:DELETE_STATUS
,LINK_STATUS
,VALIDATE_STATUS
,ATTACHED_SHADERS
,ACTIVE_ATTRIBUTES
,ACTIVE_UNIFORMS
のいずれかの値を指定する。 -
return
: 要求されたパラメータを返す。
プログラムオブジェクトのログを取得する。
string getProgramInfoLog(WebGLProgram program)
-
program
: プログラムオブジェクトを指定する。 -
return
: ログを返す。
any getShaderParameter(WebGLShader shader, enum pname)
-
shader
: シェーダオブジェクトを指定する。 -
pname
:SHADER_TYPE
,DELETE_STATUS
,COMPILE_STATUS
のいずれかの値を指定する。 -
return
: 要求されたパラメータを返す。
シェーダオブジェクトをコンパイルした際のログを取得する。
string getShaderInfoLog(WebGLShader shader)
-
shader
: プログラムオブジェクトを指定する。 -
return
: ログを返す。
シェーダソースを取得する。
string getShaderSource(WebGLShader shader)
-
shader
: シェーダオブジェクトを指定する。 -
return
: シェーダソースを返す。
プログラムオブジェクトか判定する。
bool isProgram(WebGLProgram program)
-
program
: プログラムオブジェクトかもしれない変数を指定する。 -
return
: プログラムオブジェクトならtrue
を返す。
シェーダオブジェクトか判定する。
bool isShader(WebGLShader shader)
-
shader
: シェーダオブジェクトかもしれない変数を指定する。 -
return
: シェーダオブジェクトならtrue
を返す。
プログラムオブジェクトにアタッチされている頂点シェーダ、フラグメントシェーダをリンクする。
void linkProgram(WebGLProgram program)
-
program
: プログラムオブジェクトを指定する。
成功したかどうかはgetProgramParameter
にLINK_STATUS
を指定して判定する。
エラーメッセージはgetProgramInfoLog
で取得する。
シェーダオブジェクトにシェーダソースを設定する。
void shaderSource(WebGLShader shader, string source)
-
shader
: シェーダオブジェクトを指定する。 -
source
: シェーダソースを指定する。
プログラムオブジェクトを有効化する。
void useProgram(WebGLProgram program)
-
program
: プログラムオブジェクトを指定する。
プログラムオブジェクトを検証する。
void validateProgram(WebGLProgram program)
-
program
: プログラムオブジェクトを指定する。