Example usage for javax.microedition.khronos.opengles GL10 GL_UNSIGNED_BYTE

List of usage examples for javax.microedition.khronos.opengles GL10 GL_UNSIGNED_BYTE

Introduction

In this page you can find the example usage for javax.microedition.khronos.opengles GL10 GL_UNSIGNED_BYTE.

Prototype

int GL_UNSIGNED_BYTE

To view the source code for javax.microedition.khronos.opengles GL10 GL_UNSIGNED_BYTE.

Click Source Link

Usage

From source file:Main.java

public static int bytesPerPixel(final int format, final int type) {
    int n, m;/*from  w  ww  .j av  a 2  s  .co  m*/

    switch (format) {
    case GL10.GL_ALPHA:
    case GL10.GL_LUMINANCE:
        n = 1;
        break;
    case GL10.GL_LUMINANCE_ALPHA:
        n = 2;
        break;
    case GL10.GL_RGB:
        n = 3;
        break;
    case GL10.GL_RGBA:
        n = 4;
        break;
    // case GL10.GL_COLOR_INDEX:
    // case GL10.GL_STENCIL_INDEX:
    // case GL10.GL_DEPTH_COMPONENT:
    // case GL10.GL_RED:
    // case GL10.GL_GREEN:
    // case GL10.GL_BLUE:
    // case GL10.GL_BGR:
    // case GL12.GL_BGRA:
    default:
        n = 0;
    }

    switch (type) {
    case GL10.GL_UNSIGNED_BYTE:
    case GL10.GL_BYTE:
        m = 1;
        break;
    case GL10.GL_UNSIGNED_SHORT:
    case GL10.GL_SHORT:
        m = 2;
        break;
    case GL10.GL_FLOAT:
        m = 4;
        break;
    // case GL11.GL_BITMAP:
    // case GL11.GL_HALF_FLOAT:
    // case GL11.GL_UNSIGNED_INT:
    // case GL11.GL_INT:
    default:
        m = 0;
    }

    return n * m;
}

From source file:Main.java

/**
 * non-premultiplied alpha version of GLUtils.texImage2D(). Note: this method is Slow and should only be used when really necessary!
 *
 * @param gl/*from  ww  w  .  ja  v a 2  s  .  c  o  m*/
 * @param bitmap
 * @see GLUtils.texImage2D()
 */
public static void texImage2DNonPremultipliedAlpha(final GL10 gl, final Bitmap bitmap) {
    final int[] pixels = extractPixels(bitmap);
    final byte[] pixelComponents = new byte[pixels.length * 4];
    int byteIndex = 0, p;
    for (int i = 0; i < pixels.length; i++) {
        p = pixels[i];
        // Convert to byte representation RGBA required by gl.glTexImage2D.
        pixelComponents[byteIndex++] = (byte) ((p >> 16) & 0xFF); // red
        pixelComponents[byteIndex++] = (byte) ((p >> 8) & 0xFF); //
        pixelComponents[byteIndex++] = (byte) ((p) & 0xFF); // blue
        pixelComponents[byteIndex++] = (byte) (p >> 24); // alpha
    }
    gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA, bitmap.getWidth(), bitmap.getHeight(), 0, GL10.GL_RGBA,
            GL10.GL_UNSIGNED_BYTE, ByteBuffer.wrap(pixelComponents));
}