Java 类android.opengl.GLES10 实例源码

项目:DeviceInfo    文件:GPU.java   
@Override
            protected void loadOnCreate() {
//                GL_RENDERER = glGetString(GLES10.GL_RENDERER);
//                GL_VERSION = glGetString(GLES10.GL_VERSION);
//                GL_VENDOR = glGetString(GLES10.GL_VENDOR);
                GL_MAX_TEXTURE_SIZE = glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE);
//                GL_MAX_TEXTURE_UNITS = glGetIntegerv(GLES10.GL_MAX_TEXTURE_UNITS);
//                GL_MAX_LIGHTS = glGetIntegerv(GLES10.GL_MAX_LIGHTS);
//                GL_SUBPIXEL_BITS = glGetIntegerv(GLES10.GL_SUBPIXEL_BITS);
//                GL_MAX_ELEMENTS_VERTICES = glGetIntegerv(GLES10.GL_MAX_ELEMENTS_VERTICES);
//                GL_MAX_ELEMENTS_INDICES = glGetIntegerv(GLES10.GL_MAX_ELEMENTS_INDICES);
//                GL_MAX_MODELVIEW_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_MODELVIEW_STACK_DEPTH);
//                GL_MAX_PROJECTION_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_PROJECTION_STACK_DEPTH);
//                GL_MAX_TEXTURE_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_TEXTURE_STACK_DEPTH);
//                GL_DEPTH_BITS = glGetIntegerv(GLES10.GL_DEPTH_BITS);
//                GL_STENCIL_BITS = glGetIntegerv(GLES10.GL_STENCIL_BITS);
                GL_EXTENSIONS = glGetString(GLES10.GL_EXTENSIONS);
//                GL_MAX_VIEWPORT_DIMS = glGetIntegerv(GLES10.GL_MAX_VIEWPORT_DIMS, 2);
            }
