⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cube.java

📁 android 例子中的确良ApiDemos。很有代表意义
💻 JAVA
字号:
/* * Copyright (C) 2007 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. */package com.example.android.apis.graphics;import java.nio.ByteBuffer;import java.nio.ByteOrder;import java.nio.IntBuffer;import javax.microedition.khronos.opengles.GL10;/** * A vertex shaded cube. */class Cube{    public Cube()    {        int one = 0x10000;        int vertices[] = {                -one, -one, -one,                one, -one, -one,                one,  one, -one,                -one,  one, -one,                -one, -one,  one,                one, -one,  one,                one,  one,  one,                -one,  one,  one,        };        int colors[] = {                0,    0,    0,  one,                one,    0,    0,  one,                one,  one,    0,  one,                0,  one,    0,  one,                0,    0,  one,  one,                one,    0,  one,  one,                one,  one,  one,  one,                0,  one,  one,  one,        };        byte indices[] = {                0, 4, 5,    0, 5, 1,                1, 5, 6,    1, 6, 2,                2, 6, 7,    2, 7, 3,                3, 7, 4,    3, 4, 0,                4, 7, 6,    4, 6, 5,                3, 0, 1,    3, 1, 2        };        // 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 datatypes (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 cbb = ByteBuffer.allocateDirect(colors.length*4);        cbb.order(ByteOrder.nativeOrder());        mColorBuffer = cbb.asIntBuffer();        mColorBuffer.put(colors);        mColorBuffer.position(0);        mIndexBuffer = ByteBuffer.allocateDirect(indices.length);        mIndexBuffer.put(indices);        mIndexBuffer.position(0);    }    public void draw(GL10 gl)    {        gl.glFrontFace(gl.GL_CW);        gl.glVertexPointer(3, gl.GL_FIXED, 0, mVertexBuffer);        gl.glColorPointer(4, gl.GL_FIXED, 0, mColorBuffer);        gl.glDrawElements(gl.GL_TRIANGLES, 36, gl.GL_UNSIGNED_BYTE, mIndexBuffer);    }    private IntBuffer   mVertexBuffer;    private IntBuffer   mColorBuffer;    private ByteBuffer  mIndexBuffer;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -