亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? glcube.java

?? android 下學習openGL的一個不錯demo
?? JAVA
字號:
/*** * Excerpted from "Hello, Android!", * published by The Pragmatic Bookshelf. * Copyrights apply to this code. It may not be used to create training material,  * courses, books, articles, and the like. Contact us if you are in doubt. * We make no guarantees that this code is fit for any purpose.  * Visit http://www.pragmaticprogrammer.com/titles/eband for more book information.***/
package com.mot.opengl;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.IntBuffer;

import javax.microedition.khronos.opengles.GL;import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;import javax.microedition.khronos.opengles.GL11Ext;import javax.microedition.khronos.opengles.GL11ExtensionPack;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;import android.widget.Toast;
public class GLCube {
   private final IntBuffer mVertexBuffer;
   
   
   private final IntBuffer mTextureBuffer;
   private static int[] textures = new int[6];
   
   public GLCube() {
      
      int one = 65536;
      int half = one / 2;
      int vertices[] = {             // FRONT
            -half, -half, half, half, -half, half,
            -half, half, half, half, half, half,
            // BACK
            -half, -half, -half, -half, half, -half,
            half, -half, -half, half, half, -half,
            // LEFT
            -half, -half, half, -half, half, half,
            -half, -half, -half, -half, half, -half,
            // RIGHT
            half, -half, -half, half, half, -half,
            half, -half, half, half, half, half,
            // TOP
            -half, half, half, half, half, half,
            -half, half, -half, half, half, -half,
            // BOTTOM
            -half, -half, half, -half, -half, -half,
            half, -half, half, half, -half, -half, };
      

      
      int texCoords[] = {
            // FRONT
            0, one, one, one, 0, 0, one, 0,
            // BACK
            one, one, one, 0, 0, one, 0, 0,
            // LEFT
            one, one, one, 0, 0, one, 0, 0,
            // RIGHT
            one, one, one, 0, 0, one, 0, 0,
            // TOP
            one, 0, 0, 0, one, one, 0, one,
            // BOTTOM
            0, 0, 0, one, one, 0, one, one, };
      

      
      // Buffers to be passed to gl*Pointer() functions must be
      // direct, i.e., they must be placed on the native heap
      // where the garbage collector cannot move them.
      //
      // Buffers with multi-byte data types (e.g., short, int,
      // float) must have their byte order set to native order
      ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length * 4);
      vbb.order(ByteOrder.nativeOrder());
      mVertexBuffer = vbb.asIntBuffer();
      mVertexBuffer.put(vertices);
      mVertexBuffer.position(0);
      

      
      // ...
      ByteBuffer tbb = ByteBuffer.allocateDirect(texCoords.length * 4);
      tbb.order(ByteOrder.nativeOrder());
      mTextureBuffer = tbb.asIntBuffer();
      mTextureBuffer.put(texCoords);
      mTextureBuffer.position(0);
      
   }
   

   public void draw(GL10 gl) { 	      //Bind diffirent face	   /*	      gl.glBindTexture(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_POSITIVE_X, textures[0]); //	      gl.glBindTexture(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_POSITIVE_Y, textures[1]); //	      gl.glBindTexture(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_POSITIVE_Z, textures[2]); //	      gl.glBindTexture(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_NEGATIVE_X, textures[3]); //	      gl.glBindTexture(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, textures[4]); //	      gl.glBindTexture(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_POSITIVE_Z, textures[5]); //	     */	  gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, mTextureBuffer);	  gl.glVertexPointer(3, GL10.GL_FIXED, 0, mVertexBuffer);

      gl.glColor4f(1, 1, 1, 1);
	  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); //      gl.glNormal3f(0, 0, 1);
      gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
	  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[1]); //      gl.glNormal3f(0, 0, -1);
      gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 4, 4);

      gl.glColor4f(1, 1, 1, 1);
	  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[2]); //      gl.glNormal3f(-1, 0, 0);
      gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 8, 4);
	  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[3]); //      gl.glNormal3f(1, 0, 0);
      gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 12, 4);

      gl.glColor4f(1, 1, 1, 1);
	  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[4]); //      gl.glNormal3f(0, 1, 0);
      gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 16, 4);
	  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[5]); //      gl.glNormal3f(0, -1, 0);
      gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 20, 4);               }
   
   

   public static ByteBuffer extract(Bitmap bmp) {       ByteBuffer bb = ByteBuffer.allocateDirect(bmp.getHeight()
            * bmp.getWidth() * 4);
      bb.order(ByteOrder.BIG_ENDIAN);
      IntBuffer ib = bb.asIntBuffer();

      // Convert ARGB -> RGBA
      for (int y = bmp.getHeight() - 1; y > -1; y--)
         for (int x = 0; x < bmp.getWidth(); x++) {
            int pix = bmp.getPixel(x, bmp.getHeight() - y - 1);
            // int alpha = ((pix >> 24) & 0xFF);
            int red = ((pix >> 16) & 0xFF);
            int green = ((pix >> 8) & 0xFF);
            int blue = ((pix) & 0xFF);

            // Make up alpha for interesting effect
            ib.put(red << 24 | green << 16 | blue << 8
                  | ((red + blue + green) / 3));
         }
      bb.position(0);
      return bb;
   }
   public static void loadTexture(GL10 gl, Context context, int[] resource) {	   	   /*	   int[] cube_face = {			   			   GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_POSITIVE_X,			   GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_POSITIVE_Y,			   GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_POSITIVE_Z,			   GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_NEGATIVE_X,			   GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,			   GL11ExtensionPack.GL_TEXTURE_CUBE_MAP_NEGATIVE_Z			   	   };	   	   int len = resource.length;	   ByteBuffer[] bb = new ByteBuffer[len];	   	   int[] tmp_tex = new int[1];	   gl.glGenTextures(1, tmp_tex, 0);	   int tex = tmp_tex[0];	   int i;	   for ( i=0; i<len; i++ ) {		   		   Bitmap bmp = BitmapFactory.decodeResource(		            context.getResources(), resource[i]);		   bb[i] = extract(bmp);	   }	   	   int width = 128;	   int height = 128;	      	   // Load it up	      gl.glBindTexture(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP, tex);	      	      		   gl.glTexParameterx(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP, 				   GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);		   gl.glTexParameterx(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP, 				   GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);		   //gl.glTexParameterx(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP, 		//		   GL10.GL_TEXTURE_WRAP_R, GL10.GL_CLAMP_TO_EDGE);		   gl.glTexParameterx(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP, 				   GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);		   gl.glTexParameterx(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP, 				   GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR_MIPMAP_LINEAR);		   gl.glTexParameterx(GL11ExtensionPack.GL_TEXTURE_CUBE_MAP, 				   GL11.GL_GENERATE_MIPMAP, GL10.GL_TRUE);		   		   for ( i=0; i<len; i++ ) {			   			      gl.glTexImage2D(cube_face[i], 0, GL10.GL_RGBA,				            width, height, 0, GL10.GL_RGBA,				            GL10.GL_UNSIGNED_BYTE, bb[i]);		   }		   */		   	   int len = resource.length;	   ByteBuffer[] bb = new ByteBuffer[len];		   	   int i;	   for ( i=0; i<len; i++ ) {		   		   Bitmap bmp = BitmapFactory.decodeResource(		            context.getResources(), resource[i]);		   bb[i] = extract(bmp);	   }	   		   int width = 128;		   int height = 128;		   		   for (i=0;i<6;i++) {			   gl.glGenTextures(1, textures, i);			   //gl.glGenTextures(1, tmp_tex, i);		      gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[i]);		      gl.glTexParameterx(GL10.GL_TEXTURE_2D,		            GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);		      gl.glTexParameterx(GL10.GL_TEXTURE_2D,		            GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);		      gl.glTexImage2D(GL10.GL_TEXTURE_2D, 0, GL10.GL_RGBA,			            width, height, 0, GL10.GL_RGBA,			            GL10.GL_UNSIGNED_BYTE, bb[i]);		   }		    		}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
播五月开心婷婷综合| 亚洲香肠在线观看| 高清在线不卡av| 中文字幕巨乱亚洲| 成人v精品蜜桃久久一区| 1024成人网| 日本久久电影网| 婷婷综合五月天| 欧美一区二区人人喊爽| 久久99精品久久只有精品| 精品国产91久久久久久久妲己 | 狂野欧美性猛交blacked| 精品三级在线观看| 成人动漫在线一区| 亚洲国产视频一区二区| 日韩亚洲欧美中文三级| 成人综合婷婷国产精品久久蜜臀| 亚洲欧美日韩中文播放 | 欧美电影在哪看比较好| 日本午夜精品一区二区三区电影| 2023国产精品| 91色综合久久久久婷婷| 美女视频网站久久| 国产精品久久久久桃色tv| 色欧美88888久久久久久影院| 亚洲国产aⅴ成人精品无吗| 欧美精品一区二区三区四区| 97久久精品人人澡人人爽| 蜜桃精品视频在线| 国产精品女主播在线观看| 欧美日韩大陆一区二区| 国产成人h网站| 天天操天天干天天综合网| 久久理论电影网| 欧美日韩1234| 不卡一区中文字幕| 久久99国产精品久久99果冻传媒| 亚洲欧美日韩国产一区二区三区 | xfplay精品久久| 欧美性生交片4| 风间由美性色一区二区三区| 亚洲午夜免费视频| 国产精品久久久久四虎| 日韩精品中文字幕一区| 色噜噜狠狠成人中文综合 | 成人精品一区二区三区四区| 午夜a成v人精品| 中文字幕五月欧美| 久久久99精品免费观看| 91精品免费在线观看| 一本一道久久a久久精品 | 欧美va亚洲va| 欧美三级一区二区| 一本一道波多野结衣一区二区| 国产伦精品一区二区三区免费| 日韩精品91亚洲二区在线观看 | 亚洲一区视频在线观看视频| 日本一区二区三区在线不卡 | 国产另类ts人妖一区二区| 青青草精品视频| 亚洲成a天堂v人片| 亚洲激情自拍视频| 亚洲视频网在线直播| 国产精品久久二区二区| 国产午夜精品美女毛片视频| 欧美精品一区二| 欧美大片一区二区| 日韩欧美国产综合在线一区二区三区 | 不卡一二三区首页| 成人小视频免费观看| 国产成人福利片| 懂色中文一区二区在线播放| 视频一区欧美日韩| 日韩av不卡一区二区| 日韩国产高清影视| 美腿丝袜在线亚洲一区| 久草精品在线观看| 国产一区二区三区四区在线观看| 精品一区二区三区视频| 国产一区二三区| 国产a久久麻豆| 成人av一区二区三区| 91视视频在线直接观看在线看网页在线看| 福利91精品一区二区三区| 成人av电影免费在线播放| av资源站一区| 91亚洲精品久久久蜜桃网站| 91麻豆国产精品久久| 在线看日韩精品电影| 欧美无砖砖区免费| 日韩一区二区高清| 久久亚洲精品小早川怜子| 国产精品视频一二三区| 亚洲欧美一区二区在线观看| 亚洲一区二区av在线| 日本中文字幕一区二区视频| 九九**精品视频免费播放| 国产毛片一区二区| 9久草视频在线视频精品| 色呦呦日韩精品| 欧美一区二区三区在线视频| 国产亚洲成年网址在线观看| 国产精品国产成人国产三级| 亚洲美女精品一区| 免费观看在线色综合| 国产成人免费视频一区| 色综合久久中文综合久久97| 777色狠狠一区二区三区| 久久久久久久久久久久久久久99| 亚洲欧洲无码一区二区三区| 亚洲福利视频一区| 国产精品996| 在线观看一区二区视频| 日韩欧美一级片| 国产精品理论片在线观看| 婷婷国产在线综合| 成人性生交大片免费| 4438x亚洲最大成人网| 国产欧美一区二区精品秋霞影院 | 一区二区三区精密机械公司| 免费看日韩精品| a在线欧美一区| 日韩欧美在线综合网| 亚洲色图制服诱惑| 精品一区二区三区蜜桃| 一本久久a久久免费精品不卡| 日韩欧美激情在线| 一区二区在线看| 国产精品1区2区3区| 欧美另类变人与禽xxxxx| 国产精品的网站| 久久99精品视频| 欧美日韩电影一区| 日韩毛片在线免费观看| 久久99日本精品| 欧美日韩国产首页| 国产精品久久久久久户外露出| 蜜桃在线一区二区三区| 欧美四级电影网| 综合久久久久久| 国产成a人亚洲精| 日韩一区国产二区欧美三区| 一区精品在线播放| 国产91精品一区二区麻豆亚洲| 欧美剧情电影在线观看完整版免费励志电影 | 天天色天天爱天天射综合| 99精品国产视频| 国产亚洲精品福利| 极品销魂美女一区二区三区| 69堂精品视频| 婷婷中文字幕综合| 欧美日韩中字一区| 一区二区在线观看av| 成人国产精品免费网站| 欧美精品一区二区在线播放| 五月婷婷久久丁香| 欧美伊人久久久久久午夜久久久久| 国产精品电影院| 波多野结衣在线一区| 国产日产欧产精品推荐色| 极品少妇xxxx精品少妇| 日韩精品在线一区| 麻豆一区二区99久久久久| 日韩午夜av电影| 国内不卡的二区三区中文字幕| 91精品啪在线观看国产60岁| 日韩av电影一区| 欧美一区二区三区在线电影| 日产精品久久久久久久性色| 91精品国产aⅴ一区二区| 欧美96一区二区免费视频| 欧美一区二区三区免费观看视频| 日韩av电影免费观看高清完整版| 欧美一区日韩一区| 精品一区二区在线观看| 久久综合久久综合九色| 国产精品亚洲第一| 中文字幕一区二区三区在线观看| 99久久国产综合色|国产精品| 一区二区在线观看免费 | 91欧美一区二区| 亚洲国产日日夜夜| 日韩一卡二卡三卡四卡| 国内精品写真在线观看| 欧美激情中文字幕| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 91女厕偷拍女厕偷拍高清| 一区二区三区中文字幕电影 | 99精品视频在线观看免费| 亚洲精品欧美二区三区中文字幕| 欧美在线免费观看视频| 日韩av电影天堂| 欧美国产在线观看| 在线观看亚洲a| 久久国产生活片100| 欧美国产精品一区二区三区| 欧美在线观看一二区| 日韩不卡免费视频| 欧美激情一区二区三区四区| 欧美性欧美巨大黑白大战|