Android examples for android.opengl:OpenGL Texture
OpenGL render Texture
/*//from w w w . java 2 s.c om * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import android.graphics.Bitmap; import android.opengl.GLES20; import android.opengl.GLUtils; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; public class Main{ public static void renderTexture(RenderContext context, int texture, int viewWidth, int viewHeight) { // Use our shader program GLES20.glUseProgram(context.shaderProgram); checkGlError("glUseProgram"); // Set viewport GLES20.glViewport(0, 0, viewWidth, viewHeight); checkGlError("glViewport"); // Disable blending GLES20.glDisable(GLES20.GL_BLEND); // Set the vertex attributes GLES20.glVertexAttribPointer(context.texCoordHandle, 2, GLES20.GL_FLOAT, false, 0, context.texVertices); GLES20.glEnableVertexAttribArray(context.texCoordHandle); GLES20.glVertexAttribPointer(context.posCoordHandle, 2, GLES20.GL_FLOAT, false, 0, context.posVertices); GLES20.glEnableVertexAttribArray(context.posCoordHandle); checkGlError("vertex attribute setup"); // Set the input texture GLES20.glActiveTexture(GLES20.GL_TEXTURE0); checkGlError("glActiveTexture"); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texture); checkGlError("glBindTexture"); GLES20.glUniform1i(context.texSamplerHandle, 0); // Draw! GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); } private static void checkGlError(String op) { int error; while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) { throw new RuntimeException(op + ": glError " + error); } } }