精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android OpenGLes 3.0學習:頂點繪制法 VBOs

移動開發 Android
目前只有android系統中只有android 4.3或以上支持opengles 3.0,但目前很多運行android 4.3系統的硬件能支持opengles 3.0的也是非常少的。不過幸好,opengles 3.0是向后兼容的,當程序發現硬件不支持opengles 3.0時則會自動調用opengles 2.0的API。

目前只有android系統中只有android 4.3或以上支持opengles 3.0,但目前很多運行android 4.3系統的硬件能支持opengles 3.0的也是非常少的。不過幸好,opengles 3.0是向后兼容的,當程序發現硬件不支持opengles 3.0時則會自動調用opengles 2.0的API。廢話不多說了,開始進入正題,

實現過程:

1、在manifest中聲明程序中使用opengles 3.0

如果程序中使用了紋理壓縮的話,還需進行如下聲明,以防止不支持這些壓縮格式的設備嘗試運行程序。

2、實現兩個必不可少的類:GLSurfaceView和GLSurfaceView.Renderer

繼承GLSurfaceView類的MySurfaceView.java

java代碼

  1. package com.gl.gl30_vbos02; 
  2.  
  3.   import android.content.Context; 
  4.   import android.opengl.GLSurfaceView; 
  5.   import android.util.AttributeSet; 
  6.   import android.view.MotionEvent; 
  7.   public class MySurfaceView extends GLSurfaceView { 
  8.   private final float TOUCH_SCALE_FACOTOR = 180.0f / 320
  9.   private GLRender _render = new GLRender(); 
  10.   private float _preX = 0.0f; 
  11.   private float _preY = 0.0f; 
  12.   public MySurfaceView(Context context) 
  13.   { 
  14.   super(context); 
  15.   // TODO Auto-generated constructor stub 
  16.   setEGLContextClientVersion(2); 
  17.   this.setRenderer(_render); 
  18.   setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); 
  19.   } 
  20.   public MySurfaceView(Context context, AttributeSet attrs) { 
  21.   super(context, attrs); 
  22.   // TODO Auto-generated constructor stub 
  23.   } 
  24.   @Override 
  25.   public boolean onTouchEvent(MotionEvent event) { 
  26.   // TODO Auto-generated method stub 
  27.   float x = event.getX(); 
  28.   float y = event.getY(); 
  29.   switch (event.getAction()) 
  30.   { 
  31.   case MotionEvent.ACTION_MOVE: 
  32.   float dx = x - _preX; 
  33.   float dy = y - _preY; 
  34.   _render.zrot = dx * TOUCH_SCALE_FACOTOR; 
  35.   _render.xrot = dy * TOUCH_SCALE_FACOTOR; 
  36.   this.requestRender(); 
  37.   break
  38.   default
  39.   break
  40.   } 
  41.   _preX = x; 
  42.   _preY = y; 
  43.   return true
  44.   } 
  45.   } 

實現GLSurfaceView.Renderer的GLRender.java:

