package org.ourunix.android.jpct.util; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.CharBuffer; import java.nio.FloatBuffer; import java.nio.IntBuffer; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; public class Util { public static FloatBuffer createFloatBuffer(float data[]) { ByteBuffer vbb = ByteBuffer.allocateDirect(data.length * 4); vbb.order(ByteOrder.nativeOrder()); FloatBuffer outBuffer = vbb.asFloatBuffer(); outBuffer.put(data).position(0); return outBuffer; } public static IntBuffer createIntBuffer(int data[]) { ByteBuffer vbb = ByteBuffer.allocateDirect(data.length * 4); vbb.order(ByteOrder.nativeOrder()); IntBuffer outBuffer = vbb.asIntBuffer(); outBuffer.put(data).position(0); return outBuffer; } public static CharBuffer createCharBuffer(char data[]) { ByteBuffer vbb = ByteBuffer.allocateDirect(data.length * 2); vbb.order(ByteOrder.nativeOrder()); CharBuffer outBuffer = vbb.asCharBuffer(); outBuffer.put(data).position(0); return outBuffer; } public static ByteBuffer createByteBuffer(byte data[]) { ByteBuffer vbb = ByteBuffer.allocateDirect(data.length); vbb.put(data).position(0); return vbb; } public static Bitmap getTextureFromBitmapResource(Context context, int resourceId) { Bitmap bitmap = null; Matrix yFlipMatrix = new Matrix(); yFlipMatrix.postScale(1, -1); // flip Y axis try { bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId); return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), yFlipMatrix, false); } finally { if (bitmap != null) { bitmap.recycle(); } } } }