项目:YalpStore    文件:EglExtensionRetriever.java   
private static void addExtensionsForConfig(EGL10 egl10, EGLDisplay egldisplay, EGLConfig eglconfig, int ai[], int ai1[], Set<String> set) {
    EGLContext eglContext = egl10.eglCreateContext(egldisplay, eglconfig, EGL10.EGL_NO_CONTEXT, ai1);
    if (eglContext == EGL10.EGL_NO_CONTEXT) {
        return;
    }
    javax.microedition.khronos.egl.EGLSurface eglSurface = egl10.eglCreatePbufferSurface(egldisplay, eglconfig, ai);
    if (eglSurface == EGL10.EGL_NO_SURFACE) {
        egl10.eglDestroyContext(egldisplay, eglContext);
    } else {
        egl10.eglMakeCurrent(egldisplay, eglSurface, eglSurface, eglContext);
        String s = GLES10.glGetString(7939);
        if (!TextUtils.isEmpty(s)) {
            String as[] = s.split(" ");
            int i = as.length;
            for (int j = 0; j < i; j++) {
                set.add(as[j]);
            }
        }
        egl10.eglMakeCurrent(egldisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
        egl10.eglDestroySurface(egldisplay, eglSurface);
        egl10.eglDestroyContext(egldisplay, eglContext);
    }
}
项目:libcommon    文件:GLHelper.java   
/**
 * Writes GL version info to the log.
 */
@SuppressLint("InlinedApi")
public static void logVersionInfo() {
    Log.i(TAG, "vendor  : " + GLES10.glGetString(GLES10.GL_VENDOR));
    Log.i(TAG, "renderer: " + GLES10.glGetString(GLES10.GL_RENDERER));
    Log.i(TAG, "version : " + GLES10.glGetString(GLES10.GL_VERSION));

    if (BuildCheck.isAndroid4_3()) {
        final int[] values = new int[1];
        GLES30.glGetIntegerv(GLES30.GL_MAJOR_VERSION, values, 0);
        final int majorVersion = values[0];
        GLES30.glGetIntegerv(GLES30.GL_MINOR_VERSION, values, 0);
        final int minorVersion = values[0];
        if (GLES30.glGetError() == GLES30.GL_NO_ERROR) {
            Log.i(TAG, "version: " + majorVersion + "." + minorVersion);
        }
    }
}
项目:libcommon    文件:GLHelper.java   
/**
 * Return an error string from a GL or GLU error code.
 *
 * @param error - a GL or GLU error code.
 * @return the error string for the input error code, or NULL if the input
 *         was not a valid GL or GLU error code.
 */
public static String gluErrorString(final int error) {
    switch (error) {
    case GLES10.GL_NO_ERROR:
        return "no error";
    case GLES10.GL_INVALID_ENUM:
        return "invalid enum";
    case GLES10.GL_INVALID_VALUE:
        return "invalid value";
    case GLES10.GL_INVALID_OPERATION:
        return "invalid operation";
    case GLES10.GL_STACK_OVERFLOW:
        return "stack overflow";
    case GLES10.GL_STACK_UNDERFLOW:
        return "stack underflow";
    case GLES10.GL_OUT_OF_MEMORY:
        return "out of memory";
    default:
        return null;
    }
}
项目:libcommon    文件:GLDrawer2D.java   
@Override
    public void draw(final int texId, final float[] tex_matrix, final int offset) {
        // FIXME Matrixを適用
        GLES10.glEnableClientState(GLES10.GL_VERTEX_ARRAY);
        pVertex.position(0);
        GLES10.glVertexPointer(2, GLES10.GL_FLOAT, VERTEX_SZ, pVertex);
//--------------------------------------------------------------------------------
        GLES10.glEnableClientState(GLES10.GL_TEXTURE_COORD_ARRAY);
        pTexCoord.position(0);
        GLES10.glTexCoordPointer(VERTEX_NUM, GLES10.GL_FLOAT, VERTEX_SZ, pTexCoord);
        GLES10.glActiveTexture(GLES10.GL_TEXTURE0);
        GLES10.glBindTexture(mTexTarget, texId);
//--------------------------------------------------------------------------------
        GLES10.glDrawArrays(GLES10.GL_TRIANGLE_STRIP, 0, VERTEX_NUM);
//--------------------------------------------------------------------------------
        GLES10.glBindTexture(mTexTarget, 0);
        GLES10.glDisableClientState(GLES10.GL_TEXTURE_COORD_ARRAY);
//--------------------------------------------------------------------------------
        GLES10.glDisableClientState(GLES10.GL_VERTEX_ARRAY);
    }
项目:Device-Explorer    文件:Content.java   
public String getContents() {
    StringBuilder sb = new StringBuilder();
    Formatter f = new Formatter(sb, Locale.US);
    String vendor = GLES10.glGetString(GLES10.GL_VENDOR);
    if (vendor == null) {
        f.format("!!! Please tap on another tab and then tap back on this tab. !!!\n\n");
    }
    f.format("vendor: %s\n", vendor);
    f.format("version: %s\n", GLES10.glGetString(GLES10.GL_VERSION));
    String extensions = GLES10.glGetString(GLES10.GL_EXTENSIONS);
    if (extensions == null) {
        extensions = "";
    }
    f.format("extensions: %s\n", extensions.replaceAll(" ", "\n"));
    return sb.toString();
}
项目:apkupdater    文件:EglExtensionRetriever.java   
private static void addExtensionsForConfig(EGL10 egl10, EGLDisplay egldisplay, EGLConfig eglconfig, int ai[], int ai1[], Set<String> set) {
    EGLContext eglContext = egl10.eglCreateContext(egldisplay, eglconfig, EGL10.EGL_NO_CONTEXT, ai1);
    if (eglContext == EGL10.EGL_NO_CONTEXT) {
        return;
    }
    javax.microedition.khronos.egl.EGLSurface eglSurface = egl10.eglCreatePbufferSurface(egldisplay, eglconfig, ai);
    if (eglSurface == EGL10.EGL_NO_SURFACE) {
        egl10.eglDestroyContext(egldisplay, eglContext);
    } else {
        egl10.eglMakeCurrent(egldisplay, eglSurface, eglSurface, eglContext);
        String s = GLES10.glGetString(7939);
        if (!TextUtils.isEmpty(s)) {
            String as[] = s.split(" ");
            int i = as.length;
            for (int j = 0; j < i; j++) {
                set.add(as[j]);
            }
        }
        egl10.eglMakeCurrent(egldisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
        egl10.eglDestroySurface(egldisplay, eglSurface);
        egl10.eglDestroyContext(egldisplay, eglContext);
    }
}
项目:CodeSamples    文件:SimpleRenderer.java   
@Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
        super.onSurfaceCreated(gl,config);
//        batch = new SpriteBatch();
//        img = new Texture("world.png");

        GLES10.glClearColor(0.0f, 0.0f, 0.0f, 0.f);

        // Create the GLText
        glText = new GLText( gl, context.getAssets() );

        // Load the font from file (set size + padding), creates the texture
        // NOTE: after a successful call to this the font is ready for rendering!
        glText.load( "Roboto-Regular.ttf", 14, 2, 2 );  // Create Font (Height: 14 Pixels / X+Y Padding 2 Pixels)

    }
项目:FMTech    文件:GlExtensionReader.java   
private static void addExtensionsForConfig(EGL10 paramEGL10, EGLDisplay paramEGLDisplay, EGLConfig paramEGLConfig, int[] paramArrayOfInt1, int[] paramArrayOfInt2, Set<String> paramSet)
{
  EGLContext localEGLContext = paramEGL10.eglCreateContext(paramEGLDisplay, paramEGLConfig, EGL10.EGL_NO_CONTEXT, paramArrayOfInt2);
  if (localEGLContext == EGL10.EGL_NO_CONTEXT) {
    return;
  }
  EGLSurface localEGLSurface = paramEGL10.eglCreatePbufferSurface(paramEGLDisplay, paramEGLConfig, paramArrayOfInt1);
  if (localEGLSurface == EGL10.EGL_NO_SURFACE)
  {
    paramEGL10.eglDestroyContext(paramEGLDisplay, localEGLContext);
    return;
  }
  paramEGL10.eglMakeCurrent(paramEGLDisplay, localEGLSurface, localEGLSurface, localEGLContext);
  String str = GLES10.glGetString(7939);
  if (!TextUtils.isEmpty(str))
  {
    String[] arrayOfString = str.split(" ");
    int i = arrayOfString.length;
    for (int j = 0; j < i; j++) {
      paramSet.add(arrayOfString[j]);
    }
  }
  paramEGL10.eglMakeCurrent(paramEGLDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
  paramEGL10.eglDestroySurface(paramEGLDisplay, localEGLSurface);
  paramEGL10.eglDestroyContext(paramEGLDisplay, localEGLContext);
}
项目:MobiStego    文件:GPU.java   
@Override
protected void loadOnCreate() {
    GL_RENDERER = glGetString(GLES10.GL_RENDERER);
    GL_VERSION = glGetString(GLES10.GL_VERSION);
    GL_VENDOR = glGetString(GLES10.GL_VENDOR);
    GL_MAX_TEXTURE_SIZE = glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE);
    GL_MAX_TEXTURE_UNITS = glGetIntegerv(GLES10.GL_MAX_TEXTURE_UNITS);
    GL_MAX_LIGHTS = glGetIntegerv(GLES10.GL_MAX_LIGHTS);
    GL_SUBPIXEL_BITS = glGetIntegerv(GLES10.GL_SUBPIXEL_BITS);
    GL_MAX_ELEMENTS_VERTICES = glGetIntegerv(GLES10.GL_MAX_ELEMENTS_VERTICES);
    GL_MAX_ELEMENTS_INDICES = glGetIntegerv(GLES10.GL_MAX_ELEMENTS_INDICES);
    GL_MAX_MODELVIEW_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_MODELVIEW_STACK_DEPTH);
    GL_MAX_PROJECTION_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_PROJECTION_STACK_DEPTH);
    GL_MAX_TEXTURE_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_TEXTURE_STACK_DEPTH);
    GL_DEPTH_BITS = glGetIntegerv(GLES10.GL_DEPTH_BITS);
    GL_STENCIL_BITS = glGetIntegerv(GLES10.GL_STENCIL_BITS);
    GL_EXTENSIONS = glGetString(GLES10.GL_EXTENSIONS);
    GL_MAX_VIEWPORT_DIMS = glGetIntegerv(GLES10.GL_MAX_VIEWPORT_DIMS, 2);
}
项目:System-Monitor    文件:GPU.java   
@Override
protected void loadOnCreate() {
    GL_RENDERER = glGetString(GLES10.GL_RENDERER);
    GL_VERSION = glGetString(GLES10.GL_VERSION);
    GL_VENDOR = glGetString(GLES10.GL_VENDOR);
    /*GL_MAX_TEXTURE_SIZE = glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE);
    GL_MAX_TEXTURE_UNITS = glGetIntegerv(GLES10.GL_MAX_TEXTURE_UNITS);
    GL_MAX_LIGHTS = glGetIntegerv(GLES10.GL_MAX_LIGHTS);
    GL_SUBPIXEL_BITS = glGetIntegerv(GLES10.GL_SUBPIXEL_BITS);
    GL_MAX_ELEMENTS_VERTICES = glGetIntegerv(GLES10.GL_MAX_ELEMENTS_VERTICES);
    GL_MAX_ELEMENTS_INDICES = glGetIntegerv(GLES10.GL_MAX_ELEMENTS_INDICES);
    GL_MAX_MODELVIEW_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_MODELVIEW_STACK_DEPTH);
    GL_MAX_PROJECTION_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_PROJECTION_STACK_DEPTH);
    GL_MAX_TEXTURE_STACK_DEPTH = glGetIntegerv(GLES10.GL_MAX_TEXTURE_STACK_DEPTH);
    GL_DEPTH_BITS = glGetIntegerv(GLES10.GL_DEPTH_BITS);
    GL_STENCIL_BITS = glGetIntegerv(GLES10.GL_STENCIL_BITS);
    GL_EXTENSIONS = glGetString(GLES10.GL_EXTENSIONS);
    GL_MAX_VIEWPORT_DIMS = glGetIntegerv(GLES10.GL_MAX_VIEWPORT_DIMS, 2);*/
}
项目:ApkLauncher    文件:CompressedTextureActivity.java   
public void load(GL10 gl) {
    int width = 128;
    int height = 128;
    Buffer image = createImage(width, height);
    ETC1Util.ETC1Texture etc1Texture = ETC1Util.compressTexture(image, width, height, 3, 3 * width);
    if (USE_STREAM_IO) {
        // Test the ETC1Util APIs for reading and writing compressed textures to I/O streams.
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ETC1Util.writeTexture(etc1Texture, bos);
            ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
            ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                    GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, bis);
        } catch (IOException e) {
            Log.w(TAG, "Could not load texture: " + e);
        }
    } else {
        ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, etc1Texture);
    }
}
项目:ApiDemos    文件:CompressedTextureActivity.java   
public void load(GL10 gl) {
    int width = 128;
    int height = 128;
    Buffer image = createImage(width, height);
    ETC1Util.ETC1Texture etc1Texture = ETC1Util.compressTexture(image, width, height, 3, 3 * width);
    if (USE_STREAM_IO) {
        // Test the ETC1Util APIs for reading and writing compressed textures to I/O streams.
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ETC1Util.writeTexture(etc1Texture, bos);
            ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
            ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                    GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, bis);
        } catch (IOException e) {
            Log.w(TAG, "Could not load texture: " + e);
        }
    } else {
        ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, etc1Texture);
    }
}
项目:renderscript_texture_compressor    文件:JavaETC1Util.java   
/**
 * Check if ETC1 texture compression is supported by the active OpenGL ES context.
 * @return true if the active OpenGL ES context supports ETC1 texture compression.
 */
