recursal/MDN huggingface dataset:
WebGLRenderingContext: getShaderParameter() メソッド
================================================

**`WebGLRenderingContext.getShaderParameter()`** は WebGL API のメソッドで、指定されたシェーダーに関する情報を返します。

構文
--


```js
getShaderParameter(shader, pname)
```

### 引数

`shader`

引数情報の取得元となる `WebGLShader`。

`pname`

問い合わせる情報を指定する `GLenum` です。指定可能な値は次の通りです。

`gl.DELETE_STATUS`

シェーダーに削除フラグが立っているかどうかを示す `GLboolean` を返します。

`gl.COMPILE_STATUS`

最後のシェーダーのコンパイルが成功したかどうかを示す `GLboolean` を返します。

`gl.SHADER_TYPE`

シェーダーが頂点シェーダー (`gl.VERTEX_SHADER`) かフラグメントシェーダー (`gl.FRAGMENT_SHADER`) オブジェクトかを示す `GLenum` を返します。


### 返値

要求されたシェーダー情報（`pname` で指定されたもの）を返します。

例
-


```js
gl.getShaderParameter(shader, gl.SHADER\_TYPE);
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.9 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.getProgramParameter()` (en-US)
WebGLRenderingContext.createRenderbuffer()
==========================================

WebGL API の **`WebGLRenderingContext.createRenderbuffer()`** メソッドは、
 `WebGLRenderbuffer`
 オブジェクトを作成し、初期化します。

構文
--


```js
createRenderbuffer()
```

### 引数

なし。

### 返値

画像または、レンダリングのソースやターゲットとなるデータを保存する `WebGLRenderbuffer` オブジェクト。

例
-

### レンダリングバッファーを作成する


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const renderBuffer = gl.createRenderbuffer();
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.7 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.bindRenderbuffer()` (en-US)
* `WebGLRenderingContext.deleteRenderbuffer()` (en-US)
* `WebGLRenderingContext.isRenderbuffer()` (en-US)
* 他のバッファ: `WebGLBuffer`, `WebGLFramebuffer`
WebGLRenderingContext.clear()
=============================

WebGL API の **`WebGLRenderingContext.clear()`** メソッドは、バッファーをプリセット値で消去します。

プリセット値は、`clearColor()`, `clearDepth()` や `clearStencil()` で設定可能です。

シザーボックス、ディザリング、バッファー書き込みマスクは `clear()` メソッドに影響します。

構文
--
```

