Removed..

Removed…

in your init code add:
GL11.glAlphaFunc(GL11.GL_GREATER, 0f); // sets aplha function
GL11.glEnable(GL11.GL_ALPHA_TEST); // allows alpha channels or transperancy

Removed…

Style issues aside, you problem lies at the end of _loadBImage().

Original:

        GL11.glBindTexture ( GL11.GL_TEXTURE_2D, buffer.get(texturis) );
        GL11.glTexParameteri ( GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR );
        GL11.glTexParameteri ( GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_NEAREST );
        GL11.glTexImage2D ( GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, w, h, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, bytebuffer );
        GLU.gluBuild2DMipmaps ( GL11.GL_TEXTURE_2D, 3, w,h, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, bytebuffer );

gluBuild2DMipmaps’s second arg is ‘3’, which means it’s taking your RGBA texture and producing RGB mipmaps (including the top level mipmap). Changing this to ‘4’ fixes things (although I’d prefer the more readable GL11.GL_RGBA constant). Had you have used the constant in the first place it’d been fairly obvious that you’d got an alpha-less RGB in there.

Also, gluBuild2dMipmaps is just a wrapper around multiple calls to glTexImage2D, so if you’re using gluBuild2dMipmaps then don’t bother with the line before it (because the contents will get nuked over anyway).

Alternatively, since you’re dealing with sprites you could just drop the mipmaps altogether (use GL_LINEAR instead of GL_LINEAR_MIPMAP_NEAREST) and only have your first glTexImage2D and remove the glBuild2dMipmaps call.

HTH.

;D