cljs-webgl.buffers documentation

clear-color-buffer

(clear-color-buffer gl-context red green blue alpha)
Clears the color buffer with specified `red`, `green`, `blue` and `alpha` values.

Relevant OpenGL ES reference pages:

* [glClearColor](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glClearColor.xml)
* [glClear](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glClear.xml)

clear-depth-buffer

(clear-depth-buffer gl-context depth)
Clears the depth buffer with specified `depth` value.

Relevant OpenGL ES reference pages:

* [glClearDepthf](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glClearDepthf.xml)
* [glClear](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glClear.xml)

clear-stencil-buffer

(clear-stencil-buffer gl-context index)
Clears the stencil buffer with specified `index` value.

Relevant OpenGL ES reference pages:

* [glClearStencil](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glClearStencil.xml)
* [glClear](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glClear.xml)

create-buffer

(create-buffer gl-context data target usage & [item-size])
Creates a new buffer with initialized `data`.

`data` must be a typed-array

`target` may be `cljs-webgl.constants.buffer-object/array-buffer` or `cljs-webgl.constants.buffer-object/element-array-buffer`

`usage` may be `cljs-webgl.constants.buffer-object/static-draw` or `cljs-webgl.constants.buffer-object/dynamic-draw`

`item-size` [optional] will set the item size as an attribute on the buffer, and the calculate the number of items accordingly.

Relevant OpenGL ES reference pages:

* [glGenBuffers(Similar to createBuffer)](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGenBuffers.xml)
* [glBindBuffer](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glBindBuffer.xml)
* [glBufferData](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glBufferData.xml)

default-capabilities

draw!

(draw! gl-context & {:keys [shader draw-mode first count attributes uniforms textures element-array capabilities blend-function viewport], :as opts})

set-attribute

(set-attribute gl-context {:keys [buffer location components-per-vertex type normalized? stride offset]})

set-capability

(set-capability gl-context capability enabled?)
Enables/disables according to `enabled?` a given server-side GL `capability`

The valid values for `capability` are: `cljs-webgl.constants.capability/blend`,
`cljs-webgl.constants.capability/cull-face`, `cljs-webgl.constants.capability/depth-test`, `cljs-webgl.constants.capability/dither`,
`cljs-webgl.constants.capability/polygon-offset-fill`, `cljs-webgl.constants.capability/sample-alpha-to-coverage`,
`cljs-webgl.constants.capability/sample-coverage`, `cljs-webgl.constants.capability/scissor-test`,
`cljs-webgl.constants.capability/stencil-test`

Relevant OpenGL ES reference pages:

* [glEnable](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glEnable.xml)
* [glDisable](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glDisable.xml)

set-texture

(set-texture gl-context shader {:keys [texture name texture-unit]})

set-uniform

(set-uniform gl-context shader {:keys [name type values transpose]})

set-viewport

(set-viewport gl-context {:keys [x y width height], :as viewport})
Sets `gl-context` viewport according to `viewport` which is expected to have the form:

{:x,
 :y,
 :width,
 :height}

Relevant OpenGL ES reference pages:

* [viewport](http://www.khronos.org/opengles/sdk/docs/man/xhtml/glViewport.xml)