@Override public void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels) { if (pixels == null) { gl.texImage2D(target, level, internalformat, width, height, border, format, type, null); } else { if (pixels.limit() > 1) { HasArrayBufferView arrayHolder = (HasArrayBufferView)pixels; ArrayBufferView webGLArray = arrayHolder.getTypedArray(); ArrayBufferView buffer; if (pixels instanceof FloatBuffer) { buffer = webGLArray; } else { int remainingBytes = pixels.remaining() * 4; int byteOffset = webGLArray.byteOffset() + pixels.position() * 4; 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)); // Prefer to use the HTMLImageElement when possible, since reading from the CanvasElement can be lossy. if (pixmap.canUseImageElement()) { gl.texImage2D(target, level, internalformat, format, type, pixmap.getImageElement()); } else { gl.texImage2D(target, level, internalformat, format, type, pixmap.getCanvasElement()); } } } }
@Override public void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels) { if (pixels == null) { gl.texImage2D(target, level, internalformat, width, height, border, format, type, null); } else { if (pixels.limit() > 1) { HasArrayBufferView arrayHolder = (HasArrayBufferView)pixels; ArrayBufferView webGLArray = arrayHolder.getTypedArray(); ArrayBufferView buffer; if (pixels instanceof FloatBuffer) { buffer = webGLArray; } else { int remainingBytes = pixels.remaining() * 4; int byteOffset = webGLArray.byteOffset() + pixels.position() * 4; 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)); // Prefer to use the HTMLImageElement when possible, since reading from the CanvasElement can be lossy. if (pixmap.canUseImageElement()) { gl.texImage2D(target, level, internalformat, format, type, pixmap.getImageElement()); } else { gl.texImage2D(target, level, internalformat, format, type, pixmap.getCanvasElement()); } } } }
@Override public void texImage2D(Image image, int target, int level, int internalformat, int format, int type) { // we can do this more efficiently by passing the image element right to WebGL glc.texImage2D(target, level, internalformat, format, type, ((HtmlImage) image).img); }
public void glTexImage2D(int target, int level, int internalformat, int format, int type, ImageData pixels) { gl.texImage2D(target, level, internalformat, format, type, pixels); }
public void glTexImage2D(int target, int level, int internalformat, int format, int type, Element pixels) { gl.texImage2D(target, level, internalformat, format, type, pixels); }
@Override public void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels) { ArrayBufferView buffer = (pixels == null) ? null : getTypedArray(pixels, type, -1); gl.texImage2D(target, level, internalformat, width, height, border, format, type, buffer); }
@Override public void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels) { ArrayBufferView buffer = (pixels == null) ? null : getTypedArray(pixels, type, -1); gl.texImage2D(target, level, internalformat, width, height, border, format, type, buffer); }
@Override public void glTexImage2D(int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels) { ArrayBufferView buffer = (pixels == null) ? null : getTypedArray(pixels, type, -1); gl.texImage2D(target, level, internalformat, width, height, border, format, type, buffer); }
public void glTexImage2D(int target, int level, int internalformat, int format, int type, CanvasElement image) { gl.texImage2D(target, level, internalformat, format, type, image); checkError("texImage2D"); }
public void glTexImage2D(int target, int level, int internalformat, int format, int type, CanvasElement image) { gl.texImage2D(target, level, internalformat, format, type, image); checkError("texImage2D"); }
void updateTexture(int tex, ImageElement img) { gl.glBindTexture(HtmlGL20.GL_TEXTURE_2D, tex); glc.texImage2D(TEXTURE_2D, 0, RGBA, RGBA, UNSIGNED_BYTE, img); }
public void glTexImage2D(int target, int level, int internalformat, int format, int type, ImageElement image) { gl.texImage2D(target, level, internalformat, format, type, image); checkError("texImage2D"); }
public void glTexImage2D(int target, int level, int internalformat, int format, int type, ImageElement image) { gl.texImage2D(target, level, internalformat, format, type, image); checkError("texImage2D"); }
@Override public void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, Buffer pixels) { if (pixels == null) { gl.texImage2D(target, level, internalformat, width, height, border, format, type, null); } else { 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); } } }
@Override public void onEvent(NativeEvent e) { // Load image data into the texture object once it's loaded. gl.bindTexture(TEXTURE_2D, tex); gl.texImage2D(TEXTURE_2D, 0, RGBA, RGBA, UNSIGNED_BYTE, img); gl.texParameteri(TEXTURE_2D, TEXTURE_MAG_FILTER, LINEAR); gl.texParameteri(TEXTURE_2D, TEXTURE_MIN_FILTER, LINEAR); gl.texParameteri(TEXTURE_2D, TEXTURE_WRAP_S, CLAMP_TO_EDGE); gl.texParameteri(TEXTURE_2D, TEXTURE_WRAP_T, CLAMP_TO_EDGE); gl.bindTexture(TEXTURE_2D, null); } });
@Override public void onEvent(NativeEvent e) { // Load image data into the texture object once it's loaded. gl.bindTexture(TEXTURE_2D, tex); gl.texImage2D(TEXTURE_2D, 0, RGBA, RGBA, UNSIGNED_BYTE, img); gl.texParameteri(TEXTURE_2D, TEXTURE_MAG_FILTER, LINEAR); gl.texParameteri(TEXTURE_2D, TEXTURE_MIN_FILTER, LINEAR); gl.texParameteri(TEXTURE_2D, TEXTURE_WRAP_S, CLAMP_TO_EDGE); gl.texParameteri(TEXTURE_2D, TEXTURE_WRAP_T, CLAMP_TO_EDGE); gl.bindTexture(TEXTURE_2D, null); } });
@Override public void onEvent(NativeEvent e) { // Load image data into the texture object once it's loaded. gl.bindTexture(TEXTURE_2D, tex); gl.texImage2D(TEXTURE_2D, 0, RGBA, RGBA, UNSIGNED_BYTE, img); gl.texParameteri(TEXTURE_2D, TEXTURE_MAG_FILTER, LINEAR); gl.texParameteri(TEXTURE_2D, TEXTURE_MIN_FILTER, LINEAR); gl.texParameteri(TEXTURE_2D, TEXTURE_WRAP_S, CLAMP_TO_EDGE); gl.texParameteri(TEXTURE_2D, TEXTURE_WRAP_T, CLAMP_TO_EDGE); gl.bindTexture(TEXTURE_2D, null); } });
private WebGLFramebuffer createFramebuffer(int width, int height) { WebGLTexture tex = createTexture(); fbuf = gl.createFramebuffer(); gl.texImage2D(TEXTURE_2D, 0, RGBA, width, height, 0, RGBA, UNSIGNED_BYTE, null); WebGLRenderbuffer rbuf = gl.createRenderbuffer(); gl.bindRenderbuffer(RENDERBUFFER, rbuf); gl.renderbufferStorage(RENDERBUFFER, RGBA4, width, height); gl.framebufferTexture2D(FRAMEBUFFER, COLOR_ATTACHMENT0, TEXTURE_2D, tex, 0); gl.framebufferRenderbuffer(FRAMEBUFFER, DEPTH_ATTACHMENT, RENDERBUFFER, rbuf); gl.bindTexture(TEXTURE_2D, null); gl.bindRenderbuffer(RENDERBUFFER, null); gl.bindFramebuffer(FRAMEBUFFER, null); return fbuf; }
private WebGLFramebuffer createFramebuffer(int width, int height) { WebGLTexture tex = createTexture(); fbuf = gl.createFramebuffer(); gl.texImage2D(TEXTURE_2D, 0, RGBA, width, height, 0, RGBA, UNSIGNED_BYTE, null); WebGLRenderbuffer rbuf = gl.createRenderbuffer(); gl.bindRenderbuffer(RENDERBUFFER, rbuf); gl.renderbufferStorage(RENDERBUFFER, RGBA4, width, height); gl.framebufferTexture2D(FRAMEBUFFER, COLOR_ATTACHMENT0, TEXTURE_2D, tex, 0); gl.framebufferRenderbuffer(FRAMEBUFFER, DEPTH_ATTACHMENT, RENDERBUFFER, rbuf); gl.bindTexture(TEXTURE_2D, null); gl.bindRenderbuffer(RENDERBUFFER, null); gl.bindFramebuffer(FRAMEBUFFER, null); return fbuf; }
private WebGLFramebuffer createFramebuffer(int width, int height) { WebGLTexture tex = createTexture(); fbuf = gl.createFramebuffer(); gl.texImage2D(TEXTURE_2D, 0, RGBA, width, height, 0, RGBA, UNSIGNED_BYTE, null); WebGLRenderbuffer rbuf = gl.createRenderbuffer(); gl.bindRenderbuffer(RENDERBUFFER, rbuf); gl.renderbufferStorage(RENDERBUFFER, RGBA4, width, height); gl.framebufferTexture2D(FRAMEBUFFER, COLOR_ATTACHMENT0, TEXTURE_2D, tex, 0); gl.framebufferRenderbuffer(FRAMEBUFFER, DEPTH_ATTACHMENT, RENDERBUFFER, rbuf); gl.bindTexture(TEXTURE_2D, null); gl.bindRenderbuffer(RENDERBUFFER, null); gl.bindFramebuffer(FRAMEBUFFER, null); return fbuf; }