public static boolean isETC1Supported() {
    int[] results = new int[20];
    GLES10.glGetIntegerv(GLES10.GL_NUM_COMPRESSED_TEXTURE_FORMATS, results, 0);
    int numFormats = results[0];
    if (numFormats > results.length) {
        results = new int[numFormats];
    }
    GLES10.glGetIntegerv(GLES10.GL_COMPRESSED_TEXTURE_FORMATS, results, 0);
    for (int i = 0; i < numFormats; i++) {
        if (results[i] == JavaETC1.ETC1_RGB8_OES) {
            return true;
        }
    }
    return false;
}
项目:renderscript_texture_compressor    文件:RsETC1Util.java   
/**
 * Check if ETC1 texture compression is supported by the active OpenGL ES context.
 * @return true if the active OpenGL ES context supports ETC1 texture compression.
 */
public static boolean isETC1Supported() {
    int[] results = new int[20];
    GLES10.glGetIntegerv(GLES10.GL_NUM_COMPRESSED_TEXTURE_FORMATS, results, 0);
    int numFormats = results[0];
    if (numFormats > results.length) {
        results = new int[numFormats];
    }
    GLES10.glGetIntegerv(GLES10.GL_COMPRESSED_TEXTURE_FORMATS, results, 0);
    for (int i = 0; i < numFormats; i++) {
        if (results[i] == RsETC1.ETC1_RGB8_OES) {
            return true;
        }
    }
    return false;
}
项目:settlers-remake    文件:AndroidDrawContext.java   
@Override
public void drawQuadWithTexture(TextureHandle textureid, float[] geometry) {
    if (quadEleementBuffer == null) {
        generateQuadElementBuffer();
    }
    quadEleementBuffer.position(0);
    glBindTexture(textureid);

    FloatBuffer buffer = generateTemporaryFloatBuffer(geometry);

    GLES10.glVertexPointer(3, GLES10.GL_FLOAT, 5 * 4, buffer);
    FloatBuffer texbuffer = reuseableBufferDuplicate;
    texbuffer.position(3);
    GLES10.glTexCoordPointer(2, GLES10.GL_FLOAT, 5 * 4, texbuffer);

    GLES10.glDrawElements(GLES10.GL_TRIANGLES, 6, GLES10.GL_UNSIGNED_BYTE,
            quadEleementBuffer);
}
项目:settlers-remake    文件:AndroidDrawContext.java   
@Override
public void drawTrianglesWithTextureColored(TextureHandle textureid, float[] geometry) {
    glBindTexture(textureid);

    GLES10.glEnableClientState(GLES10.GL_COLOR_ARRAY);

    FloatBuffer buffer = generateTemporaryFloatBuffer(geometry);

    GLES10.glVertexPointer(3, GLES10.GL_FLOAT, 9 * 4, buffer);
    FloatBuffer texbuffer = reuseableBufferDuplicate;
    texbuffer.position(3);
    GLES10.glTexCoordPointer(2, GLES10.GL_FLOAT, 9 * 4, texbuffer);
    FloatBuffer colorbuffer = buffer.duplicate(); // we need it selden enogh
                                                    // to allocate a new one.
    colorbuffer.position(5);
    GLES10.glColorPointer(4, GLES10.GL_FLOAT, 9 * 4, colorbuffer);

    GLES10.glDrawArrays(GLES10.GL_TRIANGLES, 0, geometry.length / 9);
    GLES10.glDisableClientState(GLES10.GL_COLOR_ARRAY);
}
项目:settlers-remake    文件:AndroidDrawContext.java   
@Override
public void drawTrianglesWithTextureColored(TextureHandle textureid,
        ByteBuffer byteBuffer, int currentTriangles) {
    glBindTexture(textureid);

    GLES10.glEnableClientState(GLES10.GL_COLOR_ARRAY);

    GLES10.glVertexPointer(3, GLES10.GL_FLOAT, 6 * 4, byteBuffer);
    ByteBuffer texbuffer = byteBuffer.duplicate();
    texbuffer.position(3 * 4);
    GLES10.glTexCoordPointer(2, GLES10.GL_FLOAT, 6 * 4, texbuffer);
    ByteBuffer colorbuffer = byteBuffer.duplicate(); // we need it selden
                                                        // enogh
                                                        // to allocate a new
                                                        // one.
    colorbuffer.position(5 * 4);
    GLES10.glColorPointer(4, GLES10.GL_UNSIGNED_BYTE, 6 * 4, colorbuffer);

    GLES10.glDrawArrays(GLES10.GL_TRIANGLES, 0, currentTriangles * 3);
    GLES10.glDisableClientState(GLES10.GL_COLOR_ARRAY);

}
项目:settlers-remake    文件:AndroidDrawContext.java   
@Override
public TextureHandle generateTexture(int width, int height, ShortBuffer data) {
    // 1 byte aligned.
    GLES10.glPixelStorei(GLES10.GL_UNPACK_ALIGNMENT, 1);

    TextureHandle texture = genTextureIndex();
    if (texture == null) {
        return null;
    }

    glBindTexture(texture);
    GLES10.glTexImage2D(GLES10.GL_TEXTURE_2D, 0, GLES10.GL_RGBA, width,
            height, 0, GLES10.GL_RGBA, GLES10.GL_UNSIGNED_SHORT_5_5_5_1,
            data);

    setTextureParameters();
    return texture;
}
项目:settlers-remake    文件:AndroidDrawContext.java   
public TextureHandle generateTextureAlpha(int width, int height) {
    // 1 byte aligned.
    GLES10.glPixelStorei(GLES10.GL_UNPACK_ALIGNMENT, 1);

    TextureHandle texture = genTextureIndex();
    if (texture == null) {
        return null;
    }

    ByteBuffer data = ByteBuffer.allocateDirect(width * height);
    while (data.hasRemaining()) {
        data.put((byte) 0);
    }
    data.rewind();

    glBindTexture(texture);
    GLES10.glTexImage2D(GLES10.GL_TEXTURE_2D, 0, GLES10.GL_ALPHA, width,
            height, 0, GLES10.GL_ALPHA, GLES10.GL_UNSIGNED_BYTE, data);

    setTextureParameters();
    return texture;
}
项目:settlers-remake    文件:AndroidDrawContext.java   
@Override
public void drawQuadWithTexture(TextureHandle textureid, GeometryHandle geometryindex) {
    if (quadEleementBuffer == null) {
        generateQuadElementBuffer();
    }
    quadEleementBuffer.position(0);

    glBindTexture(textureid);

    GLES11.glBindBuffer(GLES11.GL_ARRAY_BUFFER, geometryindex.getInternalId());
    GLES11.glVertexPointer(3, GLES10.GL_FLOAT, 5 * 4, 0);
    GLES11.glTexCoordPointer(2, GLES10.GL_FLOAT, 5 * 4, 3 * 4);

    GLES11.glDrawElements(GLES10.GL_TRIANGLES, 6, GLES10.GL_UNSIGNED_BYTE,
            quadEleementBuffer);

    GLES11.glBindBuffer(GLES11.GL_ARRAY_BUFFER, 0);
}
项目:settlers-remake    文件:AndroidDrawContext.java   
public void reinit(int width, int height) {
    GLES10.glMatrixMode(GLES10.GL_PROJECTION);
    GLES10.glLoadIdentity();
    GLES10.glMatrixMode(GLES10.GL_MODELVIEW);
    GLES10.glLoadIdentity();

    GLES10.glScalef(2f / width, 2f / height, -.5f);
    // TODO: do not scale depth by 0.

    GLES10.glTranslatef(-width / 2, -height / 2, .25f);

    GLES10.glEnableClientState(GLES10.GL_VERTEX_ARRAY);
    GLES10.glEnableClientState(GLES10.GL_TEXTURE_COORD_ARRAY);

    GLES10.glAlphaFunc(GLES10.GL_GREATER, 0.1f);
    GLES10.glEnable(GLES10.GL_ALPHA_TEST);
    GLES10.glEnable(GLES10.GL_BLEND);
    GLES10.glBlendFunc(GLES10.GL_SRC_ALPHA, GLES10.GL_ONE_MINUS_SRC_ALPHA);

    GLES10.glDepthFunc(GLES10.GL_LEQUAL);
    GLES10.glEnable(GLES10.GL_DEPTH_TEST);

    GLES10.glEnable(GLES10.GL_TEXTURE_2D);
}
项目:BlackLight    文件:Utility.java   
public static int getSupportedMaxPictureSize() {
    int[] array = new int[1];
    GLES10.glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE, array, 0);

    if (array[0] == 0) {
        GLES11.glGetIntegerv(GLES11.GL_MAX_TEXTURE_SIZE, array, 0);

        if (array[0] == 0) {
            GLES20.glGetIntegerv(GLES20.GL_MAX_TEXTURE_SIZE, array, 0);

            if (array[0] == 0) {
                GLES30.glGetIntegerv(GLES30.GL_MAX_TEXTURE_SIZE, array, 0);
            }
        }
    }

    return array[0] != 0 ? array[0] : 2048;
}
项目:android_packages_apps_GmsCore    文件:DeviceConfiguration.java   
private static void addExtensionsForConfig(EGL10 egl10, EGLDisplay egldisplay, EGLConfig eglconfig, int ai[],
                                           int ai1[], Set<String> set) {
    EGLContext eglcontext = egl10.eglCreateContext(egldisplay, eglconfig, EGL10.EGL_NO_CONTEXT, ai1);
    if (eglcontext != EGL10.EGL_NO_CONTEXT) {
        javax.microedition.khronos.egl.EGLSurface eglsurface =
                egl10.eglCreatePbufferSurface(egldisplay, eglconfig, ai);
        if (eglsurface == EGL10.EGL_NO_SURFACE) {
            egl10.eglDestroyContext(egldisplay, eglcontext);
        } else {
            egl10.eglMakeCurrent(egldisplay, eglsurface, eglsurface, eglcontext);
            String s = GLES10.glGetString(7939);
            if (s != null && !s.isEmpty()) {
                String as[] = s.split(" ");
                int i = as.length;
                for (int j = 0; j < i; j++) {
                    set.add(as[j]);
                }

            }
            egl10.eglMakeCurrent(egldisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT);
            egl10.eglDestroySurface(egldisplay, eglsurface);
            egl10.eglDestroyContext(egldisplay, eglcontext);
        }
    }
}
项目:derelict    文件:GLESRenderer.java   
/**
 * 
 * @param config
 */
    public void onSurfaceCreatedGLES20(EGLConfig config) {


//      textureIndex = loadTexture( context , R.drawable.tex );

        GLES20.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
        GLES20.glClearDepthf(1.0f);
        GLES20.glEnable(GLES10.GL_DEPTH_TEST);
        GLES20.glDepthFunc(GLES10.GL_LEQUAL);
        GLES20.glHint(GLES10.GL_PERSPECTIVE_CORRECTION_HINT, GLES10.GL_FASTEST);

        int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode);
        int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER,
                fragmentShaderCode);

        mProgram = GLES20.glCreateProgram();
        GLES20.glAttachShader(mProgram, vertexShader);
        GLES20.glAttachShader(mProgram, fragmentShader);
        GLES20.glLinkProgram(mProgram);

        maPositionHandle = GLES20.glGetAttribLocation(mProgram, "vPosition");
        colorHandle = GLES20.glGetAttribLocation(mProgram, "a_color");

    }