void gl.clear(mask);
```

### 引数

`mask`

消去されるバッファーを示す `GLbitfield` (en-US) のビット論理和マスクです。以下の値を取ることができます。

* `gl.COLOR_BUFFER_BIT`
* `gl.DEPTH_BUFFER_BIT`
* `gl.STENCIL_BUFFER_BIT`

### 返り値

ありません。

### 例外

*mask* が記載した値のうちどれでもない場合、`gl.INVALID_ENUM` エラーがスローされます。

例
-

`clear()` メソッドは複数の値を受け入れることができます。


```js
gl.clear(gl.DEPTH\_BUFFER\_BIT);
gl.clear(gl.DEPTH\_BUFFER\_BIT | gl.COLOR\_BUFFER\_BIT);
```


現在の消去する値を取得するには、`COLOR_CLEAR_VALUE`, `DEPTH_CLEAR_VALUE`, や `STENCIL_CLEAR_VALUE` 定数で問い合わせます。


```js
gl.getParameter(gl.COLOR\_CLEAR\_VALUE);
gl.getParameter(gl.DEPTH\_CLEAR\_VALUE);
gl.getParameter(gl.STENCIL\_CLEAR\_VALUE);
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.11 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.clearColor()`
* `WebGLRenderingContext.clearDepth()`
* `WebGLRenderingContext.clearStencil()`
WebGLRenderingContext: createShader() メソッド
==========================================

`WebGLRenderingContext` の **`createShader()`** は WebGL API のメソッドで、 `WebGLShader` を作成します。それからさらに、 `WebGLRenderingContext.shaderSource()` と `WebGLRenderingContext.compileShader()` を用いて設定できます。

構文
--


```js
createShader(type)
```

### 引数

`type`

`gl.VERTEX_SHADER` と `gl.FRAGMENT_SHADER` のどちらかです。

### 返値

新しい (`WebGLShader`) です。

例
-

例については `WebGLShader` を参照してください。

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.9 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLProgram`
* `WebGLShader`
* `WebGLRenderingContext.attachShader()`
* `WebGLRenderingContext.bindAttribLocation()` (en-US)
* `WebGLRenderingContext.compileShader()`
* `WebGLRenderingContext.createProgram()`
* `WebGLRenderingContext.createShader()`
* `WebGLRenderingContext.deleteProgram()` (en-US)
* `WebGLRenderingContext.deleteShader()` (en-US)
* `WebGLRenderingContext.detachShader()` (en-US)
* `WebGLRenderingContext.getAttachedShaders()` (en-US)
* `WebGLRenderingContext.getProgramParameter()` (en-US)
* `WebGLRenderingContext.getProgramInfoLog()` (en-US)
* `WebGLRenderingContext.getShaderParameter()`
* `WebGLRenderingContext.getShaderPrecisionFormat()` (en-US)
* `WebGLRenderingContext.getShaderInfoLog()`
* `WebGLRenderingContext.getShaderSource()` (en-US)
* `WebGLRenderingContext.isProgram()` (en-US)
* `WebGLRenderingContext.isShader()` (en-US)
* `WebGLRenderingContext.linkProgram()`
* `WebGLRenderingContext.shaderSource()`
* `WebGLRenderingContext.useProgram()`
* `WebGLRenderingContext.validateProgram()` (en-US)
WebGLRenderingContext: shaderSource() メソッド
==========================================

**`WebGLRenderingContext.shaderSource()`** は WebGL API のメソッドで、 `WebGLShader` のソースコードを設定します。

構文
--


```js
shaderSource(shader, source)
```

### 引数

`shader`

ソースコードを設定する `WebGLShader` オブジェクト。

`source`

設定する GLSL ソースコードの入った文字列です。

### 返値

ありません。

例
-


```js
const shader = gl.createShader(gl.VERTEX\_SHADER);
gl.shaderSource(shader, originalSource);

const source = gl.getShaderSource(shader);
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.9 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.createShader()`
* `WebGLRenderingContext.isShader()` (en-US)
* `WebGLRenderingContext.deleteShader()` (en-US)
* `WebGLRenderingContext.getShaderSource()` (en-US)
WebGLRenderingContext: drawingBufferHeight プロパティ
================================================

**`WebGLRenderingContext.drawingBufferHeight`** は読み取り専用のプロパティで、現在の描画バッファーの実際の高さを表します。これは、このコンテキストに関連付けられた `<canvas>` 要素の `height` 属性と一致すべきですが、実装がリクエストされた高さを提供できない場合は異なるかもしれません。

値
-

数値です。

例
-

この `<canvas>` 要素があったとします。


```html
<canvas id="canvas"></canvas>
```


以下の行で描画バッファーの高さを取得することができます。


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
gl.drawingBufferHeight; // 150
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # DOM-WebGLRenderingContext-drawingBufferHeight |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.drawingBufferWidth`
* `WebGLRenderingContext.viewport()` (en-US)
WebGLRenderingContext.createProgram()
=====================================

WebGL API の **`WebGLRenderingContext.createProgram()`** メソッドは、`WebGLProgram` オブジェクトを作成、初期化します。

構文
--
```

WebGLProgram gl.createProgram();
```

### 引数

ありません。

### 返り値

`WebGLProgram` オブジェクトは、2 つのコンパイルされた `WebGLShader` の組み合わせで、頂点シェーダーとフラグメントシェーダー (どちらも GLSL で書かれる) で成り立ちます。そして、これらを使用可能なプログラムへとリンクします。

例
-

### WebGL プログラムの作成


