Added:
trunk/AndroidOpenGLTutorial/.classpath
trunk/AndroidOpenGLTutorial/.project
trunk/AndroidOpenGLTutorial/AndroidManifest.xml
trunk/AndroidOpenGLTutorial/assets/
trunk/AndroidOpenGLTutorial/bin/
trunk/AndroidOpenGLTutorial/bin/OpenGLTutorial.apk (contents,
props changed)
trunk/AndroidOpenGLTutorial/bin/classes.dex (contents, props changed)
trunk/AndroidOpenGLTutorial/bin/resources.ap_ (contents, props changed)
trunk/AndroidOpenGLTutorial/res/
trunk/AndroidOpenGLTutorial/res/drawable/
trunk/AndroidOpenGLTutorial/res/drawable/icon.png (contents, props changed)
trunk/AndroidOpenGLTutorial/res/layout/
trunk/AndroidOpenGLTutorial/res/layout/main.xml
trunk/AndroidOpenGLTutorial/res/values/
trunk/AndroidOpenGLTutorial/res/values/strings.xml
trunk/AndroidOpenGLTutorial/src/
trunk/AndroidOpenGLTutorial/src/edu/
trunk/AndroidOpenGLTutorial/src/edu/union/
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLActivity.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorial.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialFive.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialFour.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialOne.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialSeven.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialSix.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialThree.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialTwo.java
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/R.java
Log:
Initial import.
Added: trunk/AndroidOpenGLTutorial/.classpath
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/.classpath Wed Nov 14 12:10:36 2007
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="lib" path="C:/apps/android_sdk_windows_m3-rc20a/android.jar">
+ <attributes>
+ <attribute name="javadoc_location" value="file:/C:/apps/android_sdk_windows_m3-rc20a/docs/reference"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: trunk/AndroidOpenGLTutorial/.project
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/.project Wed Nov 14 12:10:36 2007
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>OpenGLTutorial</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.google.android.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.android.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.google.android.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>com.google.android.adt.AndroidNature</nature>
+ </natures>
+</projectDescription>
Added: trunk/AndroidOpenGLTutorial/AndroidManifest.xml
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/AndroidManifest.xml Wed Nov 14 12:10:36 2007
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="edu.union.tutorial">
+ <application android:icon="@drawable/icon">
+ <activity class=".GLTutorial" android:label="@string/app_name">
+ <intent-filter>
+ <action android:value="android.intent.action.MAIN" />
+
+ </intent-filter>
+ </activity>
+ <activity class=".GLActivity"/>
+ </application>
+</manifest>
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/bin/OpenGLTutorial.apk
==============================================================================
Binary file. No diff available.
Added: trunk/AndroidOpenGLTutorial/bin/classes.dex
==============================================================================
Binary file. No diff available.
Added: trunk/AndroidOpenGLTutorial/bin/resources.ap_
==============================================================================
Binary file. No diff available.
Added: trunk/AndroidOpenGLTutorial/res/drawable/icon.png
==============================================================================
Binary file. No diff available.
Added: trunk/AndroidOpenGLTutorial/res/layout/main.xml
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/res/layout/main.xml Wed Nov 14 12:10:36 2007
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, GLTutorial"
+ />
+</LinearLayout>
Added: trunk/AndroidOpenGLTutorial/res/values/strings.xml
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/res/values/strings.xml Wed Nov 14
12:10:36 2007
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">GLTutorial</string>
+ <string name="first">First Tutorial</string>
+ <string name="second">Second Tutorial</string>
+ <string name="third">Third Tutorial</string>
+ <string name="fourth">Fourth Tutorial</string>
+ <string name="fifth">Fifth Tutorial</string>
+ <string name="sixth">Sixth Tutorial</string>
+ <string name="seventh">Seventh Tutorial</string>
+</resources>
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLActivity.java
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLActivity.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,46 @@
+package edu.union.tutorial;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+
+public class GLActivity extends Activity {
+ public static final int FIRST = 0;
+ public static final int SECOND = 1;
+ public static final int THIRD = 2;
+ public static final int FOURTH = 3;
+ public static final int FIFTH = 4;
+ public static final int SIXTH = 5;
+ public static final int SEVENTH = 6;
+
+ protected void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ int type = getIntent().getExtras().getInteger(GLTutorial.GL_DRAW);
+
+ View v = null;
+ switch (type) {
+ case FIRST:
+ v = new GLTutorialOne(this);
+ break;
+ case SECOND:
+ v = new GLTutorialTwo(this);
+ break;
+ case THIRD:
+ v = new GLTutorialThree(this);
+ break;
+ case FOURTH:
+ v = new GLTutorialFour(this);
+ break;
+ case FIFTH:
+ v = new GLTutorialFive(this);
+ break;
+ case SIXTH:
+ v = new GLTutorialSix(this);
+ break;
+ case SEVENTH:
+ v = new GLTutorialSeven(this);
+ break;
+ }
+ setContentView(v);
+ }
+}
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorial.java
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorial.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,74 @@
+package edu.union.tutorial;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.Menu.Item;
+
+public class GLTutorial extends Activity {
+ public static final int FIRST_ID = Menu.FIRST;
+ public static final int SECOND_ID = FIRST_ID+1;
+ public static final int THIRD_ID = SECOND_ID+1;
+ public static final int FOURTH_ID = THIRD_ID+1;
+ public static final int FIFTH_ID = FOURTH_ID+1;
+ public static final int SIXTH_ID = FIFTH_ID+1;
+ public static final int SEVENTH_ID = SIXTH_ID+1;
+
+ public static final int ACTIVITY_VIEW = 0;
+ public static final String GL_DRAW = "GL_DRAW";
+
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ setContentView(R.layout.main);
+ }
+
+ public boolean onCreateOptionsMenu(Menu menu) {
+ boolean res = super.onCreateOptionsMenu(menu);
+ menu.add(0, FIRST_ID, R.string.first);
+ menu.add(0, SECOND_ID, R.string.second);
+ menu.add(0, THIRD_ID, R.string.third);
+ menu.add(0, FOURTH_ID, R.string.fourth);
+ menu.add(0, FIFTH_ID, R.string.fifth);
+ menu.add(0, SIXTH_ID, R.string.sixth);
+ menu.add(0, SEVENTH_ID, R.string.seventh);
+
+ return res;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(Item item) {
+ Intent i = new Intent(this, GLActivity.class);
+
+ switch (item.getId()) {
+ case FIRST_ID:
+ i = i.putExtra(GL_DRAW, GLActivity.FIRST);
+ break;
+ case SECOND_ID:
+ i.putExtra(GL_DRAW, GLActivity.SECOND);
+ break;
+ case THIRD_ID:
+ i.putExtra(GL_DRAW, GLActivity.THIRD);
+ break;
+ case FOURTH_ID:
+ i.putExtra(GL_DRAW, GLActivity.FOURTH);
+ break;
+ case FIFTH_ID:
+ i.putExtra(GL_DRAW, GLActivity.FIFTH);
+ break;
+ case SIXTH_ID:
+ i.putExtra(GL_DRAW, GLActivity.SIXTH);
+ break;
+ case SEVENTH_ID:
+ i.putExtra(GL_DRAW, GLActivity.SEVENTH);
+ break;
+ default:
+ i = null;
+ }
+ if (i != null)
+ startSubActivity(i, ACTIVITY_VIEW);
+ return super.onOptionsItemSelected(item);
+ }
+}
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialFive.java
==============================================================================
--- (empty file)
+++
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialFive.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,98 @@
+package edu.union.tutorial;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.OpenGLContext;
+import android.opengl.GLU;
+import android.view.View;
+
+public class GLTutorialFive extends View {
+ private OpenGLContext glContext;
+
+ float[] triangle = new float[] { 0.25f, 0.25f, 0.0f,
+ 0.75f, 0.25f, 0.0f,
+ 0.25f, 0.75f, 0.0f };
+
+ float[] colors = new float[] { 1, 0, 0, 1,
+ 0, 1, 0, 1,
+ 0, 0, 1, 1 };
+
+ FloatBuffer triangleBuff;
+ FloatBuffer colorBuff;
+
+ protected FloatBuffer makeFloatBuffer(float[] arr) {
+ ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4);
+ bb.order(ByteOrder.nativeOrder());
+ FloatBuffer fb = bb.asFloatBuffer();
+ fb.put(arr);
+ fb.position(0);
+ return fb;
+ }
+
+ public GLTutorialFive(Context c) {
+ super(c);
+ glContext = new OpenGLContext(OpenGLContext.DEPTH_BUFFER);
+ GL10 gl = (GL10)glContext.getGL();
+
+ gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ gl.glMatrixMode(GL10.GL_PROJECTION);
+ gl.glLoadIdentity();
+ GLU.gluOrtho2D(gl, 0.0f,1.3f,0.0f,1.0f);
+
+ triangleBuff = makeFloatBuffer(triangle);
+ colorBuff = makeFloatBuffer(colors);
+
+ gl.glEnable(GL10.GL_DEPTH_TEST);
+ gl.glDepthFunc(GL10.GL_LEQUAL);
+ gl.glClearDepthf(1.0f);
+ }
+
+ float xrot = 0.0f;
+ float yrot = 0.0f;
+
+ protected void onDraw(Canvas canvas) {
+ GL10 gl = (GL10)glContext.getGL();
+
+ glContext.waitNative(canvas, this);
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
+
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangleBuff);
+ gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
+
+ gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuff);
+ gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
+
+ gl.glShadeModel(GL10.GL_SMOOTH);
+
+ gl.glMatrixMode(GL10.GL_MODELVIEW);
+ gl.glLoadIdentity();
+
+ gl.glPushMatrix();
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);
+ gl.glPopMatrix();
+
+ gl.glPushMatrix();
+ gl.glTranslatef(-0.2f,-.1f,-1.0f);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);
+ gl.glPopMatrix();
+
+ gl.glPushMatrix();
+ gl.glTranslatef(0.1f,0.1f,-0.5f);
+ gl.glRotatef(45.0f, 0, 0, 1);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);
+ gl.glPopMatrix();
+
+ gl.glTranslatef(0.15f,0.05f,0.4f);
+ gl.glRotatef(45,0,1,0);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);
+ gl.glPopMatrix();
+
+ glContext.waitGL();
+ }
+}
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialFour.java
==============================================================================
--- (empty file)
+++
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialFour.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,97 @@
+package edu.union.tutorial;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.OpenGLContext;
+import android.opengl.GLU;
+import android.view.View;
+
+public class GLTutorialFour extends View {
+ private OpenGLContext glContext;
+
+ float[] triangle = new float[] { 0.25f, 0.25f, 0.0f,
+ 0.75f, 0.25f, 0.0f,
+ 0.25f, 0.75f, 0.0f };
+
+ float[] square = new float[] { 0.25f, 0.25f, 0.0f,
+ 0.75f, 0.25f, 0.0f,
+ 0.25f, 0.75f, 0.0f,
+ 0.75f, 0.75f, 0.0f };
+
+ float[] colors = new float[] { 1, 0, 0, 1,
+ 0, 1, 0, 1,
+ 0, 0, 1, 1 };
+
+ FloatBuffer squareBuff;
+ FloatBuffer triangleBuff;
+ FloatBuffer colorBuff;
+
+ protected FloatBuffer makeFloatBuffer(float[] arr) {
+ ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4);
+ bb.order(ByteOrder.nativeOrder());
+ FloatBuffer fb = bb.asFloatBuffer();
+ fb.put(arr);
+ fb.position(0);
+ return fb;
+ }
+
+ public GLTutorialFour(Context c) {
+ super(c);
+ glContext = new OpenGLContext(0);
+ GL10 gl = (GL10)glContext.getGL();
+
+ gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ gl.glMatrixMode(GL10.GL_PROJECTION);
+ gl.glLoadIdentity();
+ GLU.gluOrtho2D(gl, 0.0f,1.3f,0.0f,1.0f);
+
+ squareBuff = makeFloatBuffer(square);
+ triangleBuff = makeFloatBuffer(triangle);
+ colorBuff = makeFloatBuffer(colors);
+ }
+
+ float xrot = 0.0f;
+ float yrot = 0.0f;
+
+ protected void onDraw(Canvas canvas) {
+ GL10 gl = (GL10)glContext.getGL();
+
+ glContext.waitNative(canvas, this);
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangleBuff);
+ gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
+
+ gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuff);
+ gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
+
+ gl.glShadeModel(GL10.GL_SMOOTH);
+
+ gl.glMatrixMode(GL10.GL_MODELVIEW);
+ gl.glLoadIdentity();
+ gl.glPushMatrix();
+ gl.glTranslatef(0.25f,0.25f,0.0f);
+ gl.glScalef(0.5f, 0.5f, 0.5f);
+ gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);
+
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);
+
+ gl.glPopMatrix();
+ gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
+
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, squareBuff);
+ gl.glColor4f(0.25f, 0.25f, 0.75f, 1.0f);
+ gl.glTranslatef(0.75f, 0.25f, 0.0f);
+ gl.glScalef(0.5f, 0.5f, 0.5f);
+ gl.glRotatef(yrot, 0, 1, 0);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
+
+ glContext.waitGL();
+ }
+}
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialOne.java
==============================================================================
--- (empty file)
+++
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialOne.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,28 @@
+package edu.union.tutorial;
+
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.OpenGLContext;
+import android.view.View;
+
+public class GLTutorialOne extends View {
+ private OpenGLContext glContext;
+
+ public GLTutorialOne(Context c) {
+ super(c);
+ glContext = new OpenGLContext(0);
+ GL10 gl = (GL10)glContext.getGL();
+
+ gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ }
+
+ protected void onDraw(Canvas canvas) {
+ GL10 gl = (GL10)glContext.getGL();
+
+ glContext.waitNative(canvas, this);
+
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+ }
+}
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialSeven.java
==============================================================================
--- (empty file)
+++
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialSeven.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,142 @@
+package edu.union.tutorial;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.opengles.GL10;
+import javax.microedition.khronos.opengles.GL11;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.OpenGLContext;
+import android.opengl.GLU;
+import android.view.View;
+
+public class GLTutorialSeven extends View {
+ private OpenGLContext glContext;
+
+ float lightAmbient[] = new float[] { 0.2f, 0.3f, 0.6f, 1.0f };
+ float lightDiffuse[] = new float[] { 0.2f, 0.3f, 0.6f, 1.0f };
+
+ float matAmbient[] = new float[] { 0.6f, 0.6f, 0.6f, 1.0f };
+ float matDiffuse[] = new float[] { 0.6f, 0.6f, 0.6f, 1.0f };
+
+ float box[] = new float[] {
+ // FRONT
+ -0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ // BACK
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ // LEFT
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ // RIGHT
+ 0.5f, -0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ // TOP
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ // BOTTOM
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, -0.5f,
+ };
+
+ FloatBuffer cubeBuff;
+
+ protected FloatBuffer makeFloatBuffer(float[] arr) {
+ ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4);
+ bb.order(ByteOrder.nativeOrder());
+ FloatBuffer fb = bb.asFloatBuffer();
+ fb.put(arr);
+ fb.position(0);
+ return fb;
+ }
+
+ float[] pos = new float[] {0,0,3,0};
+
+ public GLTutorialSeven(Context c) {
+ super(c);
+ glContext = new OpenGLContext(OpenGLContext.DEPTH_BUFFER);
+ GL11 gl = (GL11)glContext.getGL();
+
+ gl.glEnable(GL10.GL_LIGHTING);
+ gl.glEnable(GL10.GL_LIGHT0);
+ gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, matAmbient, 0);
+ gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, matDiffuse, 0);
+
+ gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_AMBIENT, lightAmbient, 0);
+ gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, lightDiffuse, 0);
+ gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_POSITION, pos, 0);
+ gl.glEnable(GL10.GL_DEPTH_TEST);
+ gl.glDepthFunc(GL10.GL_LEQUAL);
+
+ gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ gl.glClearDepthf(1.0f);
+
+ cubeBuff = makeFloatBuffer(box);
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, cubeBuff);
+ gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
+
+ gl.glEnable(GL10.GL_CULL_FACE);
+ gl.glShadeModel(GL10.GL_SMOOTH);
+ }
+
+ float xrot = 0.0f;
+ float yrot = 0.0f;
+
+ protected void onDraw(Canvas canvas) {
+ GL11 gl = (GL11)glContext.getGL();
+ int w = getWidth();
+ int h = getHeight();
+
+ glContext.waitNative(canvas, this);
+
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
+
+ gl.glMatrixMode(GL10.GL_PROJECTION);
+ gl.glLoadIdentity();
+ gl.glViewport(0,0,w,h);
+ GLU.gluPerspective(gl, 45.0f, ((float)w)/h, 1f, 100f);
+
+ gl.glMatrixMode(GL10.GL_MODELVIEW);
+ gl.glLoadIdentity();
+ GLU.gluLookAt(gl, 0, 0, 3, 0, 0, 0, 0, 1, 0);
+
+ gl.glRotatef(30.0f, 1, 0, 0);
+ gl.glRotatef(40.0f, 0, 1, 0);
+
+ gl.glColor4f(1.0f, 0, 0, 1.0f);
+ gl.glNormal3f(0,0,1);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
+ gl.glNormal3f(0,0,-1);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 4, 4);
+
+ gl.glColor4f(0, 1.0f, 0, 1.0f);
+ gl.glNormal3f(-1,0,0);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 8, 4);
+ gl.glNormal3f(1,0,0);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 12, 4);
+
+ gl.glColor4f(0, 0, 1.0f, 1.0f);
+ gl.glNormal3f(0,1,0);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 16, 4);
+ gl.glNormal3f(0,-1,0);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 20, 4);
+
+ glContext.waitGL();
+ }
+}
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialSix.java
==============================================================================
--- (empty file)
+++
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialSix.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,120 @@
+package edu.union.tutorial;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.OpenGLContext;
+import android.opengl.GLU;
+import android.view.View;
+
+public class GLTutorialSix extends View {
+ private OpenGLContext glContext;
+
+ float box[] = new float[] {
+ // FRONT
+ -0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ // BACK
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ // LEFT
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, 0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ -0.5f, 0.5f, -0.5f,
+ // RIGHT
+ 0.5f, -0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ // TOP
+ -0.5f, 0.5f, 0.5f,
+ 0.5f, 0.5f, 0.5f,
+ -0.5f, 0.5f, -0.5f,
+ 0.5f, 0.5f, -0.5f,
+ // BOTTOM
+ -0.5f, -0.5f, 0.5f,
+ -0.5f, -0.5f, -0.5f,
+ 0.5f, -0.5f, 0.5f,
+ 0.5f, -0.5f, -0.5f,
+ };
+
+ FloatBuffer cubeBuff;
+
+ protected FloatBuffer makeFloatBuffer(float[] arr) {
+ ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4);
+ bb.order(ByteOrder.nativeOrder());
+ FloatBuffer fb = bb.asFloatBuffer();
+ fb.put(arr);
+ fb.position(0);
+ return fb;
+ }
+
+ public GLTutorialSix(Context c) {
+ super(c);
+ glContext = new OpenGLContext(OpenGLContext.DEPTH_BUFFER);
+ GL10 gl = (GL10)glContext.getGL();
+
+ gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+
+ cubeBuff = makeFloatBuffer(box);
+
+ gl.glEnable(GL10.GL_DEPTH_TEST);
+ gl.glEnable(GL10.GL_CULL_FACE);
+ gl.glDepthFunc(GL10.GL_LEQUAL);
+ gl.glClearDepthf(1.0f);
+ }
+
+ float xrot = 0.0f;
+ float yrot = 0.0f;
+
+ protected void onDraw(Canvas canvas) {
+ GL10 gl = (GL10)glContext.getGL();
+ int w = getWidth();
+ int h = getHeight();
+
+ glContext.waitNative(canvas, this);
+
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
+
+ gl.glMatrixMode(GL10.GL_PROJECTION);
+ gl.glLoadIdentity();
+ gl.glViewport(0,0,w,h);
+ GLU.gluPerspective(gl, 45.0f, ((float)w)/h, 1f, 100f);
+
+ gl.glMatrixMode(GL10.GL_MODELVIEW);
+ gl.glLoadIdentity();
+ GLU.gluLookAt(gl, 0, 0, 3, 0, 0, 0, 0, 1, 0);
+
+ gl.glShadeModel(GL10.GL_SMOOTH);
+
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, cubeBuff);
+ gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
+
+ gl.glRotatef(45.0f, 1, 0, 0);
+ gl.glRotatef(45.0f, 0, 1, 0);
+
+ gl.glColor4f(1.0f, 0, 0, 1.0f);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 4, 4);
+
+ gl.glColor4f(0, 1.0f, 0, 1.0f);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 8, 4);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 12, 4);
+
+ gl.glColor4f(0, 0, 1.0f, 1.0f);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 16, 4);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 20, 4);
+
+ glContext.waitGL();
+ }
+}
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialThree.java
==============================================================================
--- (empty file)
+++
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialThree.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,73 @@
+package edu.union.tutorial;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.OpenGLContext;
+import android.opengl.GLU;
+import android.view.View;
+
+public class GLTutorialThree extends View {
+ private OpenGLContext glContext;
+
+ float[] triangle = new float[] { 0.25f, 0.25f, 0.0f,
+ 0.75f, 0.25f, 0.0f,
+ 0.25f, 0.75f, 0.0f };
+
+ float[] colors = new float[] { 1, 0, 0, 1,
+ 0, 1, 0, 1,
+ 0, 0, 1, 1 };
+
+ FloatBuffer triangleBuff;
+ FloatBuffer colorBuff;
+
+ protected FloatBuffer makeFloatBuffer(float[] arr) {
+ ByteBuffer bb = ByteBuffer.allocateDirect(arr.length*4);
+ bb.order(ByteOrder.nativeOrder());
+ FloatBuffer fb = bb.asFloatBuffer();
+ fb.put(arr);
+ fb.position(0);
+ return fb;
+ }
+
+ public GLTutorialThree(Context c) {
+ super(c);
+ glContext = new OpenGLContext(0);
+ GL10 gl = (GL10)glContext.getGL();
+
+ gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ gl.glMatrixMode(GL10.GL_PROJECTION);
+ gl.glLoadIdentity();
+ GLU.gluOrtho2D(gl, 0.0f,1.3f,0.0f,1.0f);
+
+ triangleBuff = makeFloatBuffer(triangle);
+ colorBuff = makeFloatBuffer(colors);
+
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, triangleBuff);
+ gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
+
+ gl.glColorPointer(4, GL10.GL_FLOAT, 0, colorBuff);
+ gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
+
+ gl.glShadeModel(GL10.GL_SMOOTH);
+ }
+
+ protected void onDraw(Canvas canvas) {
+ GL10 gl = (GL10)glContext.getGL();
+
+ glContext.waitNative(canvas, this);
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+
+ gl.glMatrixMode(GL10.GL_MODELVIEW);
+ gl.glLoadIdentity();
+
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 3);
+
+ glContext.waitGL();
+ }
+}
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialTwo.java
==============================================================================
--- (empty file)
+++
trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/GLTutorialTwo.java
Wed Nov 14 12:10:36 2007
@@ -0,0 +1,56 @@
+package edu.union.tutorial;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.OpenGLContext;
+import android.opengl.GLU;
+import android.view.View;
+
+public class GLTutorialTwo extends View {
+ private OpenGLContext glContext;
+
+ float[] square = new float[] { 0.25f, 0.25f, 0.0f,
+ 0.75f, 0.25f, 0.0f,
+ 0.25f, 0.75f, 0.0f,
+ 0.75f, 0.75f, 0.0f };
+
+ FloatBuffer squareBuff;
+
+ public GLTutorialTwo(Context c) {
+ super(c);
+ glContext = new OpenGLContext(0);
+ GL10 gl = (GL10)glContext.getGL();
+
+ gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+ gl.glMatrixMode(GL10.GL_PROJECTION);
+ gl.glLoadIdentity();
+ GLU.gluOrtho2D(gl, 0.0f,1.2f,0.0f,1.0f);
+
+ ByteBuffer bb = ByteBuffer.allocateDirect(square.length*4);
+ bb.order(ByteOrder.nativeOrder());
+ squareBuff = bb.asFloatBuffer();
+ squareBuff.put(square);
+ squareBuff.position(0);
+
+ gl.glVertexPointer(3, GL10.GL_FLOAT, 0, squareBuff);
+ gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
+ }
+
+ protected void onDraw(Canvas canvas) {
+ GL10 gl = (GL10)glContext.getGL();
+
+ glContext.waitNative(canvas, this);
+
+ gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
+ gl.glColor4f(1,1,1,1);
+ gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
+
+ glContext.waitGL();
+ }
+}
\ No newline at end of file
Added: trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/R.java
==============================================================================
--- (empty file)
+++ trunk/AndroidOpenGLTutorial/src/edu/union/tutorial/R.java Wed Nov
14 12:10:36 2007
@@ -0,0 +1,29 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package edu.union.tutorial;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int icon=0x7f020000;
+ }
+ public static final class layout {
+ public static final int main=0x7f030000;
+ }
+ public static final class string {
+ public static final int app_name=0x7f040000;
+ public static final int fifth=0x7f040005;
+ public static final int first=0x7f040001;
+ public static final int fourth=0x7f040004;
+ public static final int second=0x7f040002;
+ public static final int seventh=0x7f040007;
+ public static final int sixth=0x7f040006;
+ public static final int third=0x7f040003;
+ }
+}