项目:derelict    文件:GLESRenderer.java   
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {

    if (GLESVersion == 1) {

        if (height == 0) {
            height = 1;
        }

        glViewport(0, 0, width, height);
        glMatrixMode(GLES10.GL_PROJECTION);
        glLoadIdentity();

        GLU.gluPerspective(gl, 45.0f, (float) width / (float) height, 0.1f,
                1024.0f);

        glMatrixMode(GLES10.GL_MODELVIEW);
        glLoadIdentity();

    } else {
        onSurfaceChangedGLES20(width, height);
    }
}
项目:felix-on-android    文件:CompressedTextureActivity.java   
public void load(GL10 gl) {
    int width = 128;
    int height = 128;
    Buffer image = createImage(width, height);
    ETC1Util.ETC1Texture etc1Texture = ETC1Util.compressTexture(image, width, height, 3, 3 * width);
    if (USE_STREAM_IO) {
        // Test the ETC1Util APIs for reading and writing compressed textures to I/O streams.
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ETC1Util.writeTexture(etc1Texture, bos);
            ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
            ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                    GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, bis);
        } catch (IOException e) {
            Log.w(TAG, "Could not load texture: " + e);
        }
    } else {
        ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, etc1Texture);
    }
}
项目:MEng    文件:CompressedTextureActivity.java   
public void load(GL10 gl) {
    int width = 128;
    int height = 128;
    Buffer image = createImage(width, height);
    ETC1Util.ETC1Texture etc1Texture = ETC1Util.compressTexture(image, width, height, 3, 3 * width);
    if (USE_STREAM_IO) {
        // Test the ETC1Util APIs for reading and writing compressed textures to I/O streams.
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ETC1Util.writeTexture(etc1Texture, bos);
            ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
            ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                    GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, bis);
        } catch (IOException e) {
            Log.w(TAG, "Could not load texture: " + e);
        }
    } else {
        ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, etc1Texture);
    }
}
项目:codeexamples-android    文件:CompressedTextureActivity.java   
public void load(GL10 gl) {
    int width = 128;
    int height = 128;
    Buffer image = createImage(width, height);
    ETC1Util.ETC1Texture etc1Texture = ETC1Util.compressTexture(image, width, height, 3, 3 * width);
    if (USE_STREAM_IO) {
        // Test the ETC1Util APIs for reading and writing compressed textures to I/O streams.
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ETC1Util.writeTexture(etc1Texture, bos);
            ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
            ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                    GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, bis);
        } catch (IOException e) {
            Log.w(TAG, "Could not load texture: " + e);
        }
    } else {
        ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, etc1Texture);
    }
}
项目:deview-2013-samples    文件:CompressedTextureActivity.java   
public void load(GL10 gl) {
    int width = 128;
    int height = 128;
    Buffer image = createImage(width, height);
    ETC1Util.ETC1Texture etc1Texture = ETC1Util.compressTexture(image, width, height, 3, 3 * width);
    if (USE_STREAM_IO) {
        // Test the ETC1Util APIs for reading and writing compressed textures to I/O streams.
        try {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            ETC1Util.writeTexture(etc1Texture, bos);
            ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
            ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                    GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, bis);
        } catch (IOException e) {
            Log.w(TAG, "Could not load texture: " + e);
        }
    } else {
        ETC1Util.loadTexture(GLES10.GL_TEXTURE_2D, 0, 0,
                GLES10.GL_RGB, GLES10.GL_UNSIGNED_SHORT_5_6_5, etc1Texture);
    }
}
项目:decoy    文件:SampleSizeUtil.java   
public static final int getTextureSize() {
    if (textureSize > 0) {
        return textureSize;
    }

    int[] params = new int[1];
    GLES10.glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE, params, 0);
    textureSize = params[0];

    return textureSize;     
}
项目:RLibrary    文件:SampleSizeUtil.java   
public static final int getTextureSize() {
    if (textureSize > 0) {
        return textureSize;
    }

    int[] params = new int[1];
    GLES10.glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE, params, 0);
    textureSize = params[0];

    return textureSize;
}
项目:MyTravelingDiary    文件:SampleSizeUtil.java   
public static final int getTextureSize() {
    if (textureSize > 0) {
        return textureSize;
    }

    int[] params = new int[1];
    GLES10.glGetIntegerv(GLES10.GL_MAX_TEXTURE_SIZE, params, 0);
    textureSize = params[0];

    return textureSize;     
}
项目:libcommon    文件:EGLBase14.java   
@Override
public void makeCurrent() {
    mEglBase.makeCurrent(mEglSurface);
    if (mEglBase.getGlVersion() >= 2) {
        GLES20.glViewport(0, 0,
            mEglBase.getSurfaceWidth(mEglSurface),
            mEglBase.getSurfaceHeight(mEglSurface));
    } else {
        GLES10.glViewport(0, 0,
            mEglBase.getSurfaceWidth(mEglSurface),
            mEglBase.getSurfaceHeight(mEglSurface));
    }
}
项目:libcommon    文件:GLHelper.java   
/**
     * OpenGL|ESのエラーをチェックしてlogCatに出力する
     * @param op
     */
    public static void checkGlError(final String op) {
        final int error = GLES10.glGetError();
        if (error != GLES10.GL_NO_ERROR) {
            final String msg = op + ": glError 0x" + Integer.toHexString(error);
            Log.e(TAG, msg);
            new Throwable(msg).printStackTrace();
//          if (DEBUG) {
//              throw new RuntimeException(msg);
//          }
        }
    }
项目:libcommon    文件:GLHelper.java   
/**
     * テクスチャ名を生成
     * @param texTarget
     * @param texUnit テクスチャユニット, GL_TEXTURE0...GL_TEXTURE31
     * @param min_filter テクスチャの補間方法を指定, GL_LINEARとかGL_NEAREST
     * @param mag_filter テクスチャの補間方法を指定, GL_LINEARとかGL_NEAREST
     * @param wrap テクスチャのクランプ方法, GL_CLAMP_TO_EDGE
     * @return
     */
    public static int initTex(final int texTarget, final int texUnit, final int min_filter, final int mag_filter, final int wrap) {
//      if (DEBUG) Log.v(TAG, "initTex:target=" + texTarget);
        final int[] tex = new int[1];
        GLES10.glActiveTexture(texUnit);
        GLES10.glGenTextures(1, tex, 0);
        GLES10.glBindTexture(texTarget, tex[0]);
        GLES10.glTexParameterx(texTarget, GLES10.GL_TEXTURE_WRAP_S, wrap);
        GLES10.glTexParameterx(texTarget, GLES10.GL_TEXTURE_WRAP_T, wrap);
        GLES10.glTexParameterx(texTarget, GLES10.GL_TEXTURE_MIN_FILTER, min_filter);
        GLES10.glTexParameterx(texTarget, GLES10.GL_TEXTURE_MAG_FILTER, mag_filter);
        return tex[0];
    }