```js
var program = gl.createProgram();

// Attach pre-existing shaders
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);

gl.linkProgram(program);

if (!gl.getProgramParameter(program, gl.LINK\_STATUS)) {
  var info = gl.getProgramInfoLog(program);
  throw "Could not compile WebGL program. \n\n" + info;
}
```


`WebGLShader` を参照すると、上記サンプルの `vertexShader` と `fragmentShader` の作成についての情報が得られます。

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.9 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.deleteProgram()` (en-US)
* `WebGLRenderingContext.isProgram()` (en-US)
* `WebGLRenderingContext.linkProgram()`
* `WebGLRenderingContext.useProgram()`
* `WebGLRenderingContext.validateProgram()` (en-US)
* `WebGLRenderingContext.getProgramParameter()` (en-US)
* `WebGLRenderingContext.getProgramInfoLog()` (en-US)
WebGLRenderingContext: createBuffer() メソッド
==========================================

**`WebGLRenderingContext.createBuffer()`** は WebGL API のメソッド　で、頂点や色といったデータを格納する `WebGLBuffer` を作成、初期化します。

構文
--


```js
createBuffer()
```

### 引数

なし。

### 返値

頂点や色といったデータを格納する `WebGLBuffer` です。

例
-

### バッファーの作成


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.5 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.bindBuffer()`
* `WebGLRenderingContext.deleteBuffer()` (en-US)
* `WebGLRenderingContext.isBuffer()` (en-US)
* 他のバッファー : `WebGLFramebuffer`, `WebGLRenderbuffer`
WebGLRenderingContext: drawingBufferWidth プロパティ
===============================================

**`WebGLRenderingContext.drawingBufferWidth`** は読み取り専用のプロパティで、現在の描画バッファーの実際の幅を表します。これは、このコンテキストに関連付けられた `<canvas>` 要素の `width` 属性と一致すべきですが、実装がリクエストされた幅を提供できない場合は異なるかもしれません。

値
-

数値です。

例
-

この `<canvas>` 要素があったとします。


```html
<canvas id="canvas"></canvas>
```


以下の行で描画バッファーの幅を取得することができます。


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
gl.drawingBufferWidth; // 300
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # DOM-WebGLRenderingContext-drawingBufferWidth |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.drawingBufferHeight`
* `WebGLRenderingContext.viewport()` (en-US)
WebGLRenderingContext: getAttribLocation() メソッド
===============================================

**`WebGLRenderingContext.getAttribLocation()`** は WebGL API のメソッドで、指定された `WebGLProgram` 内の属性の場所を返します。

構文
--


```js
getAttribLocation(program, name)
```

### 引数

`program`

属性の変数の入った `WebGLProgram` です。

`name`

場所を取得する属性の変数名を指定する文字列です。

### 返値

 見つかった場合、変数名の場所を示す `GLint` 番号を返します。
 それ以外の場合は -1 を返します。

例
-


```js
gl.getAttribLocation(program, "vColor");
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.10 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.getUniformLocation()` (en-US)
WebGLRenderingContext.clearColor()
==================================

WebGL API の **`WebGLRenderingContext.clearColor()`** メソッドは、カラーバッファーの消去に使われる色の値を指定します。

この指定は `clear()` メソッドを呼んだときに使用される色です。値は 0 から 1 に丸められます。

構文
--
```

void gl.clearColor(red, green, blue, alpha);
```

### 引数

`red`

赤色を指定する `GLclampf` (en-US) で、カラーバッファーの消去に使われます。既定値は 0 です。

`green`

緑色を指定する `GLclampf` (en-US) で、カラーバッファーの消去に使われます。既定値は 0 です。

`blue`

青色を指定する `GLclampf` (en-US) で、カラーバッファーの消去に使われます。既定値は 0 です。

`alpha`

アルファ (不透明度) を指定する `GLclampf` (en-US) で、カラーバッファーの消去に使われます。既定値は 0 です。

### 返り値

ありません。

例
-


```js
gl.clearColor(1, 0.5, 0.5, 3);
```


