Example usage for com.google.gwt.corp.webgl.client WebGL GL_UNSIGNED_SHORT

List of usage examples for com.google.gwt.corp.webgl.client WebGL GL_UNSIGNED_SHORT

Introduction

In this page you can find the example usage for com.google.gwt.corp.webgl.client WebGL GL_UNSIGNED_SHORT.

Prototype

int GL_UNSIGNED_SHORT

To view the source code for com.google.gwt.corp.webgl.client WebGL GL_UNSIGNED_SHORT.

Click Source Link

Usage

From source file:jake2.gwt.client.WebGLAdapter.java

License:Open Source License

@Override
public void glDrawElements(int mode, ShortBuffer srcIndexBuf) {
    prepareDraw();/*ww w .j ava2s  . c  om*/

    gl.glBindBuffer(WebGL.GL_ELEMENT_ARRAY_BUFFER, elementBuffer);
    checkError("bindBuffer(el)");
    gl.glBufferData(WebGL.GL_ELEMENT_ARRAY_BUFFER, getWebGLArray(srcIndexBuf, WebGL.GL_UNSIGNED_SHORT),
            WebGL.GL_DYNAMIC_DRAW);
    checkError("bufferData(el)");

    int count = srcIndexBuf.remaining();
    gl.glDrawElements(mode, count, WebGL.GL_UNSIGNED_SHORT, 0);
    checkError("drawElements");
}

From source file:jake2.gwt.client.WebGLAdapter.java

License:Open Source License

private WebGLArray<?> getWebGLArray(Buffer buffer, int type) {

    int elementSize;
    HasWebGLArray arrayHolder;/*  www  . j  a  va 2 s .  c om*/

    if (!(buffer instanceof HasWebGLArray)) {
        if (type != GL_BYTE && type != GL_UNSIGNED_BYTE) {
            log("buffer byte order problem");
            throw new RuntimeException("Buffer byte order problem");
        }
        if (buffer instanceof IntBuffer) {
            elementSize = 4;
        } else {
            throw new RuntimeException("NYI");
        }
        arrayHolder = (HasWebGLArray) ((ByteBufferWrapper) buffer).getByteBuffer();
    } else {
        arrayHolder = (HasWebGLArray) buffer;
        elementSize = arrayHolder.getElementSize();
    }

    WebGLArray<?> webGLArray = arrayHolder.getWebGLArray();
    int remainingBytes = buffer.remaining() * elementSize;

    int byteOffset = webGLArray.getByteOffset() + buffer.position() * elementSize;

    switch (type) {
    case WebGL.GL_FLOAT:
        return WebGLFloatArray.create(webGLArray.getBuffer(), byteOffset, remainingBytes / 4);

    case WebGL.GL_UNSIGNED_BYTE:
        return WebGLUnsignedByteArray.create(webGLArray.getBuffer(), byteOffset, remainingBytes);

    case WebGL.GL_UNSIGNED_SHORT:
        return WebGLUnsignedShortArray.create(webGLArray.getBuffer(), byteOffset, remainingBytes / 2);

    case WebGL.GL_INT:
        return WebGLIntArray.create(webGLArray.getBuffer(), byteOffset, remainingBytes / 4);

    case WebGL.GL_SHORT:
        return WebGLShortArray.create(webGLArray.getBuffer(), byteOffset, remainingBytes / 2);

    case WebGL.GL_BYTE:
        return WebGLByteArray.create(webGLArray.getBuffer(), byteOffset, remainingBytes);
    }

    throw new IllegalArgumentException();
}