java代碼

  1. package com.gl.gl30_vbos02; 
  2.  
  3.   import java.nio.FloatBuffer; 
  4.   import javax.microedition.khronos.egl.EGLConfig; 
  5.   import javax.microedition.khronos.opengles.GL10; 
  6.   import android.opengl.GLES30; 
  7.   import android.opengl.GLSurfaceView.Renderer; 
  8.   import android.opengl.Matrix; 
  9.   import android.util.Log; 
  10.   //@TargetApi(18) 
  11.   public class GLRender implements Renderer { 
  12.   public float xrot, yrot, zrot; 
  13.   private static final String TAG = "GLRender"
  14.   private final float[] mProjMatrix = new float[16]; 
  15.   private final float[] mVMatrix = new float[16]; 
  16.   private final float[] mMVPMatrix = new float[16]; 
  17.   private final float[] mRotationMatrix = new float[16]; 
  18.   // private volatile float mAngle; 
  19.   private CirclePlane _circlePlane; 
  20.   //定義環境光 
  21.   private FloatBuffer lightAmbient = FloatBuffer.wrap(new float[]{0.5f, 0.5f, 
  22. 0.5f, 1.0f}); 
  23.   //定義漫散射 
  24.   private FloatBuffer lightDiffuse = FloatBuffer.wrap(new float[]{1.0f, 1.0f, 
  25. 1.0f, 1.0f}); 
  26.   //光源的位置 
  27.   private FloatBuffer lightPosition = FloatBuffer.wrap(new float[]{0.0f, 
  28. 0.0f, 2.0f, 1.0f}); 
  29.   public GLRender() { 
  30.   // TODO Auto-generated constructor stub 
  31.   } 
  32.   @Override 
  33.   public void onDrawFrame(GL10 gl_unused) { 
  34.   // TODO Auto-generated method stub 
  35.   //清楚屏幕和深度緩存 
  36.   GLES30.glClear(GLES30.GL_COLOR_BUFFER_BIT | 
  37. GLES30.GL_DEPTH_BUFFER_BIT); 
  38.   Matrix.setLookAtM(mVMatrix, 000, -30.0f, 0.0f, 0.0f, 0.0f, 1.0f, 
  39. 0.0f); 
  40.   Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0); 
  41.   this._circlePlane.Draw(mMVPMatrix); 
  42.   } 
  43.   @Override 
  44.   public void onSurfaceChanged(GL10 gl_unused, int width, int height) { 
  45.   // TODO Auto-generated method stub 
  46.   float ratio = (float) width / height; 
  47.   //設置OPENGL視口 
  48.   GLES30.glViewport(00, width, height); 
  49.   //設置矩陣投影參數 
  50.   Matrix.frustumM(mProjMatrix, 0, -ratio, ratio, -1137); 
  51.   } 
  52.   @Override 
  53.   public void onSurfaceCreated(GL10 gl, EGLConfig config) { 
  54.   // TODO Auto-generated method stub 
  55.   //black background 
  56.   GLES30.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
  57.   this._circlePlane = new CirclePlane(10201.0f); 
  58.   } 
  59.   public static int loadShader(int type, String shaderCode) 
  60.   { 
  61.   // create a shader type (GLES30.GL_VERTEX_SHADER) 
  62.   // or a fragment shader type (GLES30.GL_FRAGMENT_SHADER) 
  63.   int shader = GLES30.glCreateShader(type); 
  64.   GLES30.glShaderSource(shader, shaderCode); 
  65.   GLES30.glCompileShader(shader); 
  66.   return shader; 
  67.   } 
  68.   public static void checkGLError(String glOperation) 
  69.   { 
  70.   int error; 
  71.   while((error = GLES30.glGetError()) != (GLES30.GL_NO_ERROR)) 
  72.   { 
  73.   Log.e(TAG, glOperation + ": glError " + error); 
  74.   throw new RuntimeException(glOperation + ": glError " + error); 
  75.   } 
  76.   } 
  77.   } 

要完成Opengl es工程,最重要是實現上面兩個類。另外本程序為了繪制出圖中的圖案,還有四個類,可在附件中查看。:

CirclePlane.java //實現圖案中頂點緩存,這個類有比較多的數學知識,不過只為了實現圖案的話,不用理解其中數學算法問題也沒關系。只要修改此類就可以繪制出不同的圖案

Vertex3f.java //定義了頂點類型

Until.java //生成頂點緩存的公共工具類

OpenGLES30.java //工程的主類

附錄

CirclePlane.java