現在の消去に使われる色を取得するには、`COLOR_CLEAR_VALUE` 定数で問い合わせると `Float32Array` を返します。


```js
gl.getParameter(gl.COLOR\_CLEAR\_VALUE);
// Float32Array[1, 0.5, 0.5, 1]
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.3 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.clear()`
* `WebGLRenderingContext.clearDepth()`
* `WebGLRenderingContext.clearStencil()`
WebGLRenderingContext: drawingBufferColorSpace プロパティ
====================================================

**`WebGLRenderingContext.drawingBufferColorSpace`** プロパティは、 WebGL 描画バッファーの色空間を指定します。既定値 (`srgb`) の他に、 `display-p3` 色空間も使用することができます。

テクスチャの色空間を指定するには `WebGLRenderingContext.unpackColorSpace` を参照してください。

値
-

このプロパティは以下の値を採ることができます。

* `"srgb"` は sRGB 色空間を選択します。これが既定値です。
* `"display-p3"` は display-p3 色空間を選択します。

無効な値を指定した場合、 `drawingBufferColorSpace` の値は変更されません。

例
-

### 描画バッファー色空間を、 Display P3 の赤を描画するように設定


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
gl.drawingBufferColorSpace = "display-p3";
gl.clearColor(1, 0, 0, 1);
gl.clear(glP3.COLOR\_BUFFER\_BIT);
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # DOM-WebGLRenderingContext-drawingBufferColorSpace |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.unpackColorSpace`
WebGLRenderingContext.uniformMatrix[234]fv()
============================================

WebGL API の **`WebGLRenderingContext.uniformMatrix[234]fv()`** メソッドは、行列の値をユニフォームの値に指定します。

このメソッドの 3 つのバージョン (`uniformMatrix2fv()`, `uniformMatrix3fv()`, と `uniformMatrix4fv()`) は、入力値として 2 要素, 3 要素, 4 要素のベクトルをそれぞれ取ります。

構文
--
```

WebGLRenderingContext.uniformMatrix2fv(location, transpose, value);
WebGLRenderingContext.uniformMatrix3fv(location, transpose, value);
WebGLRenderingContext.uniformMatrix4fv(location, transpose, value);
```

### 引数

`location`

変更するユニフォーム属性の位置を含むオブジェクト `WebGLUniformLocation` (en-US)。この位置は `getUniformLocation()` (en-US) を用いて入手されます。

`transpose`

行列を転置するかどうか指定する `GLboolean` (en-US)。`false` でなければならない。

`value`

`Float32Array` か `GLfloat` 値の並び。

### 返り値

`undefined`

例
-


```js
gl.uniformMatrix2fv(loc, false, [2, 1, 2, 2]);
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.10 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.uniform()`
* `WebGL2RenderingContext.uniformMatrix()` (en-US) – これらのメソッドの WebGL 2 版。
WebGLRenderingContext.linkProgram()
===================================

WebGL API の **`WebGLRenderingContext.linkProgram()`** メソッドは、与えられた `WebGLProgram` に接続された頂点とフラグメントのシェーダーをリンクします。

構文
--
```

void gl.linkProgram(program);
```

### 引数

program

リンクする `WebGLProgram`。

### 返り値

ありません。

例
-


```js
var program = gl.createProgram();

// Attach pre-existing shaders
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);

gl.linkProgram(program);

if (!gl.getProgramParameter(program, gl.LINK\_STATUS)) {
  var info = gl.getProgramInfoLog(program);
  throw new Error("Could not compile WebGL program. \n\n" + info);
}
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.9 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.createProgram()`
* `WebGLRenderingContext.deleteProgram()` (en-US)
* `WebGLRenderingContext.isProgram()` (en-US)
* `WebGLRenderingContext.useProgram()`
* `WebGLRenderingContext.validateProgram()` (en-US)
* `WebGLRenderingContext.getProgramParameter()` (en-US)
* `WebGLRenderingContext.getProgramInfoLog()` (en-US)
WebGLRenderingContext.createFramebuffer()
=========================================