项目:libcommon    文件:GLHelper.java   
public static int loadTextureFromResource(final Context context, final int resId) {
    // Create an empty, mutable bitmap
    final Bitmap bitmap = Bitmap.createBitmap(256, 256, Bitmap.Config.ARGB_8888);
    // get a canvas to paint over the bitmap
    final Canvas canvas = new Canvas(bitmap);
    canvas.drawARGB(0,0,255,0);

    // get a background image from resources
    // note the image format must match the bitmap format
    final Drawable background = context.getResources().getDrawable(resId);
    background.setBounds(0, 0, 256, 256);
    background.draw(canvas); // draw the background to our bitmap

    final int[] textures = new int[1];

    //Generate one texture pointer...
    GLES10.glGenTextures(1, textures, 0);
    //...and bind it to our array
    GLES10.glBindTexture(GLES10.GL_TEXTURE_2D, textures[0]);

    //Create Nearest Filtered Texture
    GLES10.glTexParameterx(GLES10.GL_TEXTURE_2D, GLES10.GL_TEXTURE_MIN_FILTER, GLES10.GL_NEAREST);
    GLES10.glTexParameterx(GLES10.GL_TEXTURE_2D, GLES10.GL_TEXTURE_MAG_FILTER, GLES10.GL_LINEAR);

    //Different possible texture parameters, e.g. GLES10.GL_CLAMP_TO_EDGE
    GLES10.glTexParameterx(GLES10.GL_TEXTURE_2D, GLES10.GL_TEXTURE_WRAP_S, GLES10.GL_REPEAT);
    GLES10.glTexParameterx(GLES10.GL_TEXTURE_2D, GLES10.GL_TEXTURE_WRAP_T, GLES10.GL_REPEAT);

    //Use the Android GLUtils to specify a two-dimensional texture image from our bitmap
    GLUtils.texImage2D(GLES10.GL_TEXTURE_2D, 0, bitmap, 0);
    //Clean up
    bitmap.recycle();

    return textures[0];
}
项目:libcommon    文件:GLHelper.java   
public static int createTextureWithTextContent (final String text) {
    // Create an empty, mutable bitmap
    final Bitmap bitmap = Bitmap.createBitmap(256, 256, Bitmap.Config.ARGB_8888);
    // get a canvas to paint over the bitmap
    final Canvas canvas = new Canvas(bitmap);
    canvas.drawARGB(0,0,255,0);

    // Draw the text
    final Paint textPaint = new Paint();
    textPaint.setTextSize(32);
    textPaint.setAntiAlias(true);
    textPaint.setARGB(0xff, 0xff, 0xff, 0xff);
    // draw the text centered
    canvas.drawText(text, 16, 112, textPaint);

    final int texture = initTex(GLES10.GL_TEXTURE_2D, GLES10.GL_TEXTURE0, GLES10.GL_NEAREST, GLES10.GL_LINEAR, GLES10.GL_REPEAT);

    // Alpha blending
    // GLES10.glEnable(GLES10.GL_BLEND);
    // GLES10.glBlendFunc(GLES10.GL_SRC_ALPHA, GLES10.GL_ONE_MINUS_SRC_ALPHA);

    // Use the Android GLUtils to specify a two-dimensional texture image from our bitmap
    GLUtils.texImage2D(GLES10.GL_TEXTURE_2D, 0, bitmap, 0);
    // Clean up
    bitmap.recycle();

    return texture;
}
项目:libcommon    文件:GLHelper.java   
/**
 * Map object coordinates into window coordinates. gluProject transforms the
 * specified object coordinates into window coordinates using model, proj,
 * and view. The result is stored in win.
 * <p>
 * Note that you can use the OES_matrix_get extension, if present, to get
 * the current modelView and projection matrices.
 *
 * @param objX object coordinates X
 * @param objY object coordinates Y
 * @param objZ object coordinates Z
 * @param model the current modelview matrix
 * @param modelOffset the offset into the model array where the modelview
 *        maxtrix data starts.
 * @param project the current projection matrix
 * @param projectOffset the offset into the project array where the project
 *        matrix data starts.
 * @param view the current view, {x, y, width, height}
 * @param viewOffset the offset into the view array where the view vector
 *        data starts.
 * @param win the output vector {winX, winY, winZ}, that returns the
 *        computed window coordinates.
 * @param winOffset the offset into the win array where the win vector data
 *        starts.
 * @return A return value of GL_TRUE indicates success, a return value of
 *         GL_FALSE indicates failure.
 */
