Android Open Source - tetris-android Vertices From Project Back to project page tetris-android .
License The source code is released under:
MIT License
If you think the Android project tetris-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.badlogic.androidgames.framework.gl;
/ * f r o m w w w . j a v a 2 s . c o m * /
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.IntBuffer;
import java.nio.ShortBuffer;
import javax.microedition.khronos.opengles.GL10;
import com.badlogic.androidgames.framework.impl.GLGraphics;
public class Vertices {
final GLGraphics glGraphics;
final boolean hasColor;
final boolean hasTexCoords;
final int vertexSize;
final IntBuffer vertices;
final int [] tmpBuffer;
final ShortBuffer indices;
public Vertices(GLGraphics glGraphics, int maxVertices, int maxIndices, boolean hasColor, boolean hasTexCoords) {
this.glGraphics = glGraphics;
this.hasColor = hasColor;
this.hasTexCoords = hasTexCoords;
this.vertexSize = (2 + (hasColor?4:0) + (hasTexCoords?2:0)) * 4;
this.tmpBuffer = new int [maxVertices * vertexSize / 4];
ByteBuffer buffer = ByteBuffer.allocateDirect(maxVertices * vertexSize);
buffer.order(ByteOrder.nativeOrder());
vertices = buffer.asIntBuffer();
if (maxIndices > 0) {
buffer = ByteBuffer.allocateDirect(maxIndices * Short.SIZE / 8);
buffer.order(ByteOrder.nativeOrder());
indices = buffer.asShortBuffer();
} else {
indices = null;
}
}
public void setVertices(float [] vertices, int offset, int length) {
this.vertices.clear();
int len = offset + length;
for (int i=offset, j=0; i < len; i++, j++)
tmpBuffer[j] = Float.floatToRawIntBits(vertices[i]);
this.vertices.put(tmpBuffer, 0, length);
this.vertices.flip();
}
public void setIndices(short [] indices, int offset, int length) {
this.indices.clear();
this.indices.put(indices, offset, length);
this.indices.flip();
}
public void bind() {
GL10 gl = glGraphics.getGL();
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
vertices.position(0);
gl.glVertexPointer(2, GL10.GL_FLOAT, vertexSize, vertices);
if (hasColor) {
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
vertices.position(2);
gl.glColorPointer(4, GL10.GL_FLOAT, vertexSize, vertices);
}
if (hasTexCoords) {
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
vertices.position(hasColor?6:2);
gl.glTexCoordPointer(2, GL10.GL_FLOAT, vertexSize, vertices);
}
}
public void draw(int primitiveType, int offset, int numVertices) {
GL10 gl = glGraphics.getGL();
if (indices!=null) {
indices.position(offset);
gl.glDrawElements(primitiveType, numVertices, GL10.GL_UNSIGNED_SHORT, indices);
} else {
gl.glDrawArrays(primitiveType, offset, numVertices);
}
}
public void unbind() {
GL10 gl = glGraphics.getGL();
if (hasTexCoords)
gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
if (hasColor)
gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
}
}
Java Source Code List com.badlogic.androidgames.framework.Audio.java com.badlogic.androidgames.framework.Color.java com.badlogic.androidgames.framework.DynamicGameObject.java com.badlogic.androidgames.framework.FileIOInternal.java com.badlogic.androidgames.framework.FileIO.java com.badlogic.androidgames.framework.GameObject.java com.badlogic.androidgames.framework.Game.java com.badlogic.androidgames.framework.Graphics.java com.badlogic.androidgames.framework.Input.java com.badlogic.androidgames.framework.Music.java com.badlogic.androidgames.framework.Pixmap.java com.badlogic.androidgames.framework.Pool.java com.badlogic.androidgames.framework.Screen.java com.badlogic.androidgames.framework.Sound.java com.badlogic.androidgames.framework.TestScreen.java com.badlogic.androidgames.framework.gl.Animation.java com.badlogic.androidgames.framework.gl.BTMPFont.java com.badlogic.androidgames.framework.gl.Camera2D.java com.badlogic.androidgames.framework.gl.Font.java com.badlogic.androidgames.framework.gl.SpatialHashGrid.java com.badlogic.androidgames.framework.gl.SpriteBatcher.java com.badlogic.androidgames.framework.gl.TextureRegion.java com.badlogic.androidgames.framework.gl.Texture.java com.badlogic.androidgames.framework.gl.Vertices.java com.badlogic.androidgames.framework.helper.DebugDraw.java com.badlogic.androidgames.framework.helper.FPSCounter.java com.badlogic.androidgames.framework.helper.Logger.java com.badlogic.androidgames.framework.impl.AccelerometerHandler.java com.badlogic.androidgames.framework.impl.AndroidAudio.java com.badlogic.androidgames.framework.impl.AndroidFastRenderView.java com.badlogic.androidgames.framework.impl.AndroidFileIOInternal.java com.badlogic.androidgames.framework.impl.AndroidFileIO.java com.badlogic.androidgames.framework.impl.AndroidGame.java com.badlogic.androidgames.framework.impl.AndroidGraphics.java com.badlogic.androidgames.framework.impl.AndroidInput.java com.badlogic.androidgames.framework.impl.AndroidMusic.java com.badlogic.androidgames.framework.impl.AndroidPixmap.java com.badlogic.androidgames.framework.impl.AndroidSound.java com.badlogic.androidgames.framework.impl.GLGame.java com.badlogic.androidgames.framework.impl.GLGraphics.java com.badlogic.androidgames.framework.impl.GLScreen.java com.badlogic.androidgames.framework.impl.KeyboardHandler.java com.badlogic.androidgames.framework.impl.MultiTouchHandler.java com.badlogic.androidgames.framework.impl.SingleTouchHandler.java com.badlogic.androidgames.framework.impl.TouchHandler.java com.badlogic.androidgames.framework.math.Circle.java com.badlogic.androidgames.framework.math.OverlapTester.java com.badlogic.androidgames.framework.math.Rectangle.java com.badlogic.androidgames.framework.math.Vector2.java com.ultimate39.android.games.tetris.Assets.java com.ultimate39.android.games.tetris.FactoryShape.java com.ultimate39.android.games.tetris.GameScreen.java com.ultimate39.android.games.tetris.MainMenuScreen.java com.ultimate39.android.games.tetris.Settings.java com.ultimate39.android.games.tetris.Shape.java com.ultimate39.android.games.tetris.Square.java com.ultimate39.android.games.tetris.Tetris.java com.ultimate39.android.games.tetris.World.java