WebGLRenderingContext
WebGLRenderingContext
インターフェースは <canvas>
要素の描画サーフェスのためのOpenGL ES 2.0のレンダリングコンテキストを提供します。
このインターフェースを取得するためには、<canvas>
要素の getContext()
(en-US) を "webgl" の引数を与えて呼び出します:
var canvas = document.getElementById('myCanvas');
var gl = canvas.getContext('webgl');
一度キャンバスのWebGLレンダリングコンテキストを取得すれば、その中でレンダリングができます。
WebGL tutorial には、WebGLを始めるためのより多くの情報、サンプル、資料があります。
定数
WebGL constants ページを参照してください。
WebGL コンテキスト
次のプロパティやメソッドはWebGLコンテキストを扱うための一般的な情報や機能を提供します:
WebGLRenderingContext.canvas
(en-US)- 読み取り専用の
HTMLCanvasElement
への後方参照です。<canvas>
要素と関連付けられていない場合はnull
を返すことがあります。 WebGLRenderingContext.commit()
(en-US) Experimental-
コンテキストが直接指定されたキャンバスに固定されていない場合、フレームを元の
HTMLCanvasElement
にプッシュします。 WebGLRenderingContext.drawingBufferWidth
(en-US)- 読み取り専用の現在の描画バッファの幅です。コンテキストが関連付けされたcanvas要素の幅と一致しているといえます。
WebGLRenderingContext.drawingBufferHeight
(en-US)- 読み取り専用の現在の描画バッファの高さです。コンテキストが関連付けされたcanvas要素の高さと一致しているといえます。
WebGLRenderingContext.getContextAttributes()
(en-US)- 実際のコンテキストパラメータを含む
WebGLContextAttributes
オブジェクトを返します。コンテキストが失われていた場合はnull
を返すことがあります。 WebGLRenderingContext.isContextLost()
(en-US)- コンテキストが失われている場合は
true
を返し、そうでない場合はfalse
を返します。
ビューイングとクリッピング
WebGLRenderingContext.scissor()
(en-US)- シザーボックスを定義します。
WebGLRenderingContext.viewport()
(en-US)- ビューポートをセットします。
ステート情報
WebGLRenderingContext.activeTexture()
(en-US)- アクティブなテクスチャユニットを選択します。
WebGLRenderingContext.blendColor()
(en-US)- ブレンド元とブレンド先のブレンドファクターをセットします。
WebGLRenderingContext.blendEquation()
(en-US)- RGBのブレンド式とアルファのブレンド式をひとつの式にセットします。
WebGLRenderingContext.blendEquationSeparate()
(en-US)- RGBのブレンド式とアルファのブレンド式を分けて式にセットします。
WebGLRenderingContext.blendFunc()
(en-US)- どの関数がピクセルのブレンド演算に使用されるかを定義します。
WebGLRenderingContext.blendFuncSeparate()
(en-US)- どの関数がピクセルのブレンド演算に使用されるかをRGBとアルファ要素を個別に定義します。
WebGLRenderingContext.clearColor()
- カラーバッファをクリアする時に使われる色を指定します。
WebGLRenderingContext.clearDepth()
- 深度バッファをクリアする時に使用する深度値を指定します。
WebGLRenderingContext.clearStencil()
- ステンシルバッファをクリアする時に使用するステンシル値を指定します。
WebGLRenderingContext.colorMask()
(en-US)- ドローイングまたは
WebGLFramebuffer
(en-US) へのレンダリングの際に、どの色要素を有効または無効にするかをセットします。 WebGLRenderingContext.cullFace()
(en-US)- 前面ポリゴンと後面ポリゴンのいずれか、または両方をカリングするかどうかを指定します。
WebGLRenderingContext.depthFunc()
(en-US)- 現在の深度バッファの深度値と書き込むピクセルの深度値を比較する関数を指定します。
WebGLRenderingContext.depthMask()
(en-US)- 深度バッファへの書き込みを有効にするか無効にするかどうかをセットします。
WebGLRenderingContext.depthRange()
(en-US)- 正規化デバイス座標系からウィンドウまたはビューポート座標系への深度レンジマッピングを指定します。
WebGLRenderingContext.disable()
(en-US)- このコンテキストにおいて、指定したWebGL機能を無効にします。
WebGLRenderingContext.enable()
(en-US)- このコンテキストにおいて、指定したWebGL機能を有効にします。
WebGLRenderingContext.frontFace()
(en-US)- 前面ポリゴンなのか後面ポリゴンなのかを周る方向によって指定します。
WebGLRenderingContext.getParameter()
(en-US)- 渡されたパラメータ名の値を返します。
WebGLRenderingContext.getError()
(en-US)- エラー情報を返します。
WebGLRenderingContext.hint()
(en-US)- 一定の振る舞いについてのヒントを指定します。このヒントの振る舞いは実装に依存します。
WebGLRenderingContext.isEnabled()
(en-US)- このコンテキストで指定されたWebGL機能が有効であるか無効であるかをテストします。
WebGLRenderingContext.lineWidth()
(en-US)- ラスタライズする線の幅をセットします。
WebGLRenderingContext.pixelStorei()
(en-US)- ピクセルストレージモードを指定します。
WebGLRenderingContext.polygonOffset()
(en-US)- Specifies the scale factors and units to calculate depth values.
WebGLRenderingContext.sampleCoverage()
(en-US)- アンチエイリアシングエフェクトのためのマルチサンプルカバレッジパラメータを指定します。
WebGLRenderingContext.stencilFunc()
(en-US)- ステンシルテストための関数と参照値を、前面と後面の両面をセットします。
WebGLRenderingContext.stencilFuncSeparate()
(en-US)- ステンシルテストための関数と参照値を、前面と後面の両面、またはいずれかをセットします。
WebGLRenderingContext.stencilMask()
(en-US)- ステンシル平面の個々のビットの書き込みの有効と無効を、前面と後面の両面を操作します。
WebGLRenderingContext.stencilMaskSeparate()
(en-US)- ステンシル平面の個々のビットの書き込みの有効と無効を、前面と後面のいずれか、または両面を操作します。
WebGLRenderingContext.stencilOp()
(en-US)- 前面と後面のステンシルテストの振る舞いを同時にセットします。
WebGLRenderingContext.stencilOpSeparate()
(en-US)- 前面と後面のステンシルテストの振る舞いをセットします。
バッファ
WebGLRenderingContext.bindBuffer()
WebGLBuffer
オブジェクトを与えられたターゲットにバインドします。WebGLRenderingContext.bufferData()
- バッファデータを更新します。
WebGLRenderingContext.bufferSubData()
(en-US)- バッファデータを与えられたオフセットから更新します。
WebGLRenderingContext.createBuffer()
WebGLBuffer
オブジェクトを作成します。WebGLRenderingContext.deleteBuffer()
(en-US)WebGLBuffer
オブジェクトを削除します。WebGLRenderingContext.getBufferParameter()
(en-US)- バッファについての情報を返します。
WebGLRenderingContext.isBuffer()
(en-US)- 与えられたバッファが有効であるかのブール値を返します。
フレームバッファ
WebGLRenderingContext.bindFramebuffer()
(en-US)WebGLFrameBuffer
オブジェクトを与えられたターゲットにバインドします。WebGLRenderingContext.checkFramebufferStatus()
(en-US)- フレームバッファのステータスを返します。
WebGLRenderingContext.createFramebuffer()
(en-US)WebGLFrameBuffer
オブジェクトを作成します。WebGLRenderingContext.deleteFramebuffer()
(en-US)WebGLFrameBuffer
オブジェクトを削除します。WebGLRenderingContext.framebufferRenderbuffer()
(en-US)WebGLRenderingBuffer
オブジェクトをWebGLFrameBuffer
オブジェクトにアタッチします。WebGLRenderingContext.framebufferTexture2D()
(en-US)- テクスチャ画像を
WebGLFrameBuffer
オブジェクトにアタッチします。 WebGLRenderingContext.getFramebufferAttachmentParameter()
(en-US)- フレームバッファについての情報を返します。
WebGLRenderingContext.isFramebuffer()
(en-US)- 渡された
WebGLFrameBuffer
オブジェクトが有効かどうかを表すブール値を返します。 WebGLRenderingContext.readPixels()
(en-US)WebGLFrameBuffer
からピクセルブロックを読み取ります。
レンダーバッファ
WebGLRenderingContext.bindRenderbuffer()
(en-US)- 与えられたターゲットに
WebGLRenderBuffer
オブジェクトをバインドします。 WebGLRenderingContext.createRenderbuffer()
(en-US)WebGLRenderBuffer
オブジェクトを作成します。WebGLRenderingContext.deleteRenderbuffer()
(en-US)WebGLRenderBuffer
オブジェクトを削除します。WebGLRenderingContext.getRenderbufferParameter()
(en-US)- レンダーバッファについての情報を返します。
WebGLRenderingContext.isRenderbuffer()
(en-US)- 渡された
WebGLRenderingBuffer
が有効かどうかを表すブール値を返します。 WebGLRenderingContext.renderbufferStorage()
(en-US)- レンダーバッファデータストアを作成します。
テクスチャ
WebGLRenderingContext.bindTexture()
(en-US)- 与えられたターゲットに
WebGLTexture
オブジェクトをバインドします。 WebGLRenderingContext.compressedTexImage2D()
(en-US)- 2Dテクスチャ画像を圧縮フォーマットで指定します。
WebGLRenderingContext.compressedTexSubImage2D()
(en-US)- 2Dテクスチャ部分画像を圧縮フォーマットで指定します。
WebGLRenderingContext.copyTexImage2D()
(en-US)- 2Dテクスチャ画像をコピーします。
WebGLRenderingContext.copyTexSubImage2D()
(en-US)- 2Dテクスチャ部分画像をコピーします。
WebGLRenderingContext.createTexture()
(en-US)WebGLTexture
オブジェクトを作成します。WebGLRenderingContext.deleteTexture()
(en-US)WebGLTexture
オブジェクトを削除します。WebGLRenderingContext.generateMipmap()
(en-US)WebGLTexture
オブジェクトに対してミップマップ集合を生成します。WebGLRenderingContext.getTexParameter()
(en-US)- テクスチャに対しての情報を返します。
WebGLRenderingContext.isTexture()
(en-US)- 渡された
WebGLTexture
が有効かどうかを表すブール値を返します。 WebGLRenderingContext.texImage2D()
(en-US)- 2Dテクスチャ画像を指定します。
WebGLRenderingContext.texSubImage2D()
(en-US)- 現在の
WebGLTexture
の部分矩形を更新します。 WebGLRenderingContext.texParameterf()
(en-US)- テクスチャパラメータをセットします。
WebGLRenderingContext.texParameteri()
(en-US)- テクスチャパラメータをセットします。
プログラムとシェーダ
WebGLRenderingContext.attachShader()
WebGLShader
をWebGLProgram
にアタッチします。WebGLRenderingContext.bindAttribLocation()
(en-US)- 汎用頂点インデックスを名前付き属性変数にバインドします。
WebGLRenderingContext.compileShader()
WebGLShader
をコンパイルします。WebGLRenderingContext.createProgram()
WebGLProgram
を作成します。WebGLRenderingContext.createShader()
WebGLShader
を作成します。WebGLRenderingContext.deleteProgram()
(en-US)WebGLProgram
を削除します。WebGLRenderingContext.deleteShader()
(en-US)WebGLShader
を削除します。WebGLRenderingContext.detachShader()
(en-US)WebGLShader
をでタッチします。WebGLRenderingContext.getAttachedShaders()
(en-US)WebGLProgram
にアタッチされたWebGLShader
オブジェクトのリストを返します。WebGLRenderingContext.getProgramParameter()
(en-US)- プログラムについての情報を返します。
WebGLRenderingContext.getProgramInfoLog()
(en-US)WebGLProgram
オブジェクトについての情報ログを返します。WebGLRenderingContext.getShaderParameter()
(en-US)- シェーダについての情報を返します。
WebGLRenderingContext.getShaderPrecisionFormat()
(en-US)- シェーダの数値フォーマットの精度について記述した
WebGLShaderPrecisionFormat
オブジェクトを返します。 WebGLRenderingContext.getShaderInfoLog()
(en-US)WebGLShader
についての情報ログを返します。WebGLRenderingContext.getShaderSource()
(en-US)WebGLShader
のソースコードを文字列として返します。WebGLRenderingContext.isProgram()
(en-US)- 渡された
WebGLProgram
有効かを表すブール値を返します。 WebGLRenderingContext.isShader()
(en-US)- 渡された
WebGLShader
有効かを表すブール値を返します。 WebGLRenderingContext.linkProgram()
- 渡された
WebGLProgram
オブジェクトをリンクします。 WebGLRenderingContext.shaderSource()
WebGLShader
にソースコードをセットします。WebGLRenderingContext.useProgram()
- 指定した
WebGLProgram
を現在のレンダリングステートの一部として使用します。 WebGLRenderingContext.validateProgram()
(en-US)WebGLProgram
を検証します。
ユニフォームと属性
WebGLRenderingContext.disableVertexAttribArray()
(en-US)- 与えられたポジションの頂点属性配列を無効にします。
WebGLRenderingContext.enableVertexAttribArray()
(en-US)- 与えられたポジションの頂点属性配列を有効にします。
WebGLRenderingContext.getActiveAttrib()
(en-US)- 有効な属性変数についての情報を返します。
WebGLRenderingContext.getActiveUniform()
(en-US)- 有効なユニフォーム変数についての情報を返します。
WebGLRenderingContext.getAttribLocation()
- 属性変数のロケーションを返します。
WebGLRenderingContext.getUniform()
(en-US)- 与えられたロケーションのユニフォーム変数の値を返します。
WebGLRenderingContext.getUniformLocation()
(en-US)- ユニフォーム変数のロケーションを返します。
WebGLRenderingContext.getVertexAttrib()
(en-US)- 与えられたポジションの頂点属性についての情報を返します。
WebGLRenderingContext.getVertexAttribOffset()
(en-US)- 与えられた頂点配列のアドレスを返します。
WebGLRenderingContext.uniform[1234][fi][v]()
- ユニフォーム変数の値を指定します。
WebGLRenderingContext.uniformMatrix[234]fv()
- ユニフォーム変数の行列を指定します。
WebGLRenderingContext.vertexAttrib[1234]f[v]()
(en-US)- 汎用頂点属性の値を指定します。
WebGLRenderingContext.vertexAttribPointer()
- データフォーマットと頂点属性配列中の頂点属性のロケーションを指定します。
バッファへの書き込み
WebGLRenderingContext.clear()
- 指定されたバッファを既定値でクリアします。
WebGLRenderingContext.drawArrays()
- プリミティブを配列データからレンダリングします。
WebGLRenderingContext.drawElements()
- プリミティブを要素配列データからレンダリングします。
WebGLRenderingContext.finish()
(en-US)- 以前に呼び出されたコマンドが終了するまで処理をブロックします。
WebGLRenderingContext.flush()
(en-US)- 可能な限り速くすべてのコマンドを実行し、バッファコマンドを空にします。
拡張を使用する
これらのメソッドはWebGL拡張を管理します:
WebGLRenderingContext.getSupportedExtensions()
(en-US)- サポートしている全てのWebGL拡張を
DOMString
のArray
で返します。 WebGLRenderingContext.getExtension()
(en-US)- 拡張オブジェクトを返します。
例
WebGL コンテキストフィーチャーの検出
{{page("/ja/Learn/WebGL/By_example/Detect_WebGL", "summary")}}
{{page("/ja/Learn/WebGL/By_example/Detect_WebGL", "detect-webgl-source")}}
WebGLレンダリングにおけるキャンバスサイズの効果
{{page("/ja/Learn/WebGL/By_example/Canvas_size_and_WebGL", "canvas-size-and-webgl-intro")}}
{{page("/ja/Learn/WebGL/By_example/Canvas_size_and_WebGL", "canvas-size-and-webgl-source")}}
仕様
仕様 | ステータス | コメント |
---|---|---|
WebGL 1.0 WebGLRenderingContext の定義 |
勧告 | Initial definition |
ブラウザ実装状況
BCD tables only load in the browser