WebGL API の **`WebGLRenderingContext.createFramebuffer()`** メソッドは、
 `WebGLFramebuffer`
 を作成し、初期化します。

構文
--


```js
createFramebuffer()
```

### 引数

なし。

### 返値

`WebGLFramebuffer` オブジェクト。

例
-

### フレームバッファーを作成する


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const framebuffer = gl.createFramebuffer();
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.6 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.bindFramebuffer()` (en-US)
* `WebGLRenderingContext.deleteFramebuffer()` (en-US)
* `WebGLRenderingContext.isFramebuffer()` (en-US)
* 他のバッファ: `WebGLBuffer`, `WebGLRenderbuffer`
WebGLRenderingContext.useProgram()
==================================

WebGL API の **`WebGLRenderingContext.useProgram()`** メソッドは、指定した `WebGLProgram` を現在の描画ステートの一部として設定します。

構文
--
```

void gl.useProgram(program);
```

### 引数

program

使用する `WebGLProgram`。

### 返り値

ありません。

例
-


```js
var program = gl.createProgram();

// Attach pre-existing shaders
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);

gl.linkProgram(program);
gl.useProgram(program);
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.9 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.createProgram()`
* `WebGLRenderingContext.deleteProgram()` (en-US)
* `WebGLRenderingContext.isProgram()` (en-US)
* `WebGLRenderingContext.linkProgram()`
* `WebGLRenderingContext.validateProgram()` (en-US)
* `WebGLRenderingContext.getProgramParameter()` (en-US)
* `WebGLRenderingContext.getProgramInfoLog()` (en-US)
WebGLRenderingContext: bindBuffer() メソッド
========================================

**`WebGLRenderingContext.bindBuffer()`** は WebGL API のメソッドで、指定された `WebGLBuffer` をターゲットに結合します。

構文
--


```js
bindBuffer(target, buffer)
```

### 引数

`target`

結合する場所 (ターゲット) の `GLenum` です。以下の値を指定することができます。

`gl.ARRAY_BUFFER`

頂点の属性を含むバッファーで、頂点座標、テクスチャ座標データや、頂点色データのようなものです。

`gl.ELEMENT_ARRAY_BUFFER`

要素の位置指定に使われるバッファーです。

WebGL 2 のコンテキスト (en-US)を使用している場合は、更に以下の値を利用することができます。

`gl.COPY_READ_BUFFER`

バッファーオブジェクトを他へコピーするためのバッファーです。

`gl.COPY_WRITE_BUFFER`

バッファーオブジェクトを他へコピーするためのバッファーです。

`gl.TRANSFORM_FEEDBACK_BUFFER`

書き戻し操作を変換するバッファーです。

`gl.UNIFORM_BUFFER`

ユニフォームブロックの格納に使われるバッファーです。

`gl.PIXEL_PACK_BUFFER`

ピクセル移動操作に使われるバッファーです。

`gl.PIXEL_UNPACK_BUFFER`

ピクセル移動操作に使われるバッファーです。


buffer

結合する `WebGLBuffer` です。

### 返値

なし (`undefined`)。

### 例外

一つのターゲットにのみ `WebGLBuffer` を結合できます。バッファーを他のターゲットに結合しようとすると、`INVALID_OPERATION` エラーが発生して現在のバッファー結合をそのままにします。

`WebGLBuffer` が `deleteBuffer` (en-US) によって削除されるようにマークされると、（再び）結合できなくなります。そうしようとしても `INVALID_OPERATION` エラーが生成されて、現在の結合は変更されません。

例
-

### バッファーをターゲットに結合


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
const buffer = gl.createBuffer();

gl.bindBuffer(gl.ARRAY\_BUFFER, buffer);
```

### 現在結合されているものの取得

現在のバッファー結合を確認するには、`ARRAY_BUFFER_BINDING` や `ELEMENT_ARRAY_BUFFER_BINDING` の定数で問い合わせます。