java代碼

  1. package com.gl.gl30_vbos02; 
  2.  
  3.   import java.nio.FloatBuffer; 
  4.   import android.opengl.GLES30; 
  5.   //@TargetApi(18) 
  6.   public class CirclePlane { 
  7.   static final int COORDS_PRE_VERTEX = 3
  8.   private final int vertexStride = COORDS_PRE_VERTEX * 4
  9.   private int vertexCount = 0
  10.   private int mRow = 10
  11.   private int mColumn = 20
  12.   private float mRadius = 1.0f; 
  13.   private FloatBuffer mPlaneBuffer; 
  14.   private final int mProgram; 
  15.   private int mPositionHandle; 
  16.   private int mColorHandle; 
  17.   private int mMVPMatrixHandle; 
  18.   // Set color with red, green, blue and alpha (opacity) values 
  19.   float color[] = { 1.0f, 1.0f, 1.0f, 1.0f }; //白色不透明 
  20.   private final String vertexShaderCode = 
  21.   "uniform mat4 uMVPMatrix;" + 
  22.   "attribute vec4 vPosition;" + 
  23.   "void main()" + 
  24.   "{" + 
  25.   " gl_Position = vPosition * uMVPMatrix;" + 
  26.   "}"
  27.   private final String fragmentShaderCode = 
  28.   "precision mediump float;" + 
  29.   "uniform vec4 vColor;" + 
  30.   "void main()" + 
  31.   "{" + 
  32.   " gl_FragColor = vColor;" + 
  33.   "}"
  34.   public CirclePlane(int row, int column, float radius) 
  35.   { 
  36.   // TODO Auto-generated constructor stub 
  37.   this.mRow = row; 
  38.   this.mColumn = column; 
  39.   this.mRadius = radius; 
  40.   this.createGraphics(); 
  41.   int vertexShader = GLRender.loadShader(GLES30.GL_VERTEX_SHADER, 
  42. vertexShaderCode); 
  43.   int fragmentShader = GLRender.loadShader(GLES30.GL_FRAGMENT_SHADER, 
  44. fragmentShaderCode); 
  45.   this.mProgram = GLES30.glCreateProgram(); // create empty OpenGL 
  46. Program 
  47.   GLES30.glAttachShader(this.mProgram, vertexShader); // add the vertex 
  48. shader to program 
  49.   GLES30.glAttachShader(this.mProgram, fragmentShader); // add the fragment 
  50. shader to program 
  51.   GLES30.glLinkProgram(this.mProgram); // create OpenGL program 
  52. executables 
  53.   } 
  54.   private void createGraphics() 
  55.   { 
  56.   Vertex3f vertexs[][] = new Vertex3f[this.mRow][this.mColumn]; 
  57.   float intervalR = this.mRadius / this.mRow; 
  58.   Vertex3f centralPos = new Vertex3f(0.0f, 0.0f, 0.0f); 
  59.   for(int i=0;i 
  60.   { 
  61.   float tmpR = intervalR * i; 
  62.   for(int j=0;j 
  63.   { 
  64.   double angle = 2 * j * Math.PI / (this.mColumn - 1); 
  65.   vertexs[i][j] = new Vertex3f((float)(tmpR * Math.cos(angle)), (float)(tmpR 
  66. * Math.sin(angle)), centralPos.z); 
  67.   } 
  68.   } 
  69.   //創建三角形頂點 
  70.   int len = 2 * (this.mRow -1) * (this.mColumn - 1) * 3
  71.   this.vertexCount = len; 
  72.   Vertex3f tri[] = new Vertex3f[len]; 
  73.   int index = 0
  74.   for(int i=0;i 
  75.   { 
  76.   for(int j=0;j 
  77.   { 
  78.   tri[index] = vertexs[i][j]; 
  79.   tri[index+1] = vertexs[i+1][j]; 
  80.   tri[index+2] = vertexs[i+1][j+1]; 
  81.   tri[index+3] = vertexs[i][j]; 
  82.   tri[index+4] = vertexs[i+1][j+1]; 
  83.   tri[index+5] = vertexs[i+1][j]; 
  84.   index += 6
  85.   } 
  86.   } 
  87.   //設置頂點緩存 
  88.   float[] plane = new float[len*3]; 
  89.   for(int i=0;i 
  90.   { 
  91.   int vertexI = 3 * i; 
  92.   plane[vertexI] = tri[i].x; 
  93.   plane[vertexI+1] = tri[i].y; 
  94.   plane[vertexI+2] = tri[i].z; 
  95.   } 
  96.   this.mPlaneBuffer = Util.getFloatBuffer(plane); 
  97.   // plane = null; 
  98.   } 
  99.   public void Draw(float[] mvpMatrix) 
  100.   { 
  101.   GLES30.glUseProgram(this.mProgram); 
  102.   this.mPositionHandle = GLES30.glGetAttribLocation(this.mProgram, 
  103. "vPosition"); 
  104.   GLES30.glEnableVertexAttribArray(this.mPositionHandle); 
  105.   GLES30.glVertexAttribPointer(this.mPositionHandle, COORDS_PRE_VERTEX, 
  106.   GLES30.GL_FLOAT, falsethis.vertexStride, this.mPlaneBuffer); 
  107.   this.mColorHandle = GLES30.glGetUniformLocation(this.mProgram, 
  108. "vColor"); 
  109.   GLES30.glUniform4fv(this.mColorHandle, 1this.color, 0); 
  110.   this.mMVPMatrixHandle = GLES30.glGetUniformLocation(this.mProgram, 
  111. "uMVPMatrix"); 
  112.   GLRender.checkGLError("glGetUniformLocation"); 
  113.   GLES30.glUniformMatrix4fv(this.mMVPMatrixHandle, 1false, mvpMatrix, 
  114. 0); 
  115.   GLRender.checkGLError("glUniformMatrix4fv"); 
  116.   GLES30.glDrawArrays(GLES30.GL_TRIANGLES, 0this.vertexCount); 
  117.   GLES30.glDisableVertexAttribArray(this.mPositionHandle); 
  118.   // gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
  119.   // gl.glVertexPointer(3, GL10.GL_FLOAT, 0, this.mPlaneBuffer); 
  120.   // gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 
  121. (this.mRow-1)*(this.mColumn-1)*2*3); 
  122.   // 
  123.   // gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 
  124.   // gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); 
  125.   // gl.glFinish(); 
  126.   } 
  127.   } 

Vertex3f.java

java代碼

  1. package com.gl.gl30_vbos02; 
  2.  
  3.   public class Vertex3f { 
  4.   public float x = 0.0f; 
  5.   public float y = 0.0f; 
  6.   public float z = 0.0f; 
  7.   public Vertex3f(float x, float y, float z) 
  8.   { 
  9.   this.x = x; 
  10.   this.y = y; 
  11.   this.z = z; 
  12.   } 
  13.   } 

Until.java

java代碼

  1. package com.gl.gl30_vbos02; 
  2.  
  3.   import java.nio.ByteBuffer; 
  4.   import java.nio.ByteOrder; 
  5.   import java.nio.FloatBuffer; 
  6.   import java.nio.IntBuffer; 
  7.   public class Util { 
  8.   //獲取整形緩沖數據 
  9.   public static IntBuffer getIntBuffer(int[] vertexs) 
  10.   { 
  11.   IntBuffer buffer; 
  12.   ByteBuffer qbb = ByteBuffer.allocateDirect(vertexs.length * 4); 
  13.   qbb.order(ByteOrder.nativeOrder()); 
  14.   buffer = qbb.asIntBuffer(); 
  15.   buffer.put(vertexs); 
  16.   buffer.position(0); 
  17.   return buffer; 
  18.   } 
  19.   //獲取浮點形緩沖數據 
  20.   public static FloatBuffer getFloatBuffer(float[] vertexs) 
  21.   { 
  22.   FloatBuffer buffer; 
  23.   ByteBuffer qbb = ByteBuffer.allocateDirect(vertexs.length * 4); 
  24.   qbb.order(ByteOrder.nativeOrder()); 
  25.   buffer = qbb.asFloatBuffer(); 
  26.   buffer.put(vertexs); 
  27.   buffer.position(0); 
  28.   return buffer; 
  29.   } 
  30.   //獲取字節型緩沖數據 
  31.   public static ByteBuffer getByteBuffer(byte[] vertexs) 
  32.   { 
  33.   ByteBuffer buffer = null
  34.   buffer = ByteBuffer.allocateDirect(vertexs.length); 
  35.   buffer.put(vertexs); 
  36.   buffer.position(0); 
  37.   return buffer; 
  38.   } 
  39.   } 

OpenGLES30.java

java代碼

  1. package com.gl.gl30_vbos02; 
  2.  
  3.   import android.opengl.GLSurfaceView; 
  4.   import android.os.Bundle; 
  5.   import android.app.Activity; 
  6.   import android.view.Menu; 
  7.   public class OpenGLES30 extends Activity { 
  8.   private GLSurfaceView mGL30View; 
  9.   @Override 
  10.   protected void onCreate(Bundle savedInstanceState) { 
  11.   super.onCreate(savedInstanceState); 
  12.   mGL30View = new MySurfaceView(this); 
  13.   setContentView(mGL30View); 
  14.   } 
  15.   @Override 
  16.   public boolean onCreateOptionsMenu(Menu menu) { 
  17.   // Inflate the menu; this adds items to the action bar if it is 
  18. present. 
  19.   getMenuInflater().inflate(R.menu.open_gles30, menu); 
  20.   return true
  21.   } 
  22.   @Override 
  23.   protected void onResume() { 
  24.   // TODO Auto-generated method stub 
  25.   super.onResume(); 
  26.   this.mGL30View.onResume(); 
  27.   } 
  28.   @Override 
  29.   protected void onPause() { 
  30.   // TODO Auto-generated method stub 
  31.   super.onPause(); 
  32.   this.mGL30View.onPause(); 
  33.   } 
  34.   } 

原文:http://bbs.9ria.com/thread-260180-1-1.html

責任編輯:閆佳明 來源: bbs.9ria
相關推薦

2013-04-15 14:23:21

2013-04-26 11:17:48

2013-07-25 09:32:26

OpenGL ESAndroid4.3

2009-11-27 12:02:56

IT運維

2011-02-03 10:10:49

Android3.0Android谷歌

2010-10-13 14:35:14

Android 3.0

2011-04-14 17:36:15

Android 3.0iPad佩奇

2019-08-05 13:20:35

Android繪制代碼

2020-08-25 09:50:35

Vue3.0命令前端

2024-12-19 07:51:50

NacosAPI 接口三方調用

2011-01-28 10:14:59

Android 3.0

2011-02-13 11:37:45

Android 3.0

2013-04-26 10:26:08

2011-04-28 10:35:51

上網本東芝REGZA Table

2010-10-20 08:53:57

Android 3.0

2011-04-04 11:53:05

索尼平板電腦Android 3.0

2011-01-13 13:48:52

Android 3.0

2011-02-15 13:45:43

Android 3.0

2014-04-29 14:27:59

OpenGL ES 2Android繪制紋理

2011-06-30 15:09:37

QT 繪制 圖形
點贊
收藏

51CTO技術棧公眾號

性中国古装videossex| 99成人在线观看| 希岛爱理一区二区三区av高清| 国产夜色精品一区二区av| 国产精品久久久久不卡| 国产精品老熟女一区二区| 加勒比中文字幕精品| 日本高清无吗v一区| 男人天堂成人网| 日本福利片高清在线观看| 美国毛片一区二区| 91精品国产高清自在线| 人与动物性xxxx| 日本一区福利在线| 在线播放91灌醉迷j高跟美女 | 欧美熟妇精品一区二区蜜桃视频| 日韩性xxx| 一区二区三区日韩欧美精品| 日韩免费一区二区三区| 老牛影视av牛牛影视av| 美国毛片一区二区三区| 欧美性视频在线| 青青草成人免费| 日本黄色精品| 日韩电影在线观看中文字幕 | 亚洲精品成a人ⅴ香蕉片| 五月激情丁香一区二区三区| 永久域名在线精品| 女人天堂在线| gogo大胆日本视频一区| 亚洲一区二区久久久久久| 国产寡妇亲子伦一区二区三区四区 | 欧美一二三在线| 婷婷免费在线观看| 三上悠亚激情av一区二区三区| 亚洲韩国精品一区| 黄色录像特级片| 免费观看久久久久| 国产调教视频一区| 欧美污视频久久久| 无码精品一区二区三区在线| 丰满少妇久久久久久久| 7777精品伊久久久大香线蕉语言| 中文字幕有码无码人妻av蜜桃| 久久一区二区三区四区五区 | 久久香蕉精品视频| 中文字幕乱码亚洲无线精品一区 | 国产精品一区二区不卡视频| 国产欧美熟妇另类久久久| 青青国产91久久久久久 | 特级做a爱片免费69| 在线精品在线| 午夜精品福利在线观看| 国产在线视频第一页| 亚洲一级二级| 91精品国产91久久久久久不卡| 国产午夜精品无码| 91久久综合| 91精品国产成人www| 日本va欧美va国产激情| 99成人精品| 91tv亚洲精品香蕉国产一区7ujn| 日韩 欧美 精品| 一本色道久久综合一区| 热99精品里视频精品| 日本中文字幕在线| 三级久久三级久久久| 国产精品a久久久久久| 欧美性受xxx黑人xyx性爽| 免费精品视频在线| 91性高湖久久久久久久久_久久99| 91尤物国产福利在线观看| 久久爱www久久做| 96pao国产成视频永久免费| 国产成人三级一区二区在线观看一 | 精品香蕉视频| 久久综合88中文色鬼| 欧美xxxx黑人xyx性爽| 影音先锋国产精品| 欧美专区在线播放| 自拍偷拍色综合| 国产精品综合视频| 国产亚洲精品久久飘花| 国产在线你懂得| 国产精品久久久久久亚洲毛片| 手机福利在线视频| 国产极品人妖在线观看| 色网站国产精品| 亚洲va在线va天堂va偷拍| 天堂久久av| 亚洲剧情一区二区| 顶臀精品视频www| 国产欧美一级| 国产日本欧美在线观看| 免费看日韩av| 国产精品视频一二三| www.激情网| 成人视屏在线观看| 日韩一区二区三区四区| 日本黄色网址大全| 亚洲欧美在线专区| 奇米一区二区三区四区久久| 国产一区二区三区视频免费观看| 成人av网站大全| 在线成人性视频| 久草免费在线视频| 在线不卡a资源高清| 精品黑人一区二区三区观看时间| 水蜜桃久久夜色精品一区| 国语自产精品视频在线看抢先版图片| 无码免费一区二区三区| 国产精品911| 视频在线精品一区| 国产精品论坛| 欧美大片国产精品| 成人一级片免费看| 国产精品腿扒开做爽爽爽挤奶网站| 91精品国产综合久久久久久久久| 午夜影院在线视频| 一区二区三区在线视频观看| 538任你躁在线精品免费| 猫咪成人在线观看| 九九热最新视频//这里只有精品| 中文字幕av无码一区二区三区| 成人午夜短视频| 最新中文字幕久久| av成人在线观看| 亚洲精品成人网| 永久免费看黄网站| 看片的网站亚洲| 免费精品视频一区| 男人av在线播放| 精品精品欲导航| 麻豆明星ai换脸视频| 青青草成人在线观看| 你懂的网址一区二区三区| 爱情岛亚洲播放路线| 欧美一级欧美三级| 免费成年人视频在线观看| 免费成人在线视频观看| 日本免费高清一区二区| 高清不卡av| 亚洲精品永久免费| 天天综合网久久综合网| av不卡免费电影| 日韩小视频在线播放| 国产精品玖玖玖在线资源| 欧美成人中文字幕在线| 国产剧情久久久| 亚洲视频你懂的| 国产精品久久久久久久av福利| 日韩综合网站| 91久久精品国产91性色| 免费在线看黄色| 制服.丝袜.亚洲.中文.综合| 成人免费精品动漫网站| 国产精品亚洲人在线观看| 久久人妻无码一区二区| 亚洲日本一区二区三区在线| 欧美激情乱人伦一区| 免费观看黄一级视频| 黑人巨大精品欧美一区二区三区| 国产精品揄拍100视频| 日韩精品电影在线观看| 亚洲一区精彩视频| 欧美视频三区| 久久久亚洲影院| 青青免费在线视频| 欧美色精品天天在线观看视频| 最近中文字幕免费| 免费高清在线一区| 超薄肉色丝袜足j调教99| 超碰成人福利| 日韩av成人在线| 永久免费av在线| 91精品国产欧美一区二区成人 | 成人在线电影网站| 天堂在线一区二区| 亚洲一区二区精品在线| 日韩中文字幕在线一区| 78色国产精品| 91最新在线| 欧美r级在线观看| 91美女免费看| 亚洲欧洲成人av每日更新| 中文在线字幕观看| 美女尤物久久精品| 日本特级黄色大片| 免费看久久久| 国产精品第七十二页| 黄色网页在线免费看| 亚洲黄色免费三级| 一级全黄裸体免费视频| 亚洲国产日产av| 欧美成人另类视频| 成人午夜电影久久影院| 亚洲天堂av线| 极品尤物久久久av免费看| 日韩欧美一区二区在线观看| 亚洲精品不卡在线观看| 国产成人在线播放| 欧美v亚洲v| 色婷婷综合久久久久| 欧美一级做性受免费大片免费| 欧美日韩一区不卡| 久久久久久久久久久久久av| 亚洲男同性视频| 免费污网站在线观看| 国产成人精品在线看| 中文字幕永久视频| av成人国产| 日韩久久久久久久久久久久| 欧美手机视频| 蜜桃免费一区二区三区| 日韩区一区二| 国产日韩欧美在线观看| videos性欧美另类高清| 欧美黑人国产人伦爽爽爽| 欧美成人二区| 国产亚洲一级高清| 三级毛片在线免费看| 欧美大片在线观看一区二区| 一区二区三区亚洲视频| 色婷婷综合在线| 日韩av免费网址| 亚洲一区二区三区四区在线免费观看 | 久久久亚洲国产精品| 亚洲成人一区| 亚洲视频在线二区| 精品国产一区二区三区久久久樱花 | 久久国产亚洲精品无码| 亚洲网址在线| 精品国产一区二区三区在线| 成人3d精品动漫精品一二三| 欧美亚洲精品日韩| 日韩美女毛片| 好看的日韩精品视频在线| 大型av综合网站| 超碰97在线播放| www国产精品| 国产精品国产精品国产专区不卡| 国产精品亚洲一区二区在线观看| 国产精品丝袜白浆摸在线| 高清av一区| 国产精品大陆在线观看| 欧美日韩激情电影| 国产精品久久中文| 成人1区2区| 国产精品视频免费观看www| 在线一区视频观看| 国产精品成人一区二区| 欧美天堂一区| 成人网欧美在线视频| 精品一区二区三区视频在线播放 | 黄色免费大全亚洲| 999国内精品视频在线| 一区二区三区四区高清视频| 91精品网站| 精品国产午夜肉伦伦影院| 国产综合动作在线观看| 亚洲另类春色校园小说| 日本精品一区二区三区视频| 日韩av自拍| 中文字幕中文字幕在线中一区高清| 91久久电影| 久久久久久久久网| 亚洲黄色三级| 欧美性猛交久久久乱大交小说| 人人超碰91尤物精品国产| www.久久久精品| 国产在线精品不卡| 国产一精品一aⅴ一免费| 99在线精品免费| 国产精品免费无码| 国产精品盗摄一区二区三区| 少妇aaaaa| 午夜不卡av免费| 国产情侣免费视频| 日韩一级精品视频在线观看| 天天操天天干天天爽| 国产一区二区三区直播精品电影 | 亚洲免费色视频| 欧美成人aaaaⅴ片在线看| 色综合一个色综合亚洲| 一区二区久久精品66国产精品| 欧美不卡视频一区| 黄色影院在线播放| 久久综合色88| 亚洲三级欧美| 91精品视频在线播放| 国产亚洲成av人片在线观黄桃| 日韩欧美三级电影| 欧美黄色一区| 欧美性猛交久久久乱大交小说 | 黄网页免费在线观看| 国内精品久久久久久中文字幕| 成人日韩精品| 91久久国产综合久久蜜月精品| 亚洲区小说区图片区qvod按摩 | 亚洲精品一线| bbw在线视频| 欧美老少做受xxxx高潮| 在线毛片观看| 91久久国产综合久久91精品网站| 另类春色校园亚洲| 国产又粗又爽又黄的视频| 国产欧美精品| 免费欧美一级片| 91论坛在线播放| 国产性70yerg老太| 欧美日韩免费一区二区三区| 香蕉视频国产在线| 久久精品国产2020观看福利| xxxxxx欧美| 成人欧美一区二区三区视频| 日韩欧美视频在线播放| 久色视频在线播放| 国产成人福利片| 女性裸体视频网站| 色菇凉天天综合网| 天堂av2024| 欧美激情精品久久久久久蜜臀| 欧美日一区二区三区| 欧美一级爱爱| 国产欧美日本| 国产一卡二卡三卡四卡| 亚洲毛片av在线| 亚洲影视一区二区| 亚洲色图美腿丝袜| 伊人网在线播放| 激情伦成人综合小说| 在线观看日韩av电影| 99热这里只有精品2| 亚洲精品亚洲人成人网| 一级特黄aa大片| 中文字幕在线日韩| 日韩精品一区二区三区av| 美乳视频一区二区| 国产精品婷婷| 强伦人妻一区二区三区| 狠狠色噜噜狠狠狠狠97| 天堂在线观看av| 韩国日本不卡在线| 国产精品18hdxxxⅹ在线| 国产人妻人伦精品| 国产成人一级电影| 久久97人妻无码一区二区三区| 日韩欧美一区中文| 肉体视频在线| 国产精品对白刺激久久久| 欧美精品激情| 亚洲视频 中文字幕| 午夜国产不卡在线观看视频| 欧美一区,二区| 97精品国产97久久久久久免费 | 国产在线视频91| 91久久夜色精品国产按摩| 国产免费中文字幕| 亚洲精品日韩专区silk| 亚洲国产精品视频在线| 国内精品免费午夜毛片| 欧美午夜寂寞| 毛片av免费在线观看| 国产欧美日本一区二区三区| 中文字幕乱码人妻无码久久| 久久久国产一区二区| 亚洲成人偷拍| 国产综合av在线| 国产亚洲精品7777| 这里只有精品9| 欧美精品日韩www.p站| 操欧美女人视频| 日韩视频免费在线播放| 国产精品剧情在线亚洲| 成人高潮片免费视频| 97碰在线观看| 99精品视频精品精品视频| 久草免费资源站| 色综合中文字幕| 国产视频中文字幕在线观看| 国产精品自拍首页| 首页国产欧美久久| avtt天堂在线| 日韩电影中文字幕一区| 日韩国产91| 九九爱精品视频| 国产精品美女久久久久久2018| www.99视频| 日韩暖暖在线视频| 欧美 日韩 国产一区二区在线视频 | 国产精品亚洲d| 国产一区 在线播放| 国产午夜精品福利| 精品国产av鲁一鲁一区| 国产suv精品一区二区| 牛夜精品久久久久久久99黑人| 久久久久亚洲av无码专区桃色| 91精品在线观看入口| 欧美电影免费观看网站| 日韩欧美一级在线|