• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Opengl ES Texture working on Emulator but not on Divice

odrya12

Lurker
I tried everything..
Source:
Texture class:
Code:
public class XAndroidTexture 
{
	private int[] textures = new int[1];
	public int width, height;
	Bitmap bmp;
	
	public XAndroidTexture(GL10 gl, Bitmap bitmap) 
	{
		gl.glEnable(GL10.GL_TEXTURE_2D);
		this.bmp = bitmap;
		width = bmp.getWidth();
		height = bmp.getHeight();
		gl.glGenTextures(1, textures, 0);
		// ...and bind it to our array
		gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
		
		// create nearest filtered texture
		gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
		gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);

        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
        gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
		
		 gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE);
		// Use Android GLUtils to specify a two-dimensional texture image from our bitmap 
		GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
		 //GLUtils.texSubImage2D(GL10.GL_TEXTURE_2D, 0, 0, 0, bmp);
		
		// Clean up
		bitmap.recycle();
		
	}

	public void bind(GL10 gl)
	{
		gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
	}

    public static XAndroidTexture createTextureFromBitmap(GL10 gl, Bitmap bmp) 
    {
        return new XAndroidTexture(gl, bmp);
    }
}
Texture loading function:
Code:
public XAndroidTexture Textureload(String path)
	{
		InputStream is;
        Bitmap bmp = null;
		try 
        	{
				is = this.getAssets().open(path);
				
                BitmapFactory.Options opts = new BitmapFactory.Options();
                opts.inDither = true;
                Bitmap tBmp = BitmapFactory.decodeStream(is, null, opts);
                bmp = Bitmap.createBitmap(tBmp.getWidth(), tBmp.getHeight(), Bitmap.Config.ARGB_8888);
                Canvas canvas = new Canvas(bmp);
                canvas.drawBitmap(tBmp, 0, 0, null);
                canvas.save();
                tBmp.recycle();
                tBmp = null;
        	} 
        	catch (IOException e)
        	{
        		e.printStackTrace();
        	}
        	if(bmp == null)
        		return null;
        	else
        		return new XAndroidTexture(gl, bmp);
    }

It working on Emulator perfect, but not on device....
Can anyone post here texture class that work on device?
 
Back
Top Bottom