```js
gl.getParameter(gl.ARRAY\_BUFFER\_BINDING);
gl.getParameter(gl.ELEMENT\_ARRAY\_BUFFER\_BINDING);
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.5 |
| WebGL 2.0 Specification # 3.7.1 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.createBuffer()`
* `WebGLRenderingContext.deleteBuffer()` (en-US)
* `WebGLRenderingContext.isBuffer()` (en-US)
* 他のバッファー: `WebGLFramebuffer`, `WebGLRenderbuffer`
WebGLRenderingContext.drawArrays()
==================================

WebGL API の **`WebGLRenderingContext.drawArrays()`** メソッドは、配列データからプリミティブを描画します。

構文
--
```

void gl.drawArrays(mode, first, count);
```

### 引数

`mode`

描画するプリミティブの種類を指定する `GLenum` (en-US)。以下の値を取ることができます。

* `gl.POINTS`: 単一の点を描画します。
* `gl.LINE_STRIP`: 次の線へと直線を描画します。
* `gl.LINE_LOOP`: 次の線へと直線を描画し、最後の頂点は最初のものに接続します。
* `gl.LINES`: 頂点 2 つごとに、その間に線を描画します。
* `gl.TRIANGLE_STRIP`
* `gl.TRIANGLE_FAN`
* `gl.TRIANGLES`: 頂点 3 つの集まりごとに、三角形を描画します。

first

頂点ベクトルの配列の開始インデックスを指定する `GLint` (en-US)。

count

描画されるインデックスの数を指定する `GLsizei` (en-US)。

### 返り値

ありません。

### 例外

* `mode` が許容された値のどれでもない場合、`gl.INVALID_ENUM` エラーがスローされます。
* `first` や `count` が負数の場合、`gl.INVALID_VALUE` エラーがスローされます。
* `gl.CURRENT_PROGRAM` が `null` の場合、`gl.INVALID_OPERATION` エラーがスローされます。
例
-


```js
gl.drawArrays(gl.POINTS, 0, 8);
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.11 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.drawElements()`
* `ext.drawArraysInstancedANGLE()` (en-US)
* `ext.drawElementsInstancedANGLE()` (en-US)
* `ext.vertexAttribDivisorANGLE()` (en-US)
* `WebGL2RenderingContext.drawArraysInstanced()` (en-US)
* `WebGL2RenderingContext.drawElementsInstanced()` (en-US)
* `WebGL2RenderingContext.vertexAttribDivisor()` (en-US)
WebGLRenderingContext: activeTexture() メソッド
===========================================

**`WebGLRenderingContext.activeTexture()`** は WebGL API のメソッドで、どのテクスチャユニットをアクティブにするかを指定します。

構文
--


```js
activeTexture(texture)
```

### 引数

`texture`

アクティブにするテクスチャユニット。値は `gl.TEXTUREI` で、 *I* は 0 から `gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1` の範囲内です。

### 返値

なし (`undefined`)。

### 例外

*texture* が `gl.TEXTUREI` の 1 つでない場合、すなわち *I* が 0 から `gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1` の範囲にない場合、 `gl.INVALID_ENUM` エラーが発生します。

例
-

次の呼び出しは `gl.TEXTURE1` を現在のテクスチャとして選択します。テクスチャの状態を変更する後続の呼び出しは、このテクスチャに影響します。


```js
gl.activeTexture(gl.TEXTURE1);
```


テクスチャユニットの数は実装に依存しますが、定数 `MAX_COMBINED_TEXTURE_IMAGE_UNITS` を使って知ることができます。仕様では 8 以上です。


```js
gl.getParameter(gl.MAX\_COMBINED\_TEXTURE\_IMAGE\_UNITS);
```


アクティブなテクスチャを取得するには、定数 `ACTIVE_TEXTURE` を問い合わせます。


```js
gl.activeTexture(gl.TEXTURE0);
gl.getParameter(gl.ACTIVE\_TEXTURE);
// "33984" を返す（0x84C0、gl.TEXTURE0 列挙値）
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.3 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLRenderingContext.getParameter()` (en-US)
WebGLRenderingContext: compileShader() メソッド
===========================================