public static int gluProject(final float objX, final float objY, final float objZ,
    final float[] model, final int modelOffset, final float[] project, final int projectOffset,
    final int[] view, final int viewOffset, final float[] win, final int winOffset) {

    final float[] scratch = sScratch;
    synchronized (scratch) {
        final int M_OFFSET = 0; // 0..15
        final int V_OFFSET = 16; // 16..19
        final int V2_OFFSET = 20; // 20..23
        Matrix.multiplyMM(scratch, M_OFFSET, project, projectOffset, model, modelOffset);

        scratch[V_OFFSET + 0] = objX;
        scratch[V_OFFSET + 1] = objY;
        scratch[V_OFFSET + 2] = objZ;
        scratch[V_OFFSET + 3] = 1.0f;

        Matrix.multiplyMV(scratch, V2_OFFSET, scratch, M_OFFSET, scratch, V_OFFSET);

        final float w = scratch[V2_OFFSET + 3];
        if (w == 0.0f) {
            return GLES10.GL_FALSE;
        }

        final float rw = 1.0f / w;

        win[winOffset] = view[viewOffset]
            + view[viewOffset + 2]
            * (scratch[V2_OFFSET + 0] * rw + 1.0f)
            * 0.5f;
        win[winOffset + 1] =
            view[viewOffset + 1] + view[viewOffset + 3]
            * (scratch[V2_OFFSET + 1] * rw + 1.0f) * 0.5f;
        win[winOffset + 2] = (scratch[V2_OFFSET + 2] * rw + 1.0f) * 0.5f;
    }

    return GL10.GL_TRUE;
}
项目:libcommon    文件:GLTexture.java   
/**
     * コンストラクタ
     * @param width テクスチャサイズ
     * @param height テクスチャサイズ
     * @param filter_param  テクスチャの補間方法を指定 GL_LINEARとかGL_NEAREST
     */
    public GLTexture(final int width, final int height, final int filter_param) {
//      if (DEBUG) Log.v(TAG, String.format("コンストラクタ(%d,%d)", width, height));
        // テクスチャに使うビットマップは縦横サイズが2の乗数でないとダメ。
        // 更に、ミップマップするなら正方形でないとダメ
        // 指定したwidth/heightと同じか大きい2の乗数にする
        int w = 32;
        for (; w < width; w <<= 1);
        int h = 32;
        for (; h < height; h <<= 1);
        if (mTexWidth != w || mTexHeight != h) {
            mTexWidth = w;
            mTexHeight = h;
        }
//      if (DEBUG) Log.v(TAG, String.format("texSize(%d,%d)", mTexWidth, mTexHeight));
        mTextureId = GLHelper.initTex(mTextureTarget, filter_param);
        // テクスチャのメモリ領域を確保する
        GLES10.glTexImage2D(mTextureTarget,
            0,                          // ミップマップレベル0(ミップマップしない)
            GLES10.GL_RGBA,             // 内部フォーマット
            mTexWidth, mTexHeight,      // サイズ
            0,                          // 境界幅
            GLES10.GL_RGBA,             // 引き渡すデータのフォーマット
            GLES10.GL_UNSIGNED_BYTE,        // データの型
            null);                      // ピクセルデータ無し
        // テクスチャ変換行列を初期化
        Matrix.setIdentityM(mTexMatrix, 0);
        mTexMatrix[0] = width / (float)mTexWidth;
        mTexMatrix[5] = height / (float)mTexHeight;
//      if (DEBUG) Log.v(TAG, "GLTexture:id=" + mTextureId);
    }