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

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

Introduction

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

Prototype

int GL_ARRAY_BUFFER

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

Click Source Link

Usage

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

License:Open Source License

public void updatTCBuffer(FloatBuffer buf, int offset, int count) {
    BufferData bd = bufferData[GLAdapter.ARRAY_TEXCOORD_0];
    gl.glBindBuffer(WebGL.GL_ARRAY_BUFFER, bd.buffer);

    int pos = buf.position();
    int limit = buf.limit();

    buf.position(pos + offset);/*from  ww w . ja v a 2 s .  c om*/
    buf.limit(pos + offset + count);

    WebGLArray<?> data = getWebGLArray(buf, GL_FLOAT);

    gl.glBufferSubData(WebGL.GL_ARRAY_BUFFER, offset * 4, data);

    buf.position(pos);
    buf.limit(limit);
}

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

License:Open Source License

private void prepareDraw() {
    if (updateMvpMatrix()) {
        gl.glUniformMatrix4fv(uMvpMatrix, false, WebGLFloatArray.create(mvpMatrix));
        checkError("prepareDraw");
    }//  w w w .  j a v  a 2 s. co  m

    gl.glUniform1i(uTexEnv0, getTextureMode(0));
    gl.glUniform1i(uTexEnv1, getTextureMode(1));

    //    StringBuilder sizes = new StringBuilder();

    for (int i = 0; i < SMALL_BUF_COUNT; i++) {
        BufferData bd = bufferData[i];
        if (bd.toBind != null) {
            gl.glBindBuffer(WebGL.GL_ARRAY_BUFFER, bd.buffer);
            checkError("bindBuffer" + i);

            //               int len = bd.toBind.getByteLength();
            //               if (len < bd.byteSize) {
            //                  gl.glBufferSubData(WebGL.GL_ARRAY_BUFFER, 0, bd.toBind);
            //               } else {
            //                  bd.byteSize = len;
            gl.glBufferData(WebGL.GL_ARRAY_BUFFER, bd.toBind, WebGL.GL_STREAM_DRAW);
            //               }
            checkError("bufferData" + i);

            gl.glVertexAttribPointer(i, bd.size, bd.type, bd.normalize, bd.byteStride, 0);
            checkError("vertexAttribPointer");

            bd.toBind = null;
        }
    }

    //    log ("prepDraw: " + sizes);
}

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

License:Open Source License

public void glVertexAttribPointer(int arrayId, int size, int type, boolean normalize, int byteStride,
        int offset, Buffer nioBuffer, int staticDrawId) {
    WebGL.Buffer buffer = staticBuffers.get(staticDrawId);
    if (buffer == null) {
        buffer = gl.glCreateBuffer();/* www.jav  a 2s  .  c  o  m*/
        staticBuffers.set(staticDrawId, buffer);
        gl.glBindBuffer(WebGL.GL_ARRAY_BUFFER, buffer);
        WebGLArray<?> webGLArray = getWebGLArray(nioBuffer, type);
        gl.glBufferData(WebGL.GL_ARRAY_BUFFER, webGLArray, WebGL.GL_STATIC_DRAW);
        checkError("bufferData");
        log("static buffer created; id: " + staticDrawId + " remaining: " + nioBuffer.remaining());
    }
    gl.glBindBuffer(WebGL.GL_ARRAY_BUFFER, buffer);
    gl.glVertexAttribPointer(arrayId, size, type, normalize, byteStride, offset);
    bufferData[arrayId].toBind = null;
    checkError("vertexAttribPointer");
}