Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Aug 9th, 2013  |  syntax: Java  |  size: 2.30 KB  |  views: 41  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package com.androidgames.framework.gl;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5.  
  6. import javax.microedition.khronos.opengles.GL10;
  7.  
  8. import android.graphics.Bitmap;
  9. import android.graphics.BitmapFactory;
  10. import android.opengl.GLUtils;
  11.  
  12. import com.androidgames.framework.FileIO;
  13. import com.androidgames.framework.impl.GLGame;
  14. import com.androidgames.framework.impl.GLGraphics;
  15.  
  16. public class Texture {
  17.        
  18.         GLGraphics glGraphics;
  19.         FileIO fileIO;
  20.         String fileName;
  21.         int textureId;
  22.         int minFilter, magFilter;
  23.         int width, height;
  24.        
  25.         public Texture(GLGame glGame, String fileName) {
  26.                 this.glGraphics = glGame.getGLGraphics();
  27.                 this.fileIO = glGame.getFileIO();
  28.                 this.fileName = fileName;
  29.                
  30.                 load();
  31.         }
  32.        
  33.         private void load() {
  34.                 GL10 gl = glGraphics.getGL();
  35.                
  36.                 int[] textureIds = new int[1];
  37.                 gl.glGenTextures(1, textureIds, 0);
  38.                 textureId = textureIds[0];
  39.                
  40.                 InputStream in = null;
  41.                 try {
  42.                         in = fileIO.readAsset(fileName);
  43.                         Bitmap bitmap = BitmapFactory.decodeStream(in);
  44.                         width = bitmap.getWidth();
  45.                         height = bitmap.getHeight();
  46.                        
  47.                         gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
  48.                         GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
  49.                        
  50.                         setFilters(GL10.GL_NEAREST, GL10.GL_NEAREST);
  51.                         gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);
  52.                 } catch(IOException e) {
  53.                         throw new RuntimeException("Couldn't load texture '" + fileName + "'", e);
  54.                 } finally {
  55.                         if(in != null) {
  56.                                 try { in.close(); }
  57.                                 catch(IOException e) { e.printStackTrace(); }
  58.                         }
  59.                 }
  60.         }
  61.        
  62.         public void reload() {
  63.                 load();
  64.                 bind();
  65.                 setFilters(minFilter, magFilter);
  66.                
  67.                 glGraphics.getGL().glBindTexture(GL10.GL_TEXTURE_2D, 0);
  68.         }
  69.        
  70.         public void setFilters(int minFilter, int magFilter) {
  71.                 this.minFilter = minFilter;
  72.                 this.magFilter = magFilter;
  73.                
  74.                 GL10 gl = glGraphics.getGL();
  75.                 gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, minFilter);
  76.                 gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, magFilter);
  77.         }
  78.        
  79.         public void bind() {
  80.                 GL10 gl = glGraphics.getGL();
  81.                 gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
  82.         }
  83.        
  84.         public void dispose() {
  85.                 GL10 gl = glGraphics.getGL();
  86.                 gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
  87.                
  88.                 int[] textureIds = { textureId };
  89.                 gl.glDeleteTextures(1, textureIds, 0);
  90.         }
  91. }