Java 类java.nio.HasArrayBufferView 实例源码

项目:libgdxcn    文件:GwtGL20.java   
@Override
public void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type,
    Buffer pixels) {
       if (pixels.limit() > 1) {
           HasArrayBufferView arrayHolder = (HasArrayBufferView) pixels;

           ArrayBufferView webGLArray = arrayHolder.getTypedArray();
           int remainingBytes = pixels.remaining() * 4;

           int byteOffset = webGLArray.byteOffset() + pixels.position() * 4;

           Uint8Array buffer = Uint8ArrayNative.create(webGLArray.buffer(), byteOffset, remainingBytes);

           gl.texImage2D(target, level, internalformat, width, height, border, format, type, buffer);
       } else {
           Pixmap pixmap = Pixmap.pixmaps.get(((IntBuffer)pixels).get(0));
           gl.texImage2D(target, level, internalformat, format, type, pixmap.getCanvasElement());
       }
}
项目:libgdxcn    文件:GwtGL20.java   
@Override
public void glTexSubImage2D (int target, int level, int xoffset, int yoffset, int width, int height, int format, int type,
    Buffer pixels) {
       if (pixels.limit() > 1) {
           HasArrayBufferView arrayHolder = (HasArrayBufferView) pixels;

           ArrayBufferView webGLArray = arrayHolder.getTypedArray();
           int remainingBytes = pixels.remaining() * 4;

           int byteOffset = webGLArray.byteOffset() + pixels.position() * 4;

           Uint8Array buffer = Uint8ArrayNative.create(webGLArray.buffer(), byteOffset, remainingBytes);

           gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, buffer);
       } else {
           Pixmap pixmap = Pixmap.pixmaps.get(((IntBuffer) pixels).get(0));
           gl.texSubImage2D(target, level, xoffset, yoffset, width, height, pixmap.getCanvasElement());
       }
}
项目:TinyVoxel    文件:GwtGL20.java   
@Override
public void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type,
                          Buffer pixels) {
    if (pixels.limit() > 1) {
        HasArrayBufferView arrayHolder = (HasArrayBufferView) pixels;

        ArrayBufferView webGLArray = arrayHolder.getTypedArray();
        int remainingBytes = pixels.remaining() * 4;

        int byteOffset = webGLArray.byteOffset() + pixels.position() * 4;

        Uint8Array buffer = Uint8ArrayNative.create(webGLArray.buffer(), byteOffset, remainingBytes);

        gl.texImage2D(target, level, internalformat, width, height, border, format, type, buffer);
    } else {
        // Put this back later
        Pixmap pixmap = Pixmap.pixmaps.get(((IntBuffer)pixels).get(0));
        gl.texImage2D(target, level, internalformat, format, type, pixmap.getCanvasElement());
    }
}
项目:TinyVoxel    文件:GwtGL20.java   
@Override
public void glTexSubImage2D (int target, int level, int xoffset, int yoffset, int width, int height, int format, int type,
                             Buffer pixels) {
    if (pixels.limit() > 1) {
        HasArrayBufferView arrayHolder = (HasArrayBufferView) pixels;

        ArrayBufferView webGLArray = arrayHolder.getTypedArray();
        int remainingBytes = pixels.remaining() * 4;

        int byteOffset = webGLArray.byteOffset() + pixels.position() * 4;

        Uint8Array buffer = Uint8ArrayNative.create(webGLArray.buffer(), byteOffset, remainingBytes);

        gl.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, buffer);
    } else {
        // Put this back later
        Pixmap pixmap = Pixmap.pixmaps.get(((IntBuffer) pixels).get(0));
        gl.texSubImage2D(target, level, xoffset, yoffset, width, height, pixmap.getCanvasElement());
    }
}
项目:gdx-freetype-gwt    文件:FreeType.java   
public Face newMemoryFace (ByteBuffer buffer, int faceIndex) {
    ArrayBufferView buf = ((HasArrayBufferView)buffer).getTypedArray();
    int[] addressToFree = new int[] {0}; // Hacky way to get two return values
    int face = newMemoryFace(address, buf, buffer.remaining(), faceIndex, addressToFree);
    if (face == 0) {
        if (addressToFree[0] != 0) { // 'Zero' would mean allocating the buffer failed
            nativeFree(addressToFree[0]);
        }
        throw new GdxRuntimeException("Couldn't load font");
    } else {
        fontData.put(face, addressToFree[0]);
        return new Face(face, this);
    }
}
项目:libgdxcn    文件:GwtGL20.java   
public Float32Array copy (FloatBuffer buffer) {
    if (GWT.isProdMode()) {
        return ((Float32Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(buffer.position(), buffer.remaining());
    } else {
        ensureCapacity(buffer);
        for (int i = buffer.position(), j = 0; i < buffer.limit(); i++, j++) {
            floatBuffer.set(j, buffer.get(i));
        }
        return floatBuffer.subarray(0, buffer.remaining());
    }
}
项目:libgdxcn    文件:GwtGL20.java   
public Int16Array copy (ShortBuffer buffer) {
    if (GWT.isProdMode()) {
        return ((Int16Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(buffer.position(), buffer.remaining());
    } else {
        ensureCapacity(buffer);
        for (int i = buffer.position(), j = 0; i < buffer.limit(); i++, j++) {
            shortBuffer.set(j, buffer.get(i));
        }
        return shortBuffer.subarray(0, buffer.remaining());
    }
}
项目:libgdxcn    文件:GwtGL20.java   
public Int32Array copy (IntBuffer buffer) {
    if (GWT.isProdMode()) {
        return ((Int32Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(buffer.position(), buffer.remaining());
    } else {
        ensureCapacity(buffer);
        for (int i = buffer.position(), j = 0; i < buffer.limit(); i++, j++) {
            intBuffer.set(j, buffer.get(i));
        }
        return intBuffer.subarray(0, buffer.remaining());
    }
}
项目:TinyVoxel    文件:GwtGL20.java   
public Float32Array copy (FloatBuffer buffer) {
    if (GWT.isProdMode()) {
        return ((Float32Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(buffer.position(), buffer.remaining());
    } else {
        ensureCapacity(buffer);
        for (int i = buffer.position(), j = 0; i < buffer.limit(); i++, j++) {
            floatBuffer.set(j, buffer.get(i));
        }
        return floatBuffer.subarray(0, buffer.remaining());
    }
}
项目:TinyVoxel    文件:GwtGL20.java   
public Int16Array copy (ShortBuffer buffer) {
    if (GWT.isProdMode()) {
        return ((Int16Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(buffer.position(), buffer.remaining());
    } else {
        ensureCapacity(buffer);
        for (int i = buffer.position(), j = 0; i < buffer.limit(); i++, j++) {
            shortBuffer.set(j, buffer.get(i));
        }
        return shortBuffer.subarray(0, buffer.remaining());
    }
}
项目:TinyVoxel    文件:GwtGL20.java   
public Int32Array copy (IntBuffer buffer) {
    if (GWT.isProdMode()) {
        return ((Int32Array)((HasArrayBufferView)buffer).getTypedArray()).subarray(buffer.position(), buffer.remaining());
    } else {
        ensureCapacity(buffer);
        for (int i = buffer.position(), j = 0; i < buffer.limit(); i++, j++) {
            intBuffer.set(j, buffer.get(i));
        }
        return intBuffer.subarray(0, buffer.remaining());
    }
}
项目:gdx-freetype-gwt    文件:FreeTypePixmap.java   
public void putPixelsBack (ByteBuffer pixels) {
    if (getWidth() == 0 || getHeight() == 0) return;
    putPixelsBack(((HasArrayBufferView)pixels).getTypedArray(), getWidth(), getHeight(), getContext());

}