**WebGLRenderingContext.compileShader()** は WebGL API のメソッドで、 GLSL シェーダーをバイナリーへコンパイルします。これは `WebGLProgram` で使用することができます。

構文
--


```js
compileShader(shader)
```

### 引数

`shader`

フラグメントまたは頂点の `WebGLShader`。

### 返値

なし (`undefined`)。

例
-


```js
const shader = gl.createShader(gl.VERTEX\_SHADER);
gl.shaderSource(shader, shaderSource);
gl.compileShader(shader);
```

仕様書
---

| Specification |
| --- |
| WebGL Specification # 5.14.9 |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `WebGLProgram`
* `WebGLShader`
* `WebGLRenderingContext.attachShader()`
* `WebGLRenderingContext.createProgram()`
* `WebGLRenderingContext.createShader()`
* `WebGLRenderingContext.deleteProgram()` (en-US)
* `WebGLRenderingContext.deleteShader()` (en-US)
* `WebGLRenderingContext.detachShader()` (en-US)
* `WebGLRenderingContext.getAttachedShaders()` (en-US)
* `WebGLRenderingContext.getProgramParameter()` (en-US)
* `WebGLRenderingContext.getProgramInfoLog()` (en-US)
* `WebGLRenderingContext.getShaderParameter()`
* `WebGLRenderingContext.getShaderPrecisionFormat()` (en-US)
* `WebGLRenderingContext.getShaderInfoLog()`
* `WebGLRenderingContext.getShaderSource()` (en-US)
* `WebGLRenderingContext.isProgram()` (en-US)
* `WebGLRenderingContext.isShader()` (en-US)
* `WebGLRenderingContext.linkProgram()`
* `WebGLRenderingContext.shaderSource()`
* `WebGLRenderingContext.useProgram()`
* `WebGLRenderingContext.validateProgram()` (en-US)
WebGLRenderingContext.clearDepth()
==================================

WebGL API の **`WebGLRenderingContext.clearDepth()`** メソッドは、深度バッファーを消去する値を指定します。

この指定は、`clear()` メソッドを呼ぶときに使用される深度の数値です。値は 0 から 1 に丸められます。

構文
--
```

void gl.clearDepth(depth);
```

### 引数

`depth`

深度の値を指定する `GLclampf` (en-US) で、深度バッファーを消去するときに使われる値です。既定値は 1 です。

### 返り値

ありません。

例
-


```js
gl.clearDepth(0.5);
```


現在の深度を消去する値を取得するには、`DEPTH_CLEAR_VALUE` 定数で問い合わせます。


```js
gl.getParameter(gl.DEPTH\_CLEAR\_VALUE);
// 0.5
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.3 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.clear()`
* `WebGLRenderingContext.clearColor()`
* `WebGLRenderingContext.clearStencil()`
WebGLRenderingContext.clearStencil()
====================================

WebGL API の **`WebGLRenderingContext.clearStencil()`** メソッドは、ステンシルバッファーを消去する値を指定します。

この指定は、`clear()` メソッドを呼ぶときに使用されるステンシルの値です。

構文
--
```

void gl.clearStencil(s);
```

### 引数

`s`

インデックスを指定する `GLint` (en-US) で、ステンシルバッファーの消去に使用される値です。既定値は 0 です。

### 返り値

ありません。

例
-


```js
gl.clearStencil(1);
```


現在のステンシルを消去する値を取得するには、`STENCIL_CLEAR_VALUE` 定数で問い合わせます。


```js
gl.getParameter(gl.STENCIL\_CLEAR\_VALUE);
// 1
```

仕様策定状況
------

| Specification |
| --- |
| WebGL Specification # 5.14.3 |

ブラウザーの対応
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連項目
----

* `WebGLRenderingContext.clear()`
* `WebGLRenderingContext.clearColor()`
* `WebGLRenderingContext.clearDepth()`