package cn.com.jbit.coolvideoplayer.renderer;import java.nio.FloatBuffer;import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;import android.opengl.GLSurfaceView.Renderer;
import android.util.Log;
/**绘制三角形*/
public class TriangleRenderer implements Renderer {
private FloatBuffer triangleFloatBuffer=FloatBuffer.wrap(new float[]{
-0.5f,0.0f,0.0f,
0.0f,-0.5f,0.0f,
0.5f,0.0f,0.0f,
});

//绘制每一帧
public void onDrawFrame(GL10 gl) {
Log.i("***", "onDrawFrame");
//清楚屏幕和深度缓存
gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);
//开启定点数组坐标
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
//重置矩阵
gl.glLoadIdentity();
//指定顶点数组坐标
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangleFloatBuffer);
//画三角形
gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
//关闭定点坐标
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);

}
//窗口尺寸发生变化时调用,至少执行一次
public void onSurfaceChanged(GL10 gl, int width, int height) {
Log.i("***", "onSurfaceChanged");
//设置场景大小
gl.glViewport(0, 0, width, height);
//宽高比
float ratio=(float)width/height;
//设置矩阵模型为投影矩阵
gl.glMatrixMode(GL10.GL_PROJECTION);
//重置矩阵
gl.glLoadIdentity();
//设置可是区域
gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
}
//创建或重建窗口时调用
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
Log.i("***", "onSurfaceCreated");

}}