Try using bitmap with power of two dimensions or even square bitmap
with power of two dimensions. Something like 64*64 or 128*128.

On 16 июл, 19:00, odrya12 <[email protected]> wrote:
> I tried everything..
> Source:
> Texture class:
> 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:
>
> 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?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to