S3GLShader
WebGLのシェーダー管理クラス。 頂点シェーダ/フラグメントシェーダのソースコード・型・GLオブジェクトを保持し、コンパイルや破棄、状態取得などの機能を提供します。 S3GLProgram 内部で利用され、単体では直接使わないことが多い設計です。
Constructor Summary
Public Constructor | ||
public |
constructor(sys: S3GLSystem, code: string) WebGLシェーダーを初期化します。 |
Member Summary
Public Members | ||
public |
シェーダーのGLSLソースコード。GLSLコード文字列、または未ロード時はnull。 |
|
public |
コンパイルや生成エラーが発生した場合にtrue。 |
|
public |
shader: WebGLShader コンパイル済みWebGLShaderオブジェクト。未生成またはエラー時はnull。 |
|
public |
シェーダーの型。gl.VERTEX_SHADER(35633)かgl.FRAGMENT_SHADER(35632)、未設定時は-1。 |
|
public |
GLシステムインスタンス |
Method Summary
Public Methods | ||
public |
シェーダーリソースを解放し、GLオブジェクトを破棄します。 以後このシェーダーは再利用できません。 |
|
public |
シェーダーのソースコードを取得します(GLSL文字列)。 |
|
public |
getShader(): WebGLShader シェーダーオブジェクト(GLShader)を取得します。 初回はGLSLの内容から自動でタイプ(頂点/フラグメント)判定とコンパイルを行います。 コンパイルエラー時や準備未完了時はnullを返します。 |
|
public |
getShaderType(): number | null このシェーダーのタイプ(頂点orフラグメント)を返します。 準備ができていない場合やエラー時はnullになります。 |
|
public |
このシェーダーでエラーが発生しているか判定します。 |
Private Methods | ||
private |
_init(sys: S3GLSystem, code: string) 内部初期化処理。 シェーダーソースの格納、コードの取得(URLならダウンロード)、GLオブジェクト初期化などを行います。 |
Public Constructors
public constructor(sys: S3GLSystem, code: string) source
WebGLシェーダーを初期化します。
Params:
Name | Type | Attribute | Description |
sys | S3GLSystem | GLシステムインスタンス(GLコンテキスト・コンパイル補助などに必要) |
|
code | string | シェーダーのGLSLソースコード、またはGLSLファイルのURL(1行の場合は自動判別) |
Public Members
Public Methods
public getShader(): WebGLShader source
シェーダーオブジェクト(GLShader)を取得します。 初回はGLSLの内容から自動でタイプ(頂点/フラグメント)判定とコンパイルを行います。 コンパイルエラー時や準備未完了時はnullを返します。
Return:
WebGLShader (nullable: true) | コンパイル済みGLシェーダーオブジェクト、またはnull |
public getShaderType(): number | null source
このシェーダーのタイプ(頂点orフラグメント)を返します。 準備ができていない場合やエラー時はnullになります。
Private Methods
private _init(sys: S3GLSystem, code: string) source
内部初期化処理。 シェーダーソースの格納、コードの取得(URLならダウンロード)、GLオブジェクト初期化などを行います。
Params:
Name | Type | Attribute | Description |
sys | S3GLSystem | GLシステムインスタンス(GLコンテキスト・コンパイル補助などに必要) |
|
code | string | シェーダーのGLSLソースコード、またはGLSLファイルのURL(1行の場合